重大度に基づいて Prometheus Alertmanager の電子メールを無効にする

重大度に基づいて Prometheus Alertmanager の電子メールを無効にする

当社では、Prometheus、Alertmanager、Grafana を組み合わせて HPC コンピューティング クラスターを監視しています。当社のマシンでは、SWAP メモリが基本的に限界までいっぱいになるなどの現象が頻繁に発生しており、infoGrafana アラート ダッシュボードで対応するレベルのアラートを確認することは便利ですが、対応する電子メールは送信したくないと考えています。

info設定ファイルで重大度が設定されているすべての警告メールをミュート/無効にする方法はありますかalertmanager.yml?

アラートはすべてこれと同様に定義されています(https://awesome-prometheus-alerts.grep.to/rules.html):

  - alert: HostSwapIsFillingUp
    expr: (1 - (node_memory_SwapFree_bytes / node_memory_SwapTotal_bytes)) * 100 > 95
    for: 60m
    labels:
      severity: info
    annotations:
      summary: Host swap is filling up (instance {{ $labels.instance }})
      description: "Swap is filling up (>95%)\n  VALUE = {{ $value }}"

そして、ファイル内の対応するセクションは次のようalertmanager.ymlに書かれています。

  routes:
    - match:
        severity: 'warning'
      repeat_interval: 24h
      continue: true
    - match:
        severity: 'info'
      repeat_interval: 24h
      continue: true
      receiver: dropped

receivers:
  - name: 'admin-mails'
    email_configs:
      - to: 'admins@DOMAIN'
  - name: 'dropped'
    email_configs:
      - to: 'admins@DOMAIN'

infoレベルのアラートが電子メールを発生させないようにしつつ、同時にアラートを「発生」させて Grafana に表示させる可能性はありますか?

答え1

何度か試行錯誤した結果、次の方法がうまくいくようです。

  routes:
    - match:
        severity: 'warning'
      repeat_interval: 24h
      continue: true
    - match:
        severity: 'info'
      repeat_interval: 24h
      continue: true
      receiver: dropped

receivers:
  - name: 'admin-mails'
    email_configs:
      - to: 'admins@DOMAIN'
  - name: 'dropped'

したがって、アイデアとしては、単に受信者を未構成にすることです。これにより、電子メールは生成されなくなりますが、アラートは Grafana に引き続き表示されます。

他の誰かが同じ質問に遭遇した場合に備えて、ここに残しておきます。

関連情報