お尋ねします。
現在、アイテムの取得である数値を取得しています。 何らかの理由でnullや数字以外の物を取得した場合 の障害表示をトリガーでするにはどうしたらいいでしょうか。
nodataを試しましたが、アイテム自体はnullで取得できているので 障害表示はなりませんでした。
正常時に取得しているのは1ケタから2ケタの数値のみです。 それ以外を取得した時(nullや文字)に障害表示を出したい。
zabbix 1.8.16
よろしくお願いします。
状況がよく分かりません。 アイテムの設定はどうなっているのですか? null で取得できるとは、null という文字列を取得しているのですか?
データ型が数値なら、数字以外が返ってくると取得不可になると思います。1.8 では取得不可を検知する方法はなかったはずです。
値を文字列として扱ってもいいならデータ型を文字列にすればいいんじゃないでしょうか。 グラフを作るなどで、数値である必要があるなら、同じ値を取得する別のアイテムを作って、そちらではデータ型を文字列にして、それが数値以外を含む、という条件のトリガーを作れば何とかなりそうな気もします。
ありがとうございます。 >アイテムの設定はどうなっているのですか? すみません、数値で指定していました。 >null で取得できるとは、null という文字列を取得しているのですか? いいえnullになると取得できていませんでした。 そこでnodataをしていすれば、トリガーが動くと思ったのですが、 動かなかったのでどうしようかと思い質問しました。
今、アイテムの数値をログに変えて以下の正規表現で取得を試みましたが、上手く取れませんでした。 なぜでしょうか。
アイテム.regexp(*[0-9]*)}=1
>いいえ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
有り難うございます。 zabbix[items_unsupported]だとzabbix全体での取得不可の数になるようです。 個別のitemが取得不可になった場合、個別に警告を出すことはできないでしょうか。
1.8.16だとそれ以上は無理だと思います。
2.2以降であれば、アクションのソースで「内部イベント」(Internal events)というのが選択できるようになっていて、アイテムの状態が 取得不可になった時にそのアイテム名をメール等で通知できるように なっています。
>個別のitemが取得不可になった場合、個別に警告を出すことはできないでしょうか。 それだと、API を使ってがんばるなどしないと無理でしょうね。 未だに 1.8 を使っているということは簡単にバージョンアップできない環境なんでしょうが、3.2 からは取得不可でも nodata に反応するようになったようなので、バージョンアップできるならこれを使うのがいいと思います。
ところで、{アイテム.regexp("[0-9]")}=0 ←これはどうでしたか? #アイテムのデータ型はログより文字列の方がいいと思いますが。
アカウント名 work2000
Zabbix関連
heya - 投稿数: 319
状況がよく分かりません。
アイテムの設定はどうなっているのですか?
null で取得できるとは、null という文字列を取得しているのですか?
データ型が数値なら、数字以外が返ってくると取得不可になると思います。1.8 では取得不可を検知する方法はなかったはずです。
値を文字列として扱ってもいいならデータ型を文字列にすればいいんじゃないでしょうか。
グラフを作るなどで、数値である必要があるなら、同じ値を取得する別のアイテムを作って、そちらではデータ型を文字列にして、それが数値以外を含む、という条件のトリガーを作れば何とかなりそうな気もします。
work2000 - 投稿数: 31
ありがとうございます。
>アイテムの設定はどうなっているのですか?
すみません、数値で指定していました。
>null で取得できるとは、null という文字列を取得しているのですか?
いいえnullになると取得できていませんでした。
そこでnodataをしていすれば、トリガーが動くと思ったのですが、
動かなかったのでどうしようかと思い質問しました。
今、アイテムの数値をログに変えて以下の正規表現で取得を試みましたが、上手く取れませんでした。
なぜでしょうか。
アイテム.regexp(*[0-9]*)}=1
heya - 投稿数: 319
>いいえ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 - 投稿数: 31
有り難うございます。
zabbix[items_unsupported]だとzabbix全体での取得不可の数になるようです。
個別のitemが取得不可になった場合、個別に警告を出すことはできないでしょうか。
TNK - 投稿数: 4769
1.8.16だとそれ以上は無理だと思います。
2.2以降であれば、アクションのソースで「内部イベント」(Internal
events)というのが選択できるようになっていて、アイテムの状態が
取得不可になった時にそのアイテム名をメール等で通知できるように
なっています。
heya - 投稿数: 319
>個別のitemが取得不可になった場合、個別に警告を出すことはできないでしょうか。
それだと、API を使ってがんばるなどしないと無理でしょうね。
未だに 1.8 を使っているということは簡単にバージョンアップできない環境なんでしょうが、3.2 からは取得不可でも nodata に反応するようになったようなので、バージョンアップできるならこれを使うのがいいと思います。
ところで、{アイテム.regexp("[0-9]")}=0 ←これはどうでしたか?
#アイテムのデータ型はログより文字列の方がいいと思いますが。