教えてください。 スイッチからsnmpで温度を取得するアイテムを登録したのですが 値が「 30 C/86 F 」のような文字列でしか取得できませんでした。 エクセルなどで使うような関数的なもので数値として登録する方法が ございましたらご指導ください。 よろしくお願いします。
midさん
Zabbixが取得した情報を加工するのは難しいような… 数値を取得するシェルを作ってUserParameterに設定するのが良いかと。
シェルはsnmpgetかsnmpwalkで値取得して、awkやcutで数値だけ切り取ってやればよいかと。 ※:awkやcutじゃなくてphpやpythonで作っても良いです。
KAZさん アドバイスありがとうございます。 なるほど、取得する前に加工すればよかった訳ですね。 手が空いたら作ってみようと思います。 ありがとうございました。
少し無理矢理な方法なのですが‥
本来のアイテムに加えて、別のアイテムを、1つ追加で定義し、 API の history.get 等で、過去の収集結果値を取得して、 改変後の値を、別アイテム側へ、再登録する、という方法が可能かもしれません
・オリジナルのデータ取得用アイテム ・種類:Zabbix エージェント / エージェント(アクティブ) / snmp / ipmi 等 ・データ型:文字列 ・改変・編集後のアイテム値を保存するためのアイテム ・種類:Zabbix トラッパー ・データ型:数値(整数)
サーバ上もしくはAPIで叩ける近隣サーバで、APIを利用したプログラムを書かなければいけませんが‥
1.API でオリジナル側アイテムのヒストリ値を取得 2.プログラム内でアイテム値を加工 今回の事例だと、正規表現で数値部分のみを切り出し、等 3.加工したアイテム値とヒストリから得た時刻情報を基にして、 zabbix_sender 等を使って、「トラッパー」側のアイテムへ、値を登録
などとすれば、数値型のアイテムへ加工データを放り込めるので、 グラフで値の推移等も見られるようになるんじゃないかと思います
オリジナルのアイテム側のヒストリ値が消えて(HouseKeeper等で)しまわないうちに、 加工スクリプトで拾ってきて、再登録‥みたいになるので、サーバ上では、実質データを二重持ちすることに なってしまいますが‥
アカウント名 mid
Zabbix関連
KAZ - 投稿数: 1085
midさん
Zabbixが取得した情報を加工するのは難しいような…
数値を取得するシェルを作ってUserParameterに設定するのが良いかと。
シェルはsnmpgetかsnmpwalkで値取得して、awkやcutで数値だけ切り取ってやればよいかと。
※:awkやcutじゃなくてphpやpythonで作っても良いです。
mid - 投稿数: 2
KAZさん
アドバイスありがとうございます。
なるほど、取得する前に加工すればよかった訳ですね。
手が空いたら作ってみようと思います。
ありがとうございました。
fripper - 投稿数: 495
少し無理矢理な方法なのですが‥
本来のアイテムに加えて、別のアイテムを、1つ追加で定義し、
API の history.get 等で、過去の収集結果値を取得して、
改変後の値を、別アイテム側へ、再登録する、という方法が可能かもしれません
・オリジナルのデータ取得用アイテム
・種類:Zabbix エージェント / エージェント(アクティブ) / snmp / ipmi 等
・データ型:文字列
・改変・編集後のアイテム値を保存するためのアイテム
・種類:Zabbix トラッパー
・データ型:数値(整数)
サーバ上もしくはAPIで叩ける近隣サーバで、APIを利用したプログラムを書かなければいけませんが‥
1.API でオリジナル側アイテムのヒストリ値を取得
2.プログラム内でアイテム値を加工
今回の事例だと、正規表現で数値部分のみを切り出し、等
3.加工したアイテム値とヒストリから得た時刻情報を基にして、
zabbix_sender 等を使って、「トラッパー」側のアイテムへ、値を登録
などとすれば、数値型のアイテムへ加工データを放り込めるので、
グラフで値の推移等も見られるようになるんじゃないかと思います
オリジナルのアイテム側のヒストリ値が消えて(HouseKeeper等で)しまわないうちに、
加工スクリプトで拾ってきて、再登録‥みたいになるので、サーバ上では、実質データを二重持ちすることに
なってしまいますが‥