複数の文字列一致によるイベントログ監視のフィルタ方法について

お世話になります。

Zabbix 2.2.10 を使用して、監視を行っておりますが、
Windowsイベントログの監視で、二つの文字列が一致されたときは、
トリガーが飛ばない様に設定をしたいのですが、うまく動かない状況です。
-----------------------------
・条件
検知対象:Windows applicationログ
深刻度:Warning
ソース:sys_test
値:("終了"&"完了")以外は検知
  ※一つだけ出力している場合は検知
  ※イベントログのメッセージは改行コードあり

設定してみた条件式
1.
{eventlog[application,,Warning,^sys_test$].regexp(終了)}=0 =0

2.
eventlog[application,@キーワード除外,Warning,^sys_test$].logseverity()}=2
※正規表現:@キーワード除外
1 » .*終了.* [結果が真]
2 » .*完了.* [結果が真]
-----------------------------

検知が可能な設定方法をご教授いただけますでしょうか。

コメント表示オプション

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

広瀬です

正規表現マクロがマルチバイト、または空白、特殊記号等を含んでいる場合は、"@REGEXP"と
囲む必要があります。

意図していると合っているか解りませんが、除外キーワードにしたい正規表現に関してですが、
1つのイベント内で、「終了&完了」が内包されていれば、除外したいんですよね?

それならば、単純に「.*終了.*完了.*」を除外キーワードとして、「結果が偽」にしてしまえば、
「終了&完了」を含んでいるイベントはWarningでも弾かれます。
逆にそれらを含まないWarning、及び「終了」または「完了」の文字だけしかないWarning
は対象となる事になりませんか?

具体的にどのようなイベント内容なのかが解りませんので、指定文字列の除外の指針は
あくまでも参考ですので、ご了承ください。

ユーザー syaraku の写真

広瀬様

ご返信ありがとうございます。

正規表現に下記内容で確認を行い、
条件式のテストを行ってみましたが、
一行内に文字列が含まれていると「偽」が返ってくるのですが、
改行が入ってしまうと、「真」で返ってきてしまいます。

-------------------
正規表現:@キーワード除外
1 » .*終了.*完了.* [結果が偽]
-------------------

改行コードが入った場合の除外方法は複雑になるのでしょうか?

ユーザー heya の写真

正規表現の最初と最後の .* はあってもなくても同じなので、書かない方がすっきりすると思います。
改行は、\r\n と書けばできるかもしれません(試してはいません)。その場合はこんな感じでしょうか。
 終了(.|\r\n)*完了

この書き方だと、終了の後に完了が来るものだけがマッチして、完了の後に終了が来てもマッチしないことに注意してください。
順番が逆でも反応したいなら
 終了(.|\r\n)*完了|完了(.|\r\n)*終了
だといけるのかな?

まあ、単純に
 正規表現
  1 終了 文字列を含む
  2 完了 文字列を含む
 アイテムのキー
  eventlog[application,,Warning,^sys_test$]
 トリガーの条件式
  {eventlog[application,,Warning,^sys_test$].regexp(@キーワード除外)}=0
とすればよさそうな気はします(@キーワード除外を "" で囲む必要は・・・ある?)。これだと順番は関係ありません。
#Warning 指定があれば logseverity()=2 の条件は必ず満たすと思うので、これはいらないと思います

ユーザー syaraku の写真

heya様

ありがとうございます。

『終了(.|\r\n)*完了』の検証をしてみましたが、
やはりうまく動きませんでした。

ですが、もう一個の設定方法を行い、除外が可能となりました。

もう一点可能であれば、
検知した場合メールで飛ばしているのですが、
障害メールを検知した後に、キーワードがマッチしたものを検知した場合に
[OK]メールが届くのですが、これを抑止することは難しいですかね?

ユーザー TNK の写真

私は、ログの障害検知など、障害の発生時だけの通知を行うような
トリガー用のアクションを別途用意しています。

つまり、

 ・通常の閾値等で障害発生と回復の両方を通知するアクション
 ・障害発生時のみ通知するアクション

と最低2つのアクションを用意しておき、ログ監視では、後者の障
害発生時のみ通知するアクションを使用するように設定するわけで
す。

どちらのアクションを使用するかは、トリガー名にアクション実行
時の振り分けに使用できるような文字列を追加しておいて、アクシ
ョンの実行条件にそのための条件を付加することで実現できると思
います。