トリガー条件の作成方法について

いつも参考にさせていただいております。

トリガー条件の作成方法についてご教示いただきたく

現在以下のような性能監視(メモリ)のトリガーを作成しメモリ使用率の監視(5分周期)をおこなっい、
下記のようなオペレーション操作(トリガーの閾値変更)後、Clearイベントの発生をさせたいと考えております
*閾値変更後の閾値を超えるメモリ値を取得後であれば、このトリガー条件式で問題ないと考えておりますが、
取得したメモリ値が超えてない場合にClearイベントを発生させたいと考えております。
また、初回検知でClearイベントは発生させたくない。(last(#2)を判定することで初回検知時にClearイベントを発生させないよう考えましたが
下記オペレーション操作の場合は適切な条件式でなくなる為、悩んでおります)

初回登録時のトリガー条件
[Critical]_メモリ使用率の上限閾値を超過を検知しました。{ITEM.VALUE} {11149_172.31.28.36:DEV_11775.last()}>90
[Major]_メモリ使用率の上限閾値を超過を検知しました。{ITEM.VALUE} {11149_172.31.28.36:DEV_11775.last()}>80
[Clear]_メモリ使用率の上限閾値超過が回復しました。{ITEM.VALUE2} {11149_172.31.28.36:DEV_11775.last(#2)}>80 <80

*****************以下、オペレーションと監視状況*****************

(1)1回目:メモリ値 85取得 → Majorイベント発生

(2)トリガー条件の閾値変更
[Critical]_メモリ使用率の上限閾値を超過を検知しました。{ITEM.VALUE} {11149_172.31.28.36:DEV_11775.last()}>95
[Major]_メモリ使用率の上限閾値を超過を検知しました。{ITEM.VALUE} {11149_172.31.28.36:DEV_11775.last()}>87
[Clear]_メモリ使用率の上限閾値超過が回復しました。{ITEM.VALUE2} {11149_172.31.28.36:DEV_11775.last(#2)}>87 <87

(3)2回目:メモリ値 85取得 → Clearイベント発生(*Clearイベントを発生させたい)

**********************************************************************

Clearのトリガー条件式をどのように作成したら期待するイベント検知ができるかをご教示いただければ助かります

どうぞよろしくお願いいたします

コメント表示オプション

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

こんにちは。

一応確認ですが、[Critical] や [Major] の回復イベントではなく、[Clear] の障害イベント(日本語として変な感じですが)を出したいということですか?

それから、不等号や&は HTML の特殊文字なので、このフォーラムでは半角でそのまま書くとうまく表示されないことがあります。特に [Clear] の条件式がうまく表示されていないような気がするので、不等号と&を全角で書くか、<→&lt;、>→&gt;、&→&amp; のように書きなおしていただけますか。
あと一応「障害イベントを継続して生成」にチェックがあるかどうかも教えてください。

もう一つ。今回はあまり関係無さそうですが、Zabbix のバージョンも書いておくと、より適切な回答が返ってくる可能性が高くなりますよ。

さて、上記のようによく分からない状態で想像しての回答ですが、[Clear] の条件式には count 関数を使うといいんじゃないでしょうか。
{11149_172.31.28.36:DEV_11775.last()}>87&{11149_172.31.28.36:DEV_11775.count(長めの時間)}>1
といった感じ。「長めの時間」は、アイテムの更新間隔より長くしておくといいと思います。初回なら count() の値は 1 になるだろうということで、それが 1 より大きければ二回目以降と判断するわけです。
https://www.zabbix.com/documentation/2.2/jp/manual/appendix/triggers/fun...

ユーザー @kaz373 の写真

heya さん

ご教示ありがとうございます
改めてご指摘頂いている部分を記載させて頂きます

>一応確認ですが、[Critical] や [Major] の回復イベントではなく、[Clear] の障害イベント(日本語として変な感じですが)を出したいということですか?
言葉足らずですみません。
はい。ご指摘頂いているとおりです

>それから、不等号や&は HTML の特殊文字なので、このフォーラムでは半角でそのまま書くとうまく表示されないことがあります。特に [Clear] の条件式がうまく表示されていないような気がするので、不等号と&を全角で書くか、<→<、>→>、&→& のように書き>なおしていただけますか。
以後、気を付けます。

再度作成しているトリガー条件(Clear)を記載致します。

[Clear]_メモリ使用率の上限閾値超過が回復しました。{ITEM.VALUE2} {11149_172.31.28.36:DEV_11775.last(#2)}>87 & {11149_172.31.28.36:DEV_11775.last()}<87

>あと一応「障害イベントを継続して生成」にチェックがあるかどうかも教えてください。
チェックはしておりません

>もう一つ。今回はあまり関係無さそうですが、Zabbix のバージョンも書いておくと、より適切な回答が返ってくる可能性が高くなりますよ。
Zabbixバージョンは、2.2.11を利用しております

どうぞよろしくお願い致します

ユーザー heya の写真

そういうことでしたら、上に書いた count を使った式でよさそうな気がしますが、実際に確認したわけではないので、そちらで試していただけますか。

ユーザー mocha の写真

しょうもないことを考えてみたので書いてみます
目的とまるでちがったら読み飛ばしてください

macro1: {$LIMIT_MAJOR} 80
item1 : Zabbixエージェント? DEV_11775
trigger1: 閾値超過{ITEM.VALUE} {DEV_11775.last()}> {$LIMIT_MAJOR}

item2 : 計算 last({DEV_11775}) > {$LIMIT_MAJOR}
※trigger1とおなじBOOL値になる式にする。つまり閾値越えが成立すれば1, しなければ0が計算アイテムの値になる
trigger2: 閾値復旧 {ITEM.VALUE2} {item2.prev()}=1 & {item2.last()}=0 & {DEV_11775.last()} > -1

trigger1は ふつうに閾値超過時に発報
trigger2は trigger1の条件が成立したあとに成立しなくなったときに発報
・・・になるはず?