レスポンス値のグラフ化

下記の様に、時間、ホスト名、レスポンス値が定期的に書き込まれるファイルに対して、
ホスト名毎にx軸を時間、y軸をレスポンス値としてグラフ化したいと考えています。

2013-02-18 18:30:01 hoge1 0.04
2013-02-18 18:31:01 hoge2 0.02
2013-02-18 18:32:01 hoge1 0.02
2013-02-18 18:33:01 hoge2 0.02
   :

とりいそぎゴールへの前段階として、下記の様なレスポンス値のみ定期的に書き込まれるファイルを作成し
アイテムの設定を行いましたが、エラーが出て取得不可となりました。

  0.04
  0.02
   :

アイテム設定とエラーは下記の通りですが、取得不可を解消する方法をご教授頂けますでしょうか。
(時間、ホスト名、レスポンス値が書き込まれるファイルのパターンも分かれば・・)

タイプ:計算
キー:log_to_float[/etc/zabbix/test.log]
式:last(log_to_float[/etc/zabbix/test.log])
※/etc/zabbix/test.log にレスポンス値が書き込まれる。権限は666。

エラー:Cannot evaluate function [last()]: item [ホスト名:log_to_float[/etc/zabbix/test.log]] not found

宜しくお願い致します。

コメント表示オプション

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

Zabbixだけでは、ログファイルのようなファイルに出力されたテキ
スト情報を受け取って、それを文字列のパターンマッチングなどで
判定するような処理はできますが、テキスト内の一部の数値を切り
取って、それを数値として扱うようなことはできないと思います。

今までに頂いている情報で、私が実現するのであれば、以下の2つ
の方法のどちらかを検討します。

 ・ファイルの最終行を読み込んで、zabbix_senderを利用して
  Zabbixサーバにデータを送る
 ・ログを出力する部分で、同時にzabbix_senderを利用する

zabbix_senderというコマンドを利用すれば、いつ、どのサーバで、
どのような値であったかをZabbixサーバに通知することができます。

今回であれば、ログファイル?にタイムスタンプとホスト名、値が
含まれているようですから、タイムスタンプまで対応するかは検討
が必要ですが、少なくとも対象のホストと値はわかりますので、そ
れをZabbixサーバに渡すことができるはずです。

Zabbixサーバ上のアイテムのタイプとしては、Zabbixトラッパー
を選択することになります。

常にファイルの追加更新された行のみを取得して処理することも、
ちょっと工夫が必要なのですが、まずは対応するためのアイデア
ということで書かせて頂きました。

どのような仕組みや構成で値を取得されているのかわかりませんが、
2つめに挙げた方法の方が、簡単に実現できるかもしれません。

ユーザー KAZ の写真

taru12345さん
TNKさん

TNKさんの方法とは別なやり方として…

ログをawk等で読んで値を出力するshellを作成し、Zabbixエージェントの拡張監視としてUserParamenterに登録すれば数値も監視可能なはずです。
※:Zabbix1.4/1.6/1.8で試したことあります。

下記でログの最終行が出力されます。
---------------------------------
#!/sh/bin
cat /etc/zabbix/test.log | awk '{print $NF}'
---------------------------------

ユーザー o_man103 の写真

TNKさん、KAZさん

zabbix_senderを利用する方法とshellを作成する方法の両方で、
グラフを形作ることができました。
色々複雑な事も出来そうなので、弄ってみようかと思います。

ありがとうございました。