ログ監視での自動復帰(nodate関数)の設定について
お世話になっております。
ZABBIXのログ監視において、指定した文字列が書き込まれアラートを検知した後、当該トリガーにて新たなアラートを5分検知しなかった場合、復旧動作を行わせるトリガーの設定しているのですが、うまく動作せずに困っております。
理由としては、指定したログファイルに設定した文字列以外の行が書き込まれないと、ZABBIXとして復旧扱いはされないと思いますが、監視しているログファイルに書き込まれる文字列は必ず設定した文字列が含まれている為です。
単純に設定するといつまで経っても復旧しないため、下記のようにnodate関数を使用しているのですが、うまく動作しません。
({hostname:log[/var/log/messages].nodata(300)}=0)&({hostname:log[/var/log/messages].regexp(ERROR,300)}=1)
私の認識では上記設定で、300秒(5分)以内にERROR文字列が書き込まれなかったら復旧するはずなのですが…
以上、宜しくお願いいたします。
ZABBIX 1.6.2
TNK - 投稿数: 4769
regexp()の第2引数が不要なのではないでしょうか?
<code>
({hostname:log[/var/log/messages].nodata(300)}=0)&({hostname:log[/var/log/messages].regexp(ERROR)}=1)
</code>
ご確認下さい。
HIRABA - 投稿数: 3
アドバイスありがとうございます。
指摘された通りトリガーを変更し、実施結果が分かり次第再度こちらに記載させて頂きます。
以上、宜しくお願いいたします。
HIRABA - 投稿数: 3
ご連絡が遅くなり申し訳ございません。
ご指示通りに設定を行いましたが、やはり5分(300秒)で復旧されませんでした。
以上、よろしくお願いいたします
kodai - 投稿数: 1341
nodata()は使わずに、
<code>{hostname:log[/var/log/messages].regexp(ERROR,300)}=1</code>
とだけ設定するとどうでしょうか?