2023年11月23日木曜日

Gitlab の Alertmanager で特定のアラートだけメールで送信する方法

Gitlab の Alertmanager で特定のアラートだけメールで送信する方法

概要

前回はとりあえず出たアラートをすべてメールで送信しました
今回は route 機能を使って特定のアラートだけをメールで飛ばすようにしてみます

環境

  • Gitlab 16.3.6
  • Alertmanager 0.25.0

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['routes'] = [
  {
    receiver: 'email',
    group_wait: '30s',
    group_interval: '5m',
    repeat_interval: '4h',
    matchers: [ 'alertname = RedisDown' ]
  }
]
# alertmanager['default_receiver'] = 'email'

ポイント

  • alertname は必ず付与されるのでこれを使ってアラートを特定します
    • マッチには正規表現が使える match_re などもあります
    • ルールをカスタムすれば severity などのラベルも付与できますが面倒なので alertname を使います
    • デフォルトの Gitlab のルールだと他に instance, job あたりがマッチルールに使えます
  • default_receiver を設定してしまうと route にマッチしない場合に defualt_receiver の設定を使ってしまうのでコメントする

参考サイト

0 件のコメント:

コメントを投稿