2021年2月20日土曜日

Omnibus Gitlab で Grafana を外部に移行して OAuth 連携する方法

概要

前回 Promethues を外部に移行してみました
今回は Grafana を移行してみたいと思います
また Grafana のログインは Gitlab の OAuth を使います

環境

  • GitLab Enterprise Edition 13.8.0-ee
  • Grafana 7.4.1

Gitlab で OAuth アプリケーションの作成

「Admin Area」->「Applications」->「New Application」から作成します

で作成します

RedirectURI の 192.168.100.11 が Grafana の IP になります
Grafana の構築方法は後述します
URI の /login/gitlab は必須の設定になります
固定の値なので別の URI にしないようにしましょう

作成された Application ID と Secret はあとで使うのでメモしておきます

Grafana の構築

今回はコンテナで起動します
まずは Grafana の設定ファイルを作成します
Gitlab の OAuth と連携する設定を記載します

  • vim grafana.ini
[server]                                                                                                                                       
root_url = http://192.168.100.11:3000
[auth.gitlab]
enabled = true
allow_sign_up = true
client_id = xxxxxxxxxxxxxxxx
client_secret = xxxxxxxxxxxxxxxx
scopes = api
auth_url = https://example.gitlab.com/oauth/authorize
token_url = https://example.gitlab.com/oauth/token
api_url = https://example.gitlab.com/api/v4
allowed_groups =

root_url は callback URL として Gitlab に送信するので Gitlab でアプリケーション作成の際に設定した callback URL と同じ IP を入力しましょう
client_idclient_secret は先程作成したアプリケーションの Application ID と Secret を入力しましょう
example.gitlab.com の部分は自信の Gitlab の URL に置き換えてください
allow_sign_up=true を設定することで Grafana 側にユーザ情報がない場合は自動で作成してくれます


設定ファイルが作成できたらコンテナを起動しましょう

  • docker run -d --user 0 -v $(pwd)/data:/var/lib/grafana -v $(pwd)/grafana.ini:/etc/grafana/grafana.ini -p 3000:3000 --name=grafana grafana/grafana

動作確認

http://192.168.100.11:3000/login にアクセスるとログイン画面が表示されます

これで「Sign in with GitLab」をクリックすると Gitlab の認証情報で Grafana にログインできるようになります

おまけ: ログインフォームを消す方法

  • vim grafana.ini
[auth.basic]
enabled = false
disable_login_form = true
  • docker restart grafana

参考サイト

0 件のコメント:

コメントを投稿