2021年10月14日木曜日

Omnibus Gitlab に付属している Prometheus と Alertmanager を使って Gitlab がダウンした際のアラートを受け取る方法

Omnibus Gitlab に付属している Prometheus と Alertmanager を使って Gitlab がダウンした際のアラートを受け取る方法

概要

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 件のコメント:

コメントを投稿