エラーログが複数出力されたときのメール通知漏れについて
いつもお世話になっております。
以前、
http://www.zabbix.jp/modules/newbb/viewtopic.php?topic_id=564&forum=6&post_id=2837#forumpost2837
にてスレッドが立ちましたが、ログ監視において同時に複数のエラーが出力されると、一部のログについてはメール通知漏れが起きてしまうという問題についてです。
リリースノートによりますと、本問題はv1.8.3では解決されたとのことでした。
そこで実際動作確認をしてみたところ、エラーの出力された回数分のメール通知が行われていることは確認できました。
しかし、メッセージに{ITEM.VALUE}や{ITEM.LASTVALUE}を含めてみますと、すべてのエラーについての通知が正確に行われていないように思えます。
以下、実際に検証してみた内容と結果です。環境は
マネージャ:RHEL5.3, Zabbix1.8.3
エージェント:WindowsXP、Zabbix-agentは1.8.3 (なお、Linuxの場合でも同様の結果が得られています。)
です。
------------------------
?
・ログ監視のアイテムキーはlog[c:\testlog0826.log,ERROR]
・トリガー条件式は{<ホスト名>:log[c:\testlog0826.log,ERROR].regexp(ERROR)}=1、かつ、「障害イベントを継続して生成」を選択
・メール通知アクションで、メッセージの中身は「{ITEM.VALUE}」と設定
?
c:\testlog0826.logに、
ERROR1
ERROR2
ERROR3
・・・
ERROR8
の8行を同時に入力。
?
数秒後、メールが8件届く。
しかし、メッセージの中身は7件が「ERROR8」、1件が「ERROR1」であった。
-----------------------
そこでお聞きしたいのですが、
?
なぜ上記のような結果となってしまったのでしょうか?
?
私としては、
「ERROR1」、「ERROR2」、「ERROR3」・・・・「ERROR8」
のメッセージが届いてほしいと思っているのですが、何か良いアイデアはありますでしょうか?
以上、ご教授のほどよろしくお願いいたします。
kodai - 投稿数: 1341
こんにちは。
Zabbixのアクション実行はzabbix_server.confのSenderFrequencyの間隔で実行され、アクションで設定したマクロはアクション実行時に展開されるようになっています。
ログやトラップで複数のエラー行を一度に受け取った場合、アクションで{ITEM.LASTVALUE}マクロを利用しているとアクション実行時点で最新のアイテムのヒストリを利用します。結果としてメールには実際のエラーとは異なる行が利用されてしまうことがあります。
SenderFrequencyの間隔を短く設定することで多少問題が軽減できる場合もありますし、以下のように最新のアイテムのヒストリ数行をメールに記載することで対応するという方法もあります。
{hostname.itemkey.last(#1)}
{hostname.itemkey.last(#2)}
{hostname.itemkey.last(#3)}
{hostname.itemkey.last(#4)}
{hostname.itemkey.last(#5)}