トリガーの検知対象外の文字列を障害検知する事象について、
現状、下記のようなトリガーを定義して、指定した文字列を含むログメッセージが出た際に、
障害検知をするようにしております。
{host:log[/var/log/syslog].iregexp(@pattern1)}<>0
and
{host:log[/var/log/syslog].nodata(600)}=0
and
{host:log[/var/log/syslog].iregexp(@pattern2)}<>0
※ pattern1と、pattern2は私が設定した正規表現を示しております。
上記のトリガーを指定していると、まれに障害対象のログメッセージを検知した数秒後に、
障害対象でないログメッセージを障害検知してしまうことがあります。
イメージとしては、本来であればAとBを含むログメッセージを障害検知させるはずが、Cが出力された場合にも障害検知をしてしまうといった感じです。
上記ですが、何が原因なのでしょうか。
TNK - 投稿数: 4730
「障害対象でないログメッセージを障害検知してしまう」と判断さ
れたのは、アクションで通知されたメールなどで判断されたのです
か?
そうであるならば、アクションのメッセージ内でマクロの、
{ITEM.LASTVALUE1}
などを使用していませんか?
{ITEM.LASTVALUE}は、障害発生時の値ではなく、最新のアイテムの
値に置換されますので、障害発生時のメッセージとは合致しない場
合があります。
障害発生時の値に置換してメールで通知したいのであれば、
{ITEM.VALUE1}
などを使用するようにしてみてください。
baka1241 - 投稿数: 13
コメントありがとうございます。
アクションの内容を見直したところ、使用していたのは{ITEM.VALUE1}だったので、
仕様どおりなら、障害イベントが発生したときのログメッセージが表示されるはずです。
ちなみに、アクションの内容は下記のようになっております。
# アクションの条件式
トリガーの値 = 障害
# アクションのメッセージ
{TRIGGER.NAME}
{TRIGGER.SEVERITY}
{ITEM.VALUE1}
Original event ID: {EVENT.ID}