トリガーの設定で数字以外

お尋ねします。

現在、アイテムの取得である数値を取得しています。
何らかの理由でnullや数字以外の物を取得した場合
の障害表示をトリガーでするにはどうしたらいいでしょうか。

nodataを試しましたが、アイテム自体はnullで取得できているので
障害表示はなりませんでした。

正常時に取得しているのは1ケタから2ケタの数値のみです。
それ以外を取得した時(nullや文字)に障害表示を出したい。

zabbix 1.8.16

よろしくお願いします。

コメント表示オプション

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

状況がよく分かりません。
アイテムの設定はどうなっているのですか?
null で取得できるとは、null という文字列を取得しているのですか?

データ型が数値なら、数字以外が返ってくると取得不可になると思います。1.8 では取得不可を検知する方法はなかったはずです。

値を文字列として扱ってもいいならデータ型を文字列にすればいいんじゃないでしょうか。
グラフを作るなどで、数値である必要があるなら、同じ値を取得する別のアイテムを作って、そちらではデータ型を文字列にして、それが数値以外を含む、という条件のトリガーを作れば何とかなりそうな気もします。

ユーザー work2000 の写真

ありがとうございます。
>アイテムの設定はどうなっているのですか?
すみません、数値で指定していました。
>null で取得できるとは、null という文字列を取得しているのですか?
いいえnullになると取得できていませんでした。
そこでnodataをしていすれば、トリガーが動くと思ったのですが、
動かなかったのでどうしようかと思い質問しました。

今、アイテムの数値をログに変えて以下の正規表現で取得を試みましたが、上手く取れませんでした。
なぜでしょうか。

アイテム.regexp(*[0-9]*)}=1

ユーザー heya の写真

>いいえnullになると取得できていませんでした。
「null になる」というのが具体的にどうなっているのかがよく分かりませんが・・・。
取得できていないというのは、取得不可になったということですか?
※取得不可=アイテムの設定画面でステータスが取得不可と表示される状態

それと、{アイテム.regexp(*[0-9]*)}=1 だと「数字を含むと障害」という条件式になります(ついでに、前後の * は不要です)。なので、おそらく {アイテム.regexp("[0-9]")}=0 がやりたいことのような気がします。

それから、取得不可を検知する方法は無いと書きましたが、1.8.6 からは zabbix[items_unsupported] が使えるようになっていたみたいですね。
https://www.zabbix.com/documentation/1.8/jp/manual/config/items

ユーザー work2000 の写真

有り難うございます。
zabbix[items_unsupported]だとzabbix全体での取得不可の数になるようです。
個別のitemが取得不可になった場合、個別に警告を出すことはできないでしょうか。

ユーザー TNK の写真

1.8.16だとそれ以上は無理だと思います。

2.2以降であれば、アクションのソースで「内部イベント」(Internal
events)というのが選択できるようになっていて、アイテムの状態が
取得不可になった時にそのアイテム名をメール等で通知できるように
なっています。

ユーザー heya の写真

>個別のitemが取得不可になった場合、個別に警告を出すことはできないでしょうか。
それだと、API を使ってがんばるなどしないと無理でしょうね。
未だに 1.8 を使っているということは簡単にバージョンアップできない環境なんでしょうが、3.2 からは取得不可でも nodata に反応するようになったようなので、バージョンアップできるならこれを使うのがいいと思います。

ところで、{アイテム.regexp("[0-9]")}=0 ←これはどうでしたか?
#アイテムのデータ型はログより文字列の方がいいと思いますが。