トリガー条件式について
お世話になります。
CentOSのテキストログ監視を行うにあたり、以下のトリガー条件式がエラーとなってしまいます。
もし原因がわかりましたら、ご教授頂けると幸いです。
【トリガーの条件式】
({Template OS Linux:log[/var/log/messages,@messages].iregexp(@messages)})#0&({Template OS Linux:log[/var/log/messages,@messages].nodata(300)})=0
【エラーの内容】
トリガー条件式が正しくありません。 条件式の)#0&({Template OS Linux:log[/var/log/messages,@messages].nodata(300)})=0"から始まる部分を確認してください。
【補足】
・Zabbix Serverのバージョン2.4
・上記トリガーは、標準テンプレート「Template OS Linux」に対して設定。
・以下のアイテムと正規表現を設定。
[アイテム]
(名前) ログ監視(/var/log/messages)
(タイプ) Zabbixエージェント(Active)
(キー) logrt[/var/log/messages,@messages]
(データ型)ログ
[正規表現]
(名前)messages
(条件式)error|warn|fail|fatal|ERROR|WARN|FAIL|FATAL
よろしくお願いします。
fripper - 投稿数: 495
丸括弧()を用いて条件演算の優先度、まとまり具合を指定されているようですが
> ({Template OS Linux:log[/var/log/messages,@messages].iregexp(@messages)})#0&({Template OS Linux:log[/var/log/messages,@messages].nodata(300)})=0
ではなく
> ({Template OS Linux:log[/var/log/messages,@messages].iregexp(@messages)}#0)&({Template OS Linux:log[/var/log/messages,@messages].nodata(300)}=0)
ではないかと思います
中括弧{} がアイテム値を示していて、#0、=0等でトリガー条件の演算をそれぞれ行い、
その結果それぞれを、丸括弧()で括ったうえで、&でAND条件にしている‥というイメージに
なるかと思います
TNK - 投稿数: 4769
2.4系から条件式の演算子や書き方が変更されています。
例えば、不等号の意味で#は利用できなくなりました。
マニュアルを再度ご確認ください。
https://www.zabbix.com/documentation/2.4/manual/introduction/whatsnew240...
あと、今回は直接関係ありませんが、Zabbixのバージョンを書かれる場合は、
マイナーバージョンまで明記されることをお勧めします。
fripper - 投稿数: 495
申し訳ありません。TNKさんご指摘のとおりです
2.4系では演算子の仕様が変わっていたこと、失念しておりました‥
不等号の表現だけでなく、各演算結果の複合評価で用いる論理演算系の表現(&、|など)も変わっていますね‥
hk12rpm - 投稿数: 8
TNK様、fripper様
早速、ご返信いただき、ありがとうございます。
おかげさまで解決できました!
本フォーラムに相談をしなげれば、今月中に解決することはできなかったと思います。
本当に助かりました!ありがとうございます。
以下の条件式でエラーが解消できました。
{Template OS Linux:logrt[/var/log/messages,@messages].iregexp(@messages)}<> 0 and ({Template OS Linux:logrt[/var/log/messages,@messages].nodata(300)})=0
今後ともよろしくお願いいたします。