2026年7月20日
2026年7月20日
Alertmanagerのルーティングとサイレンスを設定する方法
はじめに
Prometheusはモニタリングとアラート機能を持ちますが、その中心的な役割を果たすのがAlertmanagerです。Alertmanagerは Prometheus アラートを管理し、適切な通知ルールやサイレンス設定を行うことで、過負荷の状態や不規則な通知を避けることができます。
症状・背景
Alertmanagerでルーティングとサイレンスを設定する必要がある主な場面は以下の通りです:
- ユーザが特定のサービスに関心を持つ場合
- システム全体でのアラート数が多い場合、それらを適切に分類し、重要度の高いものだけを通知したい場合
- 問題が解決したことを確認するためのサイレンス設定が必要な場合
手順・設定方法
ステップ1: Alertmanagerのルールファイルを作成
# Alertmanagerで通知ルールを定義するために、rules.ymlファイルを作成します。
vi /etc/alertmanager/rules.yml
# 例:
groups:
- name: example-group
rules:
- alert: ExampleAlert
expr: up == 0
labels:
severity: critical
annotations:
summary: "Application is down"
description: "The application at {{ $labels.instance }} has stopped responding."
ステップ2: Alertmanagerのサイレンスファイルを作成
# サイレンス設定を行うために、silences.ymlファイルを作成します。
vi /etc/alertmanager/silences.yml
# 例:
groups:
- match:
severity: critical
expressions:
- 'up == 0'
until: "2030-01-01T00:00:00Z"
ステップ3: Alertmanagerの構成ファイルを更新
# Alertmanagerの主な設定ファイルを編集します。
vi /etc/alertmanager/alertmanager.yml
# 例:
route:
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
receiver: "my-receiver"
receivers:
- name: "my-receiver"
email_configs:
- to: admin@example.com
silences:
- matchers:
- severity="critical"
until: "2030-01-01T00:00:00Z"
ステップ4: Alertmanagerを再起動
# 新しい設定を適用するためにAlertmanagerを再起動します。
systemctl restart alertmanager
注意事項
- Alertmanagerのルールとサイレンスは、Prometheusサーバーと同じノード上に配置するか、Prometheusクラスタに統合することをお勧めします。
- サイレンス期間は適切な値を選択し、必要であれば定期的にリフレッシュしてください。
- Alertmanagerの設定ファイルのバックアップを取ることで、誤操作による影響を最小限に抑えます。
まとめ
1. ルールの作成: rules.yml ファイルを使用して通知ルールを作成します。重要なアラートを適切なグループとレベルに分類することで、管理者は緊急度に基づいた優先順位付けが可能になります。
2. サイレンス設定: silences.yml ファイルを使用して特定のアラートに対する自動的なサイレンス設定を行います。これにより不必要な通知を抑制し、重要なアラートに注力できます。
3. 構成ファイルの更新: alertmanager.yml を編集することで、Alertmanagerがどのようにアラートをルーティングするかを制御します。
4. 再起動: ルールや設定ファイルの変更後は、Alertmanagerを再起動して新しい設定を適用します。
関連記事: