概要
Omnibus Gitlab には Prometheus と Alertmanager が付属しています
デフォルトだとどちらも有効にはなっていますが Alertmanager に関してはレシバーが登録されていないので通知はされません
今回は Slack レシバーを追加して Gitlab がダウンした際のアラートを受け取る設定を紹介します
環境
- Omnibus Gitlab 14.2.3-ee
AlertManager の設定を gitlab.rb にする
gitlab.rb に以下を設定します
docker の場合は GITLAB_OMNIBUS_CONFIG に設定します
紹介しているのは Alertmanager と Prometheus に関する部分だけなので他の設定がある場合はその設定に追記してください
prometheus['listen_address'] = '0.0.0.0:9090'
alertmanager['listen_address'] = '0.0.0.0:9093'
alertmanager['receivers'] = [{'name' => 'slack','slack_configs' => ['api_url' => 'https://hooks.slack.com/services/xxx/xxx/xxx', 'channel' => '#private', 'text' => "{{ .CommonAnnotations.summary }}", 'send_resolved' => true]}]
alertmanager['default_receiver'] = 'slack'
ポイントは receivers と default_receiver の部分です
recievers には Slack レシーバを登録します
この設定は alertmanager.yml に記載する receivers の設定と同じなのでそのまま使えます
default_receiver は使用するレシーバを設定します
今回は「slack」レシーバを設定したのでそのレシーバを使うように default_receiver を設定します
あとは Gitlab を再起動しましょう
- docker-compose down
- docker-compose up -d
動作確認
gitlab プロセスを停止してみましょう
- docker-compose exec gitlab gitlab-ctl stop puma
ok: down: puma: 0s, normally up
これでしばらくすると Prometheus と Alertmanager でアラートが発生しているのが確認できます
Slack にもちゃんと通知が来ることを確認しましょう
なぜか .CommonAnnotations.summary が埋め込まれていませんがこれは default-receiver が残ってしまっているせいです
default-receiver と別のグループとして slack レシーバを登録できればちゃんと表示されるはずです
最後に
メリットとして Omnibus Gitlab の監視設定をそのまま使えるので別途監視ツールを導入する必要はありません
デメリットとしては Prometheus 側のメトリックとアラートの設定は Omnibus Gitlab が用意しているものをそのまま使うので本来監視したくないルールがある場合に無視できません
ただ自分が試してみた感じだとこのあたりのドキュメントが少なくどこをどうやって設定するかは Omnibus gitlab の cookbooks などを眺める必要があるので少し面倒かもしれません
0 件のコメント:
コメントを投稿