メール通知の運用をどうしてますか?

いつもお世話になっております。
Zabbixによるメール通知につきまして、皆様がどのような運用を行っているのかをお伺いできればと存じます。

ほとんどの方が障害が発生したときにZabbixからメールを送信するようにしていると思われますが、
送信パターンにもいろいろとあると思います。

例えば、
・メールは障害発生時のみ送信する。
・障害が復旧するまで定期的に送信する。
・基本は定期的に送信し、気づいたら手動で止める。

など、普段どのようなメール通知の運用を行っているのか、可能であればその理由についてもお答えいただけますと幸いです。
何卒よろしくお願い致します。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー heya の写真

案件によりいろいろですが、
・障害と復旧で送信、ただしログやトリガーなど、(アクティブ) 系は障害時のみ送信
・障害も復旧も文面は同じで、件名や本文に {TRIGGER.STATUS} を入れる
というのが多いです。

復旧まで定期的に送信というのはやったこと(そういう要望があったこと)がありません。理由は、たくさんメールが来ても邪魔になるから。
Zabbix でなければ、一日一回の定期チェックで結果を(あるいはNGのときだけ)メール送信、というのはありますけどね。それぐらい頻度が低ければありだとは思いますが、Zabbix ではたいてい1分間隔とか5分間隔の監視なので。

純粋に Zabbix のメール機能で送らずに、自前のスクリプトを作ってそこから送るということもあります。
例:ログやトラップが大量に出るとメールも大量に来て、とても(人間が)処理しきれないので、この場合はアクションで(メール送信ではなく)スクリプト実行にする。そのスクリプトはこんな感じ。
 事前準備:あらかじめ空ファイル a を作っておく
 1 ログorトラップの内容をテキストファイル b に書き込む(追記)
 2 a がロックされていればここで終了
 3 a がロックされていなければ a をロックし、○秒スリープ
 4 b の内容をメール送信して b を空にし、a のロックを解除する
※一定時間分のログorトラップをまとめてメールで送るというイメージ
※b の書き込み時には b もロックする必要あり

ユーザー minayan の写真

当方では、Zabbix標準機能のメール送信は使わず、独自開発の仕組み(シェルスクリプト/cURL/AWK)でメール通知をしています。
※Zabbix 1.8で実装、VerUPに合わせ2.0→2.2→2.4→3.0→3.2→3.4と追従し、これまで6年間運用しています。
狙いとしては「①通知メールで溢れさせない、②障害状態に変化があったときのみ、③必要な情報を最小限に、④夜間は通知しない」を念頭においています。
・Zabbix APIで障害(トリガー)情報を取得したものをメールで通知(メンテナンス中は除外)
・PHSの様な画面の狭いデバイスでも読みやすいように、グルーピングしています。
 深刻度別:日時、ホスト名、トリガー名
 ホストグループ別:日時、ホスト名、トリガー名
・cronで5分毎に下記の流れでメール通知しています。
・23:00~翌7:00は通知を停止(夜間に発生の障害は翌営業日対応とする)
1)Zabbix APIで障害(トリガー)情報を取得
2)トリガー深刻度別、ホストグループ別に通知内容を整理
3)2の通知内容が内容が前回と同じ場合は、何もせず処理を終了
4)iniファイルに記載のメールアドレス宛に通知内容をメール送信
※上とは別に、cronで毎朝7:10にメール通知
Zabbixの正常性確認の意味で障害有無や内容変化に関係なく通知
障害が無ければ、本文は「現在、障害はありません。」となります。