アラートメールの破棄について
お世話になります。
zabbix 1.8.10で監視環境の構築に挑戦させていただいています。
メディアタイプはE-mailで、別のメールサーバ(postfix)
を使用しています。
log監視を行ったところ、条件合致が多すぎて
大量のメールが配信されるようになってしまいました。
大量すぎるので、メール配信を停止させようと以下を
試みてみましたが、配信が止まりません。
・postfixを停止
・対象トリガーを無効化
(上記対応でアラートメールを"失敗"にさせてメール配信を止めようと考えました)
ちなみに、上記対応後1時間ほどしてからpostfixを起動させてみたところ、
相変わらず大量のメールが届くのですが、メール本文に変化が現れました。
NOTE: Escalation cancelled: Trigger 'Search of a messages log ' disabled.
上述の「NOTE: Escalation cancelled」とは何が発生しているものなのでしょうか。
# フォーラムで"Escalation "で検索してみましたがヒットしませんでした。。。
# 初歩的な質問かもしれませんがご容赦願います。
よろしくお願い致します。
kodai - 投稿数: 1341
Zabbixは内部で生成されたアラートを一旦DBに保存して、アラート送信専用のプロセスがDBから送信すべきアラートを読み込んでメールを送るようになっています。
そのため、DBに「未送信」マークがついたアラートが存在すると、Zabbixサーバを起動したタイミングで送信が開始されてしまいます。
溜まった未送信メールを送信済みとしてマークするには、DBを直接修正するしか方法はありません。ZabbixのDBにログインし、以下のSQLを発行するとメールの送信は止まると思います。
mysql> update alerts set status = "1" where status = "0";
nobuling - 投稿数: 16
お世話になります。
ご教授頂いたSQL文の発行でalertsテーブルにある未送信案件は消すことができましたが、
次々にalertsテーブルへレコードが登録されており、メールの大量配信は停止できませんでした。
アラート元のアイテムおよびトリガーを無効にしているのですが配信(alertテーブルへの登録)は止まりません。
何か暴走しているように見えるのですが復旧させる方法はありますでしょうか。
# その前に原因を突き止めるために取得すべき情報等があればご教授頂ければ採取します。
情報が足りない中の質問ばかりで恐縮です。
お手数をおかけ致します、よろしくお願い致します。
halchiyo - 投稿数: 19
簡単に補足ですが、
検知したイベントでトリガー判定されたものは、ある程度まとめて処理されるため、まだ通知テーブルに載っていないトリガーが累積しているケースがあります。
Zabbix起動後に、後続処理が改めてaletsテーブルを更新する為、1度対応しただけではイベントが止まりません。
ワークアラウンドとしてはkodaiさんの対応をひたすら繰り返すことになります。
Zabbix停止 → DBのaletsテーブル更新→Zabbix起動(これで後続処理が進みalertsテーブルがまた更新される)→Zabbix停止・・・
nobuling - 投稿数: 16
kodai様、halchiyo様
お世話になっております。
メールサーバ側のPostfixを停止させてzabbixを一晩放置したうえでご教示頂いた作業でひたすら消しこんでいった所落ち着きました。
ありがとうございました。