Windowsイベントログ監視について

Windowsイベントログ監視でアラートレベルエラーの、指定のEventIDを除外したものを監視する設定をしていますが、

新規設定追加で、
EventID:2153でメッセージに8319が含まれる場合、アラート対象外にするにはどうすればよいでしょうか?
既存のトリガー設定は以下になっております。どのように修正すればよいでしょうか。

({ホスト名:eventlog[Application,,Warning|Error|Critical|Verbose,,,,skip].logseverity()}=4) and ({ホスト名:eventlog[Application,,Warning|Error|Critical|Verbose,,,,skip].logeventid(^1008$|^2004$|^2137$|^7043$|^8313$|^18204$|^12291$|^7972$|^3$|^5$|^19$|^5586$|^6061$|^7978$|^7984$|^8306$|^5819$|^5823$|^5148$|^5910$|^2159$|^5187$|^6610$|^7056$|^5374$|^1283$|^8026$|^35285$|^1010$|^6772$|^7985$|^1026$|^8311$|^1133$|^7981$|^9002$)}=0) and ({ホスト名:eventlog[Application,,Warning|Error|Critical|Verbose,,,,skip].logeventid(^35286$|^7886$|^7979$|^7997$)}=0)

▼希望する動作
EventID:2153 メッセージ「2153含む」→アラートなし
EventID:2153 メッセージ「その他の文字列」→アラートあり

zabbixバージョン:4.0.3

よろしくお願いします。

コメント表示オプション

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

>EventID:2153でメッセージに8319が含まれる場合、アラート対象外にするにはどうすればよいでしょうか?

>▼希望する動作
>EventID:2153 メッセージ「2153含む」→アラートなし
>EventID:2153 メッセージ「その他の文字列」→アラートあり

上記の事から、「深刻度がエラー」かつ「イベントIDが2153」以外であれば障害として検知する方法を書かせていただきます。
違っていたら、また条件を詳しくお書きください。

【アイテム】
eventlog[Application,,"Error",,,,skip]
意味:深刻度がエラーのアプリケーションログを収集する

【トリガー】

{<ホスト名>:eventlog[Application,,"Error",,,,skip].logseverity()}=4
意味:深刻度がエラーであれば障害


{<ホスト名>:eventlog[Application,,"Error",,,,skip].logeventid(2153)}=1
意味:ログイベントIDが「2153」以外を障害として検知

上記から、
{<ホスト名>:eventlog[Application,,"Error",,,,skip].logseverity()}=4 and {<ホスト名>:eventlog[Application,,"Error",,,,skip].logeventid(2153)}=1
意味:①かつ②

※「and」はZabbixのバージョンによっては「&」を使用する場合があります。

ユーザー mushima6157 の写真

質問が分かりにくく申し訳ありません。
アラート対象外にしたいのは、EventID:2153 ではなく
EventID:2153 かつ メッセージに「8319」が含まれる場合になります。

メッセージの内容を以下に書きました。

Windowsイベントビューア
EventID:2153
全般タブの内容
---------------------------------------------------------------------------------------------------------------------------------------------
ソース "ESENT" からのイベント ID 2153 の説明が見つかりません。このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、インストールが壊れています。ローカル コンピューターにコンポーネントをインストールするか、コンポーネントを修復してください。

イベントが別のコンピューターから発生している場合、イベントと共に表示情報を保存する必要があります。

イベントには次の情報が含まれています:

8319     ★★★←この部分。8319が含まれていたらアラート対象外。なければアラート対象。

メッセージ リソースは存在しますが、メッセージが文字列テーブル/メッセージ テーブルに見つかりません。
---------------------------------------------------------------------------------------------------------------------------------------------

上記PowerShellの下記コマンドでテストできます。
Write-EventLog -LogName application -EntryType ERROR -Source ESENT -EventId 2153 -Message "8319"

経緯としては、同じイベントIDのアラートがたくさんでたら
EventID:2153(メッセージの中にたくさんでたイベントID)を出す仕組みになっています。
EventID:8319のアラートが頻発しているため、EventID:2153(内容:8319)無視していいと言われているが、
EventID:2153そのものを無視していいわけではないため。

よろしくお願いします。

ユーザー Yasumi の写真

いくつか疑問があります。

①{ホスト名:eventlog[Application,,Warning|Error|Critical|Verbose,,,,skip].logseverity()}=4
⇒トリガー条件を深刻度4(Error)にしていますが、アイテム情報で他の深刻度を含めている理由は何ですか?
 上記だと、アイテムに不要な情報が堆積する原因となり、場合によってはZabbixに負荷を与える原因となります。
 深刻度4(Error)以外の情報取得が不要であれば、アイテムを「eventlog[Application,,Error,,,,skip]」のように限定することを推奨します。

②既存のトリガーの二重設定
{ホスト名:eventlog[Application,,Warning|Error|Critical|Verbose,,,,skip].logeventid(^1008$|...)}=0 and
{ホスト名:eventlog[Application,,Warning|Error|Critical|Verbose,,,,skip].logeventid(^35286$|...)}=0
⇒多数あるので省略しますが、トリガーを2つに分けている理由はありますか?
 また、トリガー除外対象のEVENTIDをアイテムで取得していますが、取得する必要はありますか?
 無視していい内容であれば、アイテム取得の段階で正規表現でまとめて抑止をしたほうが、Zabbixの負荷を軽減させます。

そのうえで、次は提案になります。

★「既存トリガーと、IDかつメッセージ内容で除外を両立」は今後の運用にも大きな問題を与える恐れがあります
 複雑なトリガーになるため、今後管理者が変更になった場合に監視設定の変更が非常に困難になる恐れが大きいです。
 そのため、既存トリガーと2153トリガーを分けることを推奨します。

==============================================
・既存トリガーを下記に修正
{ホスト名:eventlog[Application,,Error,,@EXCLUDE_ERR_ID,,skip].iregexp()}=1
※運用の柔軟性を担保するためにシンプルな内容に修正

管理⇒一般設定⇒正規表現に、下記を追加
EXCLUDE_ERR_ID
^3$
^5$
^19$
^1008$
^1010$
^1026$
^1133$
^1283$
^2004$
^2137$
^2153$
^2159$
^5148$
^5187$
^5374$
^5586$
^5819$
^5823$
^5910$
^6061$
^6610$
^6772$
^7043$
^7056$
^7886$
^7972$
^7978$
^7979$
^7981$
^7984$
^7985$
^7997$
^8026$
^8306$
^8311$
^8313$
^9002$
^12291$
^18204$
^35285$
^35286$
条件式の形式:[結果が偽]

・2153を例外としてトリガーを新設
{ホスト名:eventlog[Application,,Error,@EXCLUDE_2153_MESSAGE,2153,,skip].iregexp()}=1

管理⇒一般設定⇒正規表現に、下記を追加
EXCLUDE_2153_MESSAGE
8319
条件式の形式:[文字列が含まれない]
==============================================

ユーザー mushima6157 の写真

ご回答ありがとうございます。

>>深刻度4(Error)以外の情報取得が不要であれば、アイテムを「eventlog[Application,,Error,,,,skip]」のように限定することを推奨します。
★⇒深刻度4以上に関しては別のトリガーでアラート設定しているため、必要になります。

>>②既存のトリガーの二重設定
>> ⇒多数あるので省略しますが、トリガーを2つに分けている理由はありますか?
★⇒既存の運用者が設定したものを世襲しているため、その状態になっています。
   監視さえ行えれば、記読性の高い書き方のほうを採用したいと思います。

>>「既存トリガーと、IDかつメッセージ内容で除外を両立」は今後の運用にも大きな問題を与える恐れがあります
>>複雑なトリガーになるため、今後管理者が変更になった場合に監視設定の変更が非常に困難になる恐れが大きいです。
>>そのため、既存トリガーと2153トリガーを分けることを推奨します。
★⇒分ける方針でいきたいと思います。
   提案していただいたものをテスト機でテストしてみました。
   結果、うまくいきませんでした。

{ホスト名:eventlog[Application,,Error,@EXCLUDE_2153_MESSAGE,2153,,skip].iregexp()}=1
               ①   ② ③     ④                 ⑤ ⑥⑦

上記、トリガーですが、sourceの部分に「@EXCLUDE_2153_MESSAGE」を設定しています。

eventlog[name,regexp,severity,source,eventid,maxlines,mode]
       ①   ②    ③    ④    ⑤    ⑥    ⑦

おそらくですが、イベントビューアのGUI画面の

name⇒ログの名前(M):
severity⇒レベル(L):
source⇒ソース(S):   ★★★★←ここに該当していると思われます。
eventid⇒イベントID(E):

下記部分を絞るには、引数のどの部分に「@EXCLUDE_2153_MESSAGE」を設定すればよいでしょうか。

全般タブの内容
---------------------------------------------------------------------------------------------------------------------------------------------
ソース "ESENT" からのイベント ID 2153 の説明が見つかりません。このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、インストールが壊れています。ローカル コンピューターにコンポーネントをインストールするか、コンポーネントを修復してください。

イベントが別のコンピューターから発生している場合、イベントと共に表示情報を保存する必要があります。

イベントには次の情報が含まれています:

8319     
メッセージ リソースは存在しますが、メッセージが文字列テーブル/メッセージ テーブルに見つかりません。
---------------------------------------------------------------------------------------------------------------------------------------------

もしかして、できないということもあるでしょうか。

よろしくお願いします。

ユーザー Yasumi の写真

失礼しました。間違えておりましたが、下記のようにしてください。

eventlog[Application,@EXCLUDE_2153_MESSAGE,Error,,2153,,skip]

>深刻度4以上に関しては別のトリガーでアラート設定しているため、必要になります。
なるほど。しかし、既存のトリガーがすでに世襲的な状態になっており、年々設定の変更難易度が高くなることが想定されますので
長期的な視点からは、提案させていただいたeventlog[Application,,Error,,@EXCLUDE_ERR_ID,,skip]を新設し、
Errorレベルのトリガーをそちらに移管する案をおすすめいたします。