ログ監視にて、xx時間でx回以上特定文字検知の場合のトリガー
Zabbixの機能にて
下記仕組みが実現可能か教えて下さい。
□バージョン
2.4.4
□やりたいこと
ログ監視で「認証エラー」文言検知をすると、初回検知で
アクションAが動作
初回検知から1時間以内に再度ログ監視で「認証エラー」文言検知すると
アクションBが動作
・具体例
①2018:01:01 00:00:00 認証エラー
⇒ アクションA動作
②2018:01:01 00:30:00 認証エラー
⇒ アクションA動作から1時間以内なので、アクションB動作
③2018:01:01 01:15:00 認証エラー
⇒ アクションA動作から1時間以降なので、アクションA動作。
②から見ると1時間以内だが、アクションA動作とする
アクションA ⇒ 警告発報用のアクション
アクションB ⇒ 緊急発報用のアクション
-----------------------------------------------------------------------------------------------------------------------
現在、試しで下記で設定していますが、
上手く動作していません。
■トリガー名
トリガーA
{Template_Log_Auth:logrt[/var/log/messages,@xxxxxx,,,skip].regexp(@xxxxxx)}=1 and
{Template_Log_Auth:logrt[/var/log/messages,@xxxxxx,,,skip].nodata(3600)}=0 and
{Template_Log_Auth:logrt[/var/log/messages,@xxxxxx,,,skip].count(3600)}<2
トリガーB
{Template_Log_Auth:logrt[/var/log/messages,@xxxxxx,,,skip].regexp(@xxxxxx)}=1 and
{Template_Log_Auth:logrt[/var/log/messages,@xxxxxx,,,skip].nodata(3600)}=0 and
{Template_Log_Auth:logrt[/var/log/messages,@xxxxxx,,,skip].count(3600)}>1
何がうまくいかないかというと、監視間隔毎にトリガーが動作してしまいます。
下記例でいうと、19:00:00にしか検知文字列が発生していないのに、
19:00:30,19:01:00と監視間隔毎にトリガーに障害として検知してしまいます。
例)
03/16 19:00:00 検知文字列出力 トリガー出力
03/16 19:00:30 - トリガー出力
03/16 19:01:00 - トリガー出力
03/16 19:01:00 - トリガー出力
-----------------------------------------------------------------------------------------------------------------------
以上
karna - 投稿数: 60
ひとまず後半部分だけ
> 何がうまくいかないかというと、監視間隔毎にトリガーが動作してしまいます。
> 下記例でいうと、19:00:00にしか検知文字列が発生していないのに、
> 19:00:30,19:01:00と監視間隔毎にトリガーに障害として検知してしまいます。
nodataを使うとヒストリ取得時とは別に、30秒間隔でトリガーが検証されます。
連続してイベントを発生させると、条件に合致している間、30秒ごとにアラートが出続けます。
mocha - 投稿数: 28
30秒ごとにイベントがでるのは「障害イベントを継続して生成」のせいかと
アイテムは「ログ監視」ですが 今回やりたいのは「状態監視」としての振る舞いだろうと
思われるので 「継続して生成」はむしろ邪魔になります
ただ この場合は「認証エラー」がどういうタイミングで記録されるのかを意識して トリガが
復旧する条件も含めで考慮する必要があります
場合によっては 「警告」はとりあえず毎回発報 「緊急」は条件がそろったときだけ発報
といったように 振る舞いを妥協することも視野にいれたほうが条件式を組みやすいです
(がちがちにすると あれこれ取りこぼしがでやすいので・・・)