正規表現について
zabbix3.0を使用しています。
正規表現で困っています。
3つのキーワードがある場合のみエラーとしないようにしたいです。
正規表現で
@test 結果が「偽」: 「^(?=.*aaa)(?=.*bbb)(?=.*ccc)」を作成しました。
テストでは、うまくいきます。
アイテムで
「eventlog[Application,@test,"Warning|Error|Critical",,,,skip]」
とするとすべて引っかかってしまいます。
正規表現のテストではうまくいくのに、実際にアイテムやトリガ(.regexp(@test))とすると
狙い通りに動いてくれません。
設定等を教えて下さい。
宜しくお願い致します。
heya - 投稿数: 319
確か、Zabbix で使えるのは POSIX の拡張正規表現(ERE)だったはずで、それだと (?= は使えないはずです。
やりたいことがいまいちピンと来ないのですが、
>3つのキーワードがある場合のみエラーとしないようにしたいです。
これはどういう意味でしょうか?
三つのキーワードを指定した順番で全部含めば真、ということですか?
それだとカスタム正規表現を使うまでもなく aaa.*bbb.*ccc でいいと思いますし、
順不同ならカスタム正規表現で三つの条件式を作って
aaa 結果が真
bbb 結果が真
ccc 結果が真
とすればいいだけのような気がします。
>テストでは、うまくいきます。
テスト文字列はどんな文字列で、それが最終的に真になってほしいのか偽になってほしいのか、どうなんでしょうか?
追記:
エラーとしない、であれば、トリガーの値が偽になればいいんですね。
となると、トリガーは {~.regexp("aaa.*bbb.*ccc")}=0 、あるいは {~.regexp(@test)}=0 といった感じになります。
いー - 投稿数: 26
返信ありがとうござます。
やりたいことは、
3つのキーワードが含まれていれば、障害としない。
それ以外は、障害とする。です。
順番はできれば、順不同です。
3が含まれていれば、障害としないなので、「偽」としたいです。
できれば、アイテム側で絞りたいと思っています。