トリガーの条件式で2つの条件にマッチした場合のみ障害とする設定について

いつもお世話になっております。
タイトルの件について質問いたします。

使用環境
Zabbix Server:3.2.11
OS:CentOS 7.4

2つのトリガー(下記トリガーBとC)が障害となった際に実行されるアクションを設定したいと考えております。
アクションの実行条件に「トリガー」を複数設定した場合にはANDが使用できないため、
1つのトリガーに以下の通り条件式を設定し、このトリガー(トリガーAとします)が障害と
なった際に実行されるアクションを作成しました。
別途and前の条件式(トリガーBとします)と後の条件式(トリガーCとします)とで別々のトリガーも作成しています。

トリガーA
{Template_xxxx:logrt[/var/log/syslog,aaaa].iregexp(aaaa)}<>0 and {Template_xxxx[/xxxx/xxxx.log].iregexp(bbbb)}<>0

トリガーB
{Template_xxxx:logrt[/var/log/syslog,aaaa].iregexp(aaaa)}<>0

トリガーC
{Template_xxxx[/xxxx/xxxx.log].iregexp(bbbb)}<>0

トリガーCが障害になった場合、トリガーBが正常な状態でもトリガーAが障害となってしまいます。
トリガー設定画面の「条件式ビルダー」-「テスト」では両方の式に合致しなければ「TRUE」になりません。
トリガーBのみ障害の場合はトリガーAは反応しません。
両方の条件を満たした場合のみ障害となるような設定方法をご教示いただけないでしょうか。

この他に必要な情報があれば提示しますので、返信お願いいたします。

以上、よろしくお願いいたします。

コメント表示オプション

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

トリガーB のアイテム設定で "aaaa" に絞っているので、トリガーB は常に障害状態ではないでしょうか。
(他のログが取得されないから復旧しない)

そのため、トリガーBはお飾り状態で 「トリガーC で "bbbb" を含めば通知する、含まなければ通知しない」 の切り分けしかされていないと思います。
※トリガーBのアイテム設定後、一度もログが出力されていないと少しだけ挙動が違いますが、一回出たら以降は固定。。。

「2つのトリガー(下記トリガーBとC)が障害となった際」で
実際にやりたいことはどういうことでしょうか。

ユーザー dondoc の写真

yk_taiko様

回答ありがとうございます。
実際にやりたいことは、KVMゲストがダウンした際に出力されるログとKVMホスト側のログにトリガーをつけて、
両方が障害となった際にKMVゲストの起動コマンドを実行するアクションの作成です。

昨日記載したトリガーの記述が不足していました。
実際にテストしているトリガーは以下の通りです。

トリガーB
{Template_xxxx:logrt[/var/log/syslog,aaaa].iregexp(aaaa)}<>0 and {Template_xxxx:logrt[/var/log/syslog,aaaa].nodata(300)}=0

トリガーC
{Template_xxxx[/xxxx/xxxx.log].iregexp(bbbb)}<>0 and {Template_xxxx[/xxxx/xxxx.log].iregexp(cccc)}=0

そもそもトリガーAで使用している前半部分とトリガーBは判定基準は同じでも違うトリガーとして
考えないといけないということですね。
トリガーBが復旧しているからトリガーAの前半部分も復旧状態だと思い込んでいました。
2つのトリガーは別物と考えて、再度条件式を作成してみます。

ユーザー yk_taiko の写真

「XX秒以内にゲスト・ホスト両方ともログ出力されたら起動アクションを実行したい」 ということであれば、
B と C をくっつけるときに、それぞれの要素に時間の要素を入れないと判定しないですね。
※nodata や count 関数の他、regexp の第二引数でも良いかと思います。

例えばですが、「B とC が300秒以内に出力されたら」という条件であれば こういう風にするのはどうでしょうか。

({Template_xxxx:logrt[/var/log/syslog,aaaa].iregexp(aaaa)}<>0 and {Template_xxxx:logrt[/var/log/syslog,aaaa].nodata(300)}=0) and ({Template_xxxx[/xxxx/xxxx.log].iregexp(bbbb,300)}<>0 and {Template_xxxx[/xxxx/xxxx.log].iregexp(cccc,300)}=0)

※ (トリガーB そのまま) and (トリガーC に iregexp の第二引数で 300 秒以内を追加)

ユーザー dondoc の写真

アドバイスありがとうございます。
秒数指定についてはこれから設計しようと考えていたので、
大変助かります。
ぜひ取り入れたいと思います。