ログ監視で「DOWN」発生後、3分以内に「UP」が出なかった場合のみエラー
お世話になります。
ログ監視にて、/var/log/hoge.log に「xxx down」 というメッセージが出力され、かつ3分以内に「xxx up」というメッセージが出力されなかった場合のみ
エラーとして検知したいです。アイテムを2つにしたり、トリガー条件をいろいろと試しましたが、どうもうまくいきません。
[アイテム1個]
log[/var/log/hoge.log,(down|up)].regexp(down) &
log[/var/log/hoge.log.(down|up)],regexp(up)&log[/var/log/hoge.log(down|up)].nodata(180]]
[アイテム2個]
log/[/var/log/hoge.log,down].regexp(.*) &
log/[/var/log/hoge.log,up].nodata(180)
上記どちらも、意図する結果になりません。どうすればよろしいでしょうか?
どうかお知恵を拝借いただけませんでしょうか。よろしくお願いいたします。
sh_kawakami - 投稿数: 5
({ホスト名:log[/var/log/hoge.log,(down|up)].regexp(down,180)}=1)&({ホスト名:log[/var/log/hoge.log.(down|up)].regexp(up,180)}=0)
という感じでどうでしょうか?
regexp(down,180)}=1 で「180秒以内のログにdownが「ある」」を、regexp(up,180)}=0 で「180秒以内のログにupが「ない」」をチェックして、それらを&で繋ぐことで実現できるかな、と思います。
HERCULY - 投稿数: 37
関連した質問ですが、同様の案件があり古いトピックですが質問させていただきます。
トリガで2つの条件を満たす際に(一つ目のトリガ条件)「&」(二つ目のトリガ条件)
という形で「&」で結べばよいと思っておりましたが、
使用環境----------
Zabbix Version: 3.2.4
OS Version: CentOS: 7.2.1511
----------------------
【アイテム】
log[ログファイル,(down|up),UTF8]
【トリガ】
({ホスト名:log[ログファイル,(down|up),UTF8].regexp(down,180)}=1)&({ホスト名:log[ログファイル,(down|up),UTF8].regexp(up,180)}=0)
でトリガを作成したところ
「トリガー条件式が正しくありません。 条件式の")&({ホスト名:ログファイル,(down|up),UTF8].regexp(up,180)}=0)"から始まる部分を確認してください。」というエラーが帰ってきます
別々のトリガを登録する分には問題なく登録ができるのですが「&」をつけることで上記のエラーが出るようです
何か設定に問題があるのでしょうか?
ご存知の方がいらっしゃいましたらご教示願います
TNK - 投稿数: 4769
Zabbix 2.4以降、条件式をAND条件でつなぐのであれば、「&」では
なく「and」と記述するようにしてください。
HERCULY - 投稿数: 37
TNKさま
ありがとうございました。
「and」で括ることでうまく二つのトリガがつながりました。
また、期待の結果も得られることができました。
「&」から「and」に変わったのですね。
「改訂版Zabbix統合監視実践入門」でもトリガ演算子が
「&」だったものですからてっきりそうだと思っており
ました。
早々のご回答とお返事ありがとうございました
karna - 投稿数: 61
andだけではなく、or も変更されています。|→or
私も、なにもわからない状態で、Ver2.4を「改訂版Zabbix統合監視実践入門」片手に設定しながら、エラーではまっていました。
他にも変更されていますので、オフィシャルのマニュアルも参照された方がよいかと思われます。
HERCULY - 投稿数: 37
karnaさま
わざわざ、ありがとうございました
うすうす「&」が「and」になっていたので「|」も「or」かな
と思っていたのですが、予想通りでしたね