ログ監視にて、大量キーワード検知時のメール送信回数を減らしたい

いつもお世話になっております。

ログ監視(logrt)にて、指定したキーワードを大量に検知した場合、例えば、短時間で100レコードのキーワードが書かれた場合、メール通知は1回にする、といった事は可能でしょうか。

設定は下記の通りです。

[バージョン]
Zabbixサーバ: 2.0.8
Zabbixエージェント(windowsマシン): 2.0.8

[アイテム]
名前: ログ監視
タイプ: Zabbixエージェント(アクティブ)
キー: logrt[C:\TEST\LOG\*.log,,SHIFT_JIS]
データ型: ログ
更新間隔(秒): 5
ヒストリの保存期間(日): 3
ログの時間の形式: yyyy/MM/dd hh:mm:ss
アプリケーションの作成: 空白
アプリケーション: なし
説明: 空白
ステータス: 有効

[トリガー]
名前: 【障害】TESTログ
条件式: {TESTSRV:logrt[C:\TEST\LOG\*.log,,SHIFT_JIS].iregexp(取り込みエラー)}=1
障害イベントを継続して生成: チェックなし
説明: 空白
URL: 空白
深刻度: 警戒
有効: チェック

[アクション]
[アクション]
名前: 【障害】TESTログ
デフォルトのアクション実行ステップの期間: 60
デフォルトの件名: 【障害】{HOST.NAME}
デフォルトのメッセージ: {ITEM.VALUE}
リカバリメッセージ: チェックなし
有効: チェック
[アクションの実行条件]
アクションの実行条件: (A)トリガーの値="障害"、(B)トリガー名含まれる"【障害】TESTログ"
[アクションの実行内容]
アクションの実行内容: ユーザーにメッセージ送信: TESTUSER

上記設定にて、C:\TEST\LOG\test.log
に下記記載があった場合、本来、10行目~31行目まで、キーワードの”取り込みエラー”が15行ある為、15通メールが飛びます。
これを1通にする事は可能でしょうか。

もしくは、キーワードが1件見つかったら、ある一定期間内、もしくは指定した行数内にキーワードがあっても、無視する、といった設定などは可能でしょうか。

このエラーが出た時、対応するまで、このキーワードが1秒周期で書かれてしまうという仕様です。
なので、メールの量が大量になります。


10行目: 2015/11/09 14:31:03 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml:パス 'c:\TestERR\100080-000484-0000-20151108114246.xml' の一部が見つかりませんでした。
11行目: 2015/11/09 14:31:05 LOOP:ファイル発見:c:\Test\100080-000484-0000-20151108114246.xml
12行目: 2015/11/09 14:31:05 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml
13行目: 2015/11/09 14:31:05 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml:パス 'c:\TestERR\100080-000484-0000-20151108114246.xml' の一部が見つかりませんでした。
14行目: 2015/11/09 14:31:06 LOOP:ファイル発見:c:\Test\100080-000484-0000-20151108114246.xml
15行目: 2015/11/09 14:31:06 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml
16行目: 2015/11/09 14:31:06 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml:パス 'c:\TestERR\100080-000484-0000-20151108114246.xml' の一部が見つかりませんでした。
17行目: 2015/11/09 14:31:07 LOOP:ファイル発見:c:\Test\100080-000484-0000-20151108114246.xml
18行目: 2015/11/09 14:31:07 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml
19行目: 2015/11/09 14:31:07 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml:パス 'c:\TestERR\100080-000484-0000-20151108114246.xml' の一部が見つかりませんでした。
20行目: 2015/11/09 14:31:08 LOOP:ファイル発見:c:\Test\100080-000484-0000-20151108114246.xml
21行目: 2015/11/09 14:31:08 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml
22行目: 2015/11/09 14:31:08 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml:パス 'c:\TestERR\100080-000484-0000-20151108114246.xml' の一部が見つかりませんでした。
23行目: 2015/11/09 14:31:09 LOOP:ファイル発見:c:\Test\100080-000484-0000-20151108114246.xml
24行目: 2015/11/09 14:31:09 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml
25行目: 2015/11/09 14:31:09 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml:パス 'c:\TestERR\100080-000484-0000-20151108114246.xml' の一部が見つかりませんでした。
26行目: 2015/11/09 14:31:10 LOOP:ファイル発見:c:\Test\100080-000484-0000-20151108114246.xml
27行目: 2015/11/09 14:31:10 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml
28行目: 2015/11/09 14:31:10 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml:パス 'c:\TestERR\100080-000484-0000-20151108114246.xml' の一部が見つかりませんでした。
29行目: 2015/11/09 14:31:11 LOOP:ファイル発見:c:\Test\100080-000484-0000-20151108114246.xml
30行目: 2015/11/09 14:31:11 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml
31行目: 2015/11/09 14:31:11 LOOP:取り込みエラー:c:\Test\100080-000484-0000-20151108114246.xml:パス 'c:\TestERR\100080-000484-0000-20151108114246.xml' の一部が見つかりませんでした。

よろしくお願い致します。

コメント表示オプション

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

こんにちは。
漠然とした回答ですが。

>これを1通にする事は可能でしょうか。

Zabbix だけではできなさそうな気がします。
「ログを適当にまとめてから zabbix_sender を使って Zabbix サーバーに伝える」みたいなスクリプトを作って syslog はログをそのスクリプトに渡す、という感じになるのかなと思います。

>もしくは、キーワードが1件見つかったら、ある一定期間内、もしくは指定した行数内に
>キーワードがあっても、無視する、といった設定などは可能でしょうか。

トリガーで count 関数を使ったらどうですかね?
それでダメな場合orイベントでは引っかかるログを全部表示したい場合は、アクションを「最後に送信してからの秒数を数え、xx 秒以上過ぎていればメール送信する」という自作スクリプトにする方法でも実現できそうな気はします。