Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【Ask_AI】Zabbixの標準機能で「特定のホストグループ配下で発生した複数のアラート(障害イベント)を1通の通知にまとめて送る」

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

【AIによる概要】

Zabbixの標準機能で「特定のホストグループ配下で発生した複数のアラート(障害イベント)を1通の通知にまとめて送る」には、「アクションの実行内容」で実行ステップの間隔(エスカレーション機能)と条件を利用して制御する、または「グローバルイベント相関」機能を使って障害を統合する方法があります。
最も一般的で設定しやすい「アクションのエスカレーション機能を利用して通知を一定時間待つ(まとめる)」設定手順を解説します。

方法1:アクションのエスカレーション機能で通知をまとめる
この設定を行うと、指定グループ配下で複数の障害が連続して発生しても、指定した時間(例: 5分間)通知を保留し、その間に発生したアラートを1つの通知としてまとめて送ることができます。
1. 新しい「ユーザー」「ユーザーグループ」の準備(推奨)
まとめた通知を受け取るための専用のユーザーグループを作成します。
  1. 【管理】→【ユーザーグループ】(または【ユーザー】→【ユーザーグループ】)から「アラートまとめグループ」を作成します。
  2. 【権限】タブで、対象となる「任意のホストグループ」に対して読込専用以上の権限を付与します。
  3. そのグループに通知を受け取るユーザー(メディア設定済みのユーザー)を所属させます。
2. アクションの条件設定
  1. 【アラート】→【アクション】→【トリガーアクション】 を開き、「アクションの作成」をクリックします。
  2. 【アクション】タブで任意の名前を入力し、実行条件に以下を追加します。
    • ホストグループ(対象の任意のグループ名)

3. 実行内容(通知をまとめるエスカレーション設定)
  1. 【実行内容】タブを開きます。
  2. デフォルトの操作の間隔 を、アラートをまとめたい時間(例:5m = 5分)に設定します。 [1, 2]
  3. 「実行内容」の「追加」をクリックし、以下のように設定します。
    • ステップ: 2 から 2 (※ここがポイントです。ステップ1を空欄にすることで、発生直後の通知を1回見送ります)
    • 次のユーザーグループに送信: 先ほど作成した「アラートまとめグループ」を指定
    • 次のメディアのみ使用: 使用する通知媒体(Email、Slackなど)を指定

  4. 変更を保存します。
💡 仕組み:障害が発生するとステップ1(最初の5分間)に入りますが、設定が空のため通知されません。5分の間に同じグループ内で複数の障害が発生しても、Zabbix内部で同一イベントのステップが進行し、5分後にまとめて処理(あるいは、サマリー対応のマクロ等で制御)されます。


方法2:グローバルイベント相関(Event Correlation)を使う [1]
もし「まとめる」の定義が、「同じグループの別ホストで同じ障害が起きたら、2つ目以降の障害イベント自体を自動でクローズ(非表示)にしたい」 という意味であれば、グローバルイベント相関機能を使用します。 [1]
  1. 【設定】→【イベント相関関係】 から「相関ルールの作成」をクリックします。
  2. 論理式に以下を設定します。
    • 条件A: 新イベントのホストグループ(任意のグループ)
    • 条件B: 古いイベントのタグ新しいイベントのタグ が一致(例: Service タグなど)

  3. 実行内容「新イベントをクローズ」 にチェックを入れます。
  4. これにより、同じグループ内で1つ目のアラートが解決していない間、2つ目以降の類似アラートが自動で「正常(クローズ)」扱いになり、通知の乱発を防げます。

外部ツールとの連携(根本的な解決策)
Zabbix標準機能の「通知を遅らせてまとめる」設定は、通知件数は減らせるものの、メールの本文を綺麗に1通に合算するのには限界があります(通知文が複数に分かれて届く場合があります)。
もし「完全に1通のメッセージに複数件のアラート情報を箇条書きにしてまとめたい」という場合は、以下の外部連携が現場でよく使われています。
  • WebhookでSlackやTeamsに送るスクリプトを作る:Zabbixから数分間のアラートをバッファ(蓄積)し、Python等のスクリプトを経由して1通に整形してチャットに投げる。 [1, 2]
  • PagerDutyなどのインシデント管理ツールを使うPagerDutyのスマートグルーピング機能などを利用すると、Zabbix側は通常通りアラートを飛ばすだけで、同じホストグループやサービスの大量アラートを自動で1つに集約してくれます。 [1]

ご利用中の Zabbixのバージョン(例:6.0 LTS、7.0 LTSなど)や、通知に使っている媒体(メール、Slack、Teamsなど)を教えていただけますか?環境に合わせた具体的な設定方法をお伝えできます。
タイトルとURLをコピーしました