2023年11月20日月曜日

Gitlab の Alertmanager を使ってメール通知する方法

Gitlab の Alertmanager を使ってメール通知する方法

概要

過去に slack 通知する方法を紹介しました
今回はメール通知する方法を紹介します

環境

  • Gitlab 16.3.6

gitlab.rb の設定

alertmanager['listen_address'] = '0.0.0.0:9093'
alertmanager['receivers'] = [
  {
    name: 'email',
    email_configs: [
      to: 'your_to@mail',
      from: 'your_from@mail',
      smarthost: 'smtp.ess.nifcloud.com:465',
      auth_username: 'your_access_key',
      auth_password: 'your_secret_key',
      require_tls: false,
      send_resolved: true
    ]
  }
]
alertmanager['default_receiver'] = 'email'

docker-compose.yml の設定

9093 を外部から見れるようにするには ports を設定してホスト側にもバインドしてあげましょう

ports:
  - 9093:9093

動作確認

  • docker-compose down
  • docker-compose up -d

で適用し

  • docker-compose exec gitlab gitlab-ctl stop redis

すると以下のようなメールが来ることが確認できると思います

Alertmanager でもアラートを確認できると思います

トラブルシューティング

2023-11-17_04:52:18.74549 ts=2023-11-17T04:52:18.745Z caller=notify.go:732 level=warn component=dispatcher receiver=email integration=email[0] msg="Notify attempt failed, will retry later" attempts=1 err="'require_tls' is true (default) but \"smtp.ess.nifcloud.com:465\" does not advertise the STARTTLS extension"

こんな感じのエラーが Alertmangaer から出ている場合は require_tls を false にしてください


An error has occurred while serving metrics:

collected metric pg_replication_is_replica label:{name:"server"  value:"/var/opt/gitlab/postgresql:5432"}  gauge:{value:0} has help "Indicates if this host is a slave" but should have "Indicates if the server is a replica"

という感じで postgres_exporter がエラーになっている場合は postgres_exporter を無効にすればとりあえずアラートは解消されます

postgres_exporter['enable'] = false

参考サイト

0 件のコメント:

コメントを投稿