トリガーの検知対象外の文字列を障害検知する事象について、

現状、下記のようなトリガーを定義して、指定した文字列を含むログメッセージが出た際に、
障害検知をするようにしております。

{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 の写真

「障害対象でないログメッセージを障害検知してしまう」と判断さ
れたのは、アクションで通知されたメールなどで判断されたのです
か?

そうであるならば、アクションのメッセージ内でマクロの、

 {ITEM.LASTVALUE1}

などを使用していませんか?

{ITEM.LASTVALUE}は、障害発生時の値ではなく、最新のアイテムの
値に置換されますので、障害発生時のメッセージとは合致しない場
合があります。

障害発生時の値に置換してメールで通知したいのであれば、

 {ITEM.VALUE1}

などを使用するようにしてみてください。

コメントありがとうございます。

アクションの内容を見直したところ、使用していたのは{ITEM.VALUE1}だったので、
仕様どおりなら、障害イベントが発生したときのログメッセージが表示されるはずです。

ちなみに、アクションの内容は下記のようになっております。
# アクションの条件式
トリガーの値 = 障害

# アクションのメッセージ
{TRIGGER.NAME}
{TRIGGER.SEVERITY}
{ITEM.VALUE1}
Original event ID: {EVENT.ID}