ログインが面倒
Grafanaのダッシュボードを他の人に見せるときにいちいちパスワードを入力してログインしてもらうのが面倒だと思った.
やったことのまとめ
Snapshot
を使ってダッシュボードを共有した- ダッシュボードをログインなしで閲覧できるよう設定した
- ログインなしで見られるダッシュボードを
Organization
で分けた
つかうもの
- Raspberry Pi 3 Model B+
- OSはRaspbian(10.0)
- 監視サーバとして使用
- Grafana
- v6.5.2
- インストール済み
やったこと
Snapshotを使う
初期設定のGrafana
を開くとIDとパスワードでのログインを求められる.
自分が管理者であれば普通にログインするだけなんだけど,
他の人にダッシュボードを共有するときにいちいち新規ユーザーを作ってパスワードを発行するのはめんどくさい.
こんなときにSnapshot
を使うとダッシュボードの状態を保存して共有できる.
共有したいダッシュボード右上のShare
ボタンからSnapshot
を選択する.
Snapshot name
(共有するSnapshot
の名前)とExpire
(Snapshot
の有効期限),Timeout
(メトリクス取得のタイムアウト秒数)が設定できるけど,
特に何も変えずにLocal Snapshot
を選択する.
Snapshot
のURLが生成される.
ただしこの状態ではホストが localhost になっているので注意.
Snapshot
の一覧は画面左のメニューからDashboards
->Snapshots
で確認できる.
ここで表示されるURLを使うのがかんたん.
ログインしてたときのキャッシュを使わないようにシークレットブラウザでSnapshot
のURLを開いてみると,
今度はログインなしでダッシュボードが開ける.
ただしSnapshot
は作成時に時間の範囲が固定されてしまうので,
画像のように範囲を変えるとメトリクスを見ることができない…
anonymous accessを有効にする
Snapshot
は簡単に共有できるので便利だけど,
やっぱり普通のダッシュボードが見たいのでそもそものログイン設定をいじってみる.
Grafana
の設定ファイル(grafana.ini
)を編集する.
# Grafana設定ファイルを編集して再起動
$ sudo vim /etc/grafana/grafana.ini
$ sudo systemctl restart grafana-server
設定はこんな感じ.
だいたい 290 行目あたりにAnonymous Auth
の設定があるので変更する.
grafana.ini(抜粋)
#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access
# ゲストユーザー(ログインなし)のアクセスを許可する
enabled = true
# specify organization name that should be used for unauthenticated users
# Organization名を指定する(Main Org.はデフォルトで作成されている)
org_name = Main Org.
# specify role for unauthenticated users
# ゲストユーザーのRole(役割)をViewer(閲覧のみ)にする
# Editor(編集者), Admin(管理者)も設定可能
org_role = Viewer
再起動した後, Snapshotを使うと同様にシークレットブラウザでGrafana
のURLを開くと
今度はログインなしでダッシュボードが開かれる.
こちらは元のダッシュボードそのものなので時間の範囲を変更してもメトリクスは問題なく表示できるが,Role
がViewer
なので編集ができなくなっていて, Data Source
やQuery
も見えなくなっている.
編集のためにログインしたい場合は左下のSign in
からログイン画面が開くので,
そこからログインすれば今まで通り編集ができるようになる.
これで閲覧のみの場合はログインなしでGrafana
に入れるようになった.
やったぜ.
Organizationを分ける
以上の手順でanonymous access
を許可すると,
指定したOrganization
のダッシュボードがすべてログインなしで閲覧可能になってしまう.
そのため, 作成途中のダッシュボードやあまり他の人に知られたくないメトリクスの場合はOrganization
を分けて管理することにする.
Organization
の作成はUIから簡単にできる.Admin
権限でログインした状態で画面左のメニューからServer Admin
->Orgs
->New Org
と進み,Org. name
に任意のOrganization
名を入力してCreate
するだけ.
または, Grafana
のAPIを使って作成することもできる.
初期設定の場合はbasic認証がかけられているのでAdmin
権限ユーザーのIDとパスワードで突破する.
$ curl -X POST http://<GrafanaのURL>/api/orgs \
-u <Admin権限のuser>:<password> \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"Org2"}'
{"message":"Organization created","orgId":3}
新しく作ったOrganization
(Org1)でダッシュボードを作成して保存する.
再度Grafana
の設定を変更する.
# Grafana設定ファイルを編集して再起動
$ sudo vim /etc/grafana/grafana.ini
$ sudo systemctl restart grafana-server
grafana.ini(抜粋)
#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access
enabled = true
# specify organization name that should be used for unauthenticated users
# 新しく作ったOrganizationを指定
org_name = Org1
# specify role for unauthenticated users
org_role = Viewer
これまでと同様にシークレットブラウザでGrafana
を開くと同様にログインなしで入れるが,
今度は Org1 のダッシュボードしか見られないようになっている.
元々のOrganization
(Main Org.)を開きたい場合はログインした状態で
左下のユーザーアイコンからSwitch Organization
->Switch to
で切り替えられる.
これでログインなしで見られるダッシュボードを管理することができた.
やったぜ.
おわり
これでGrafana
のダッシュボードをログインなしで見られるようになった.
設定自体は3行だけでできてめっちゃ簡単だったし,
ダッシュボードが完成した後はあまりいじることもないので基本はこの設定にしておくのが便利だと思った.
おまけ
アンモニャイト