Windowsの特定イベントID除外設定
監視環境を前任者より引継ぎ?管理しております。
要件に基づき設定したところ、意図した動作とならないため
認識に誤りがありましたらご指摘頂けますでしょうか。
■要件
対象Winサーバのイベントログ(system)にて
下記条件にHitするイベントを検知するトリガーを作成したい
・レベルが「エラー」 であること①
かつ
・ソースが「TEST」ではなく②、イベントIDが「137」ではない③こと
#①&(②&③)という意味です。今後①&((②&③)|(④&⑤))となることを想定。
■トリガー条件式(見やすく改行しています)
{ホスト名:eventlog[system].logseverity()}=4 &
(
{ホスト名:eventlog[system].logsource("TEST")}=0 &
^{ホスト名:eventlog[system].logeventid(137)}=0
)
※{}内がWeb表示されなくなってしまうため、上記の「^」はエスケープ文字がわりですので無視してください。
■結果
TestCase1(レベル:エラー/ソース:TEST/イベントID:137)→検知せず
TestCase2(レベル:エラー/ソース:TEST/イベントID:138)→検知せず ※検知させたい
TestCase3(レベル:エラー/ソース:cmdtest/イベントID:999)→検知
TestCase4(レベル:エラー/ソース:TEST/イベントID:999)→検知せず ※検知させたい
TestCase5(レベル:エラー/ソース:test/イベントID:999)→検知
TestCase6(レベル:警告/ソース:test/イベントID:999)→検知せず
■環境
(Server)
Red Hat Enterprise Linux Server release 6.5 (Santiago)
zabbix-2.2.11-1.el6.x86_64
(監視対象)
Windows Server 2012 R2 Std
Zabbix Agent 2.2.9
以上、よろしくお願い致します。
karna - 投稿数: 61
論理演算としては、正常な結果ですね。
それぞれの条件式の結果をA,B,Cとすると
エラー → A: 1
それ以外 → A: 0
TEST が含まれる → B: 0
含まれない → B: 1
イベントID 137 → C: 0
それ以外 → C: 1
したがって、各ケースの論理式 A&(B&C)の結果は以下のようになります。
TestCase1:1&(0&0) → 0
TestCase2:1&(0&1) → 0
TestCase3:1&(1&1) → 1
TestCase4:1&(0&1) → 0
TestCase5:1&(1&1) → 1
TestCase6:0&(1&1) → 0
仮に、カッコ内の演算子を論理和(|)にすれば、2、4の場合も検知するはずです。
その場合、下記のようなケースも検知します。
TestCaseX(レベル:エラー/ソース:cmdtest/イベントID:137):1&(1|0) →検知
2.2系であれば、条件式ビルダーと、テスト機能が使えるはずですので、要求に合う条件式を探ってみてください。
kaeru - 投稿数: 264
>ishinow様
私も同様の質問をしておりました。
以下、mocha様にご回答を頂いたフォーラムになります。
チェックしてみて下さい。
http://www.zabbix.jp/node/3681
ishinow - 投稿数: 9
>karna様
解説頂きありがとうございます。よく理解することが出来ました。
論理演算について理解不足でした。
>kaeru様
質問前に拝見していたのですが自分のケースに当てはめて
考えることが出来ていませんでした。
今後、考えが煮詰まった際にはkama様の解説のように
返り値で一度整理し、テストすることにします。
本件はクローズとさせてください。
お二人ともご対応頂きありがとうございました。