カスタム正規表現の除外方法について

いつもお世話になっております。

表記の件、お知恵を貸して頂きたく。
現在、カスタム正規表現を用いてトリガーに除外条件を追加しております。
----------------------------------------------------------
■トリガー
{ホスト名:log[/var/log/app.log].iregexp(@exclude)}<>0

■カスタム正規表現
名前:exclude
条件式:TEST
条件式の形式:文字列が含まれない
大文字小文字を区別:はい
----------------------------------------------------------
動作としては以下です。
「app.logに出力された場合に障害とするが、
 "TEST"が含まれていれば除外する(イベントとして検知しない)」

上記条件に対して、さらに"SHIKO"という文字列も追加で除外したいのですが、
マストな方法は何になりますでしょうか?
 ※条件式の形式を「結果が真」または「結果が偽」で実施している例もあり、
  条件式の形式によって違いが出てしまうのかといった箇所が不明です。

ZabbixVerは2.4.8となります。

コメント表示オプション

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

exclude に、TEST と同様の条件式を追加すればいいです。
条件式:SHIKO
条件式の形式:文字列が含まれない
大文字小文字を区別:はい

結果が真/結果が偽 というのは、条件式を正規表現のパターンとして扱い、それにマッチする部分があるかないかという判断になります。文字列が含まれる/含まれない の場合は、その言葉通り、条件式は単なる文字列で、その文字列がそのまま含まれているかどうかという判断になります。

例えばですが・・・
TEST や SHINKO は文字列でも正規表現でも同じ結果になります。
3.14 は、文字列なら 3.14 だけが引っかかりますが、正規表現なら 3.14 にも 3314 にも 3/14 にもマッチします(正規表現では . は任意の一文字という意味になるので)。

ユーザー kaeru の写真

>>heya様
頂いた内容で以下、修正致しました。
----------------------------------------------------------
■トリガー
{ホスト名:log[/var/log/app.log].iregexp(@exclude)}<>1

■カスタム正規表現
名前:exclude
条件式:TEST,SHIKO
条件式の形式:いずれかの文字列が含まれる
大文字小文字を区別:はい
----------------------------------------------------------
※追加をしたところ、AND条件(TEST and SHIKOが含まれていた場合)となったため以下のように変更しました。
 →条件式の形式に「いずれかの文字列が含まれない」という項目がありませんでしたので、
 「いずれかの文字列が含まれる」に変更し、トリガー条件式を変更しました(0 → 1)。

>結果が真/結果が偽 というのは、条件式を正規表現のパターンとして扱い、それにマッチする部分があるかないかという判断になります。
>文字列が含まれる/含まれない の場合は、その言葉通り、条件式は単なる文字列で、その文字列がそのまま含まれているかどうかという判断になります。
ありがとうございます。
逆説的に言えば、正規表現を使用したい場合は「結果が真/結果が偽」にて式を書く必要があると理解しました。

ご回答まことにありがとうございました。

ユーザー kaeru の写真

追加となり申し訳ありません。
上記回答を頂いて設定をしようと思ったのですが、
実際に設定しようとしている条件式は、複数あり、尚且つ1個1個が非常に長いです。
上記のため、カスタム正規表現の255文字数制限に引っかかってしまっている状況です。
(正規表現を使用したいため、"条件式の形式"を結果が偽としています。)

------------------------------------------------------
■カスタム正規表現
名前:exclude
条件式:hoge…(100文字)|fuga…(100文字)|piyo...(100文字)|hogera...(100文字) ←255制限に引っかかる
条件式の形式:結果が偽
大文字小文字を区別:はい
------------------------------------------------------

上記の場合は、カスタム正規表現をもう一つ用意し、
トリガー式で調整するしかないのでしょうか?

ユーザー heya の写真

{ホスト名:log[/var/log/app.log].regexp(@exclude)}<>0
---
条件式:TEST
条件式の形式:文字列が含まれない
---
条件式:SHIKO
条件式の形式:文字列が含まれない
---
としていれば、TEST を含まない、かつ、SHIKO を含まない、という条件になるはずですが・・・。
#iregexp は、大文字小文字の違いを無視するときに使うので regexp の方が良さそうな
#気がします(iregexp のままでもいいかもしれません)。正規表現の「大文字小文字を
#区別」の設定とどちらが優先されるのかは分かりませんが。

>※追加をしたところ、AND条件(TEST and SHIKOが含まれていた場合)となったため
具体的にどんな感じになったんでしょうか?
・正規表現の「条件式」と「条件式の形式」すべて
・トリガーの条件式
・ログの文字列
・そのときのトリガーの値
を教えて下さい。

>「いずれかの文字列が含まれない」という項目がありませんでしたので
少々余談になりますが、いずれかの文字列を含まないということは、「TEST を含まないか SHIKO を含まない」となって、あまり実用的とは思えません。 TEST だけを含むときは SHIKO を含まないし、SHIKO だけを含むときは TEST を含まない、結局、両方含むときだけ偽になり、それ以外は真になるからです。

{ホスト名:log[/var/log/app.log].regexp(@exclude)}<>0
---
条件式:hoge…
条件式の形式:結果が偽
---
条件式:fuga…
条件式の形式:結果が偽
---
条件式:piyo...
条件式の形式:結果が偽
---
条件式:hogera...
条件式の形式:結果が偽
---
・・・といった感じで無視したい数だけ書けばいいはずです。

ユーザー kaeru の写真

>>heya様
お世話になっております。

>としていれば、TEST を含まない、かつ、SHIKO を含まない、という条件になるはずですが・・・。
申し訳ありません。
再度確認したところ希望動作になりました。
 →設定   :gi01.png
 →テスト結果:gi02.png
#iregexpについてはミスです。ご指摘ありがとうございます。

>※追加をしたところ、AND条件(TEST and SHIKOが含まれていた場合)となったため
条件式の形式の動作を勘違いしておりました。
#"結果が真"でテストしたところ、設定した全ての値(hoge,huga,piyo,hogera)を含まなければ最終結果が真(1)にならなかったため
#「設定した値全てを含まなければならない(AND条件)」と思っておりましたが、
# "結果が偽"の場合は1つでも設定した値を含んでいれば最終結果は偽(0)となりました。
#AND条件やOR条件の前に、「結果として偽(0)真(1)どちらになればいいのか?」といった箇所を把握出来ておりませんでした。
 →設定   :shin01.png
 →テスト結果:shin02.png

ご回答誠にありがとうございました。