正規表現について

zabbix3.0を使用しています。

正規表現で困っています。
3つのキーワードがある場合のみエラーとしないようにしたいです。
正規表現で
@test 結果が「偽」: 「^(?=.*aaa)(?=.*bbb)(?=.*ccc)」を作成しました。
テストでは、うまくいきます。

アイテムで
「eventlog[Application,@test,"Warning|Error|Critical",,,,skip]」

とするとすべて引っかかってしまいます。

正規表現のテストではうまくいくのに、実際にアイテムやトリガ(.regexp(@test))とすると
狙い通りに動いてくれません。

設定等を教えて下さい。
宜しくお願い致します。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー heya の写真

確か、Zabbix で使えるのは POSIX の拡張正規表現(ERE)だったはずで、それだと (?= は使えないはずです。

やりたいことがいまいちピンと来ないのですが、
>3つのキーワードがある場合のみエラーとしないようにしたいです。
これはどういう意味でしょうか?
三つのキーワードを指定した順番で全部含めば真、ということですか?
それだとカスタム正規表現を使うまでもなく aaa.*bbb.*ccc でいいと思いますし、
順不同ならカスタム正規表現で三つの条件式を作って
 aaa 結果が真
 bbb 結果が真
 ccc 結果が真
とすればいいだけのような気がします。

>テストでは、うまくいきます。
テスト文字列はどんな文字列で、それが最終的に真になってほしいのか偽になってほしいのか、どうなんでしょうか?

追記:
エラーとしない、であれば、トリガーの値が偽になればいいんですね。
となると、トリガーは {~.regexp("aaa.*bbb.*ccc")}=0 、あるいは {~.regexp(@test)}=0 といった感じになります。

ユーザー いー の写真

返信ありがとうござます。

やりたいことは、
3つのキーワードが含まれていれば、障害としない。
それ以外は、障害とする。です。
順番はできれば、順不同です。

3が含まれていれば、障害としないなので、「偽」としたいです。
できれば、アイテム側で絞りたいと思っています。