ログファイルから数値を取り出しグラフ化する方法について
お世話になっております。
【環境:Zabbix3.2.11】
ログファイルから数値を取り出してグラフ化したく以下のURLを参考にためしに設定してみましたがうまくいきません。
https://qiita.com/kenchang100kg/items/e2b6db8a53853f4b07ae
以下に設定した内容を記載します。
【テスト用ログファイル】
/tmp/zabbix/test.log
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[23/Dec/2016:06:10:17 +0000] "request: GET / HTTP/1.1" "status: 200" "body_bytes_sent: 18006" "http_referer: -" "resquest_time: 0.112"
[23/Dec/2016:06:10:17 +0000] "request: GET /favicon.ico HTTP/1.1" "status: 200" "body_bytes_sent: 5" "http_referer: http://xxxxxxxx/" "resquest_time: 0.003"
[23/Dec/2016:06:10:19 +0000] "request: GET / HTTP/1.1" "status: 200" "body_bytes_sent: 18006" "http_referer: -" "resquest_time: 0.112"
[23/Dec/2016:06:10:19 +0000] "request: GET /favicon.ico HTTP/1.1" "status: 200" "body_bytes_sent: 5" "http_referer: http://xxxxxxxx/" "resquest_time: 0.003"
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
【アイテム】
名前:test
タイプ:Zabbixエージェント(アクティブ)
キー:logrt[/tmp/zabbix/test.log,"status: (200)",,,,\1]
データ型:数値(整数)
データの形式:10進数
【グラフ】
名前:test
各項目デフォルト
アイテム:サーバ名:test
上記の設定をしてグラフを開いても[データなし]となってしまいます。
URLによると縦軸200のグラフができるようなのですが。。。
ログファイルから特定の項目の数値を取り出しグラフ化することは可能なのでしょうか。
よろしくお願いします。
yk_taiko - 投稿数: 184
該当アイテムのヒストリにデータが入っていますか。
あと、表示期間はデータの存在する期間が指定されていますか。
aloha0810 - 投稿数: 16
コメントありがとうございます。
すみませんzabbix初心者なものでヒストリにデータが入っているかどうかはどこを参照するとわかりますでしょうか。
またグラフを開きますと現在の時刻から1時間前まで表示されておりますがグラフを開いた状態で/tmp/zabbix/test.logを
更新してもデータなしのままです。
TNK - 投稿数: 4769
「監視データ」->「最新データ」で参照できませんか?
また、「設定」->「ホスト」でホストの一覧を表示させ、対象のホ
ストの「アイテム」をクリックしてアイテムの一覧を表示させると、
エラーが発生して値が取得できないアイテムに関しては、赤いマー
クが表示されます。
対象のアイテムの右端に赤いマークが表示されていないか確認して
ください。
赤いマークが表示されていたら、そこにマウスのポインタを移動さ
せるとエラーの詳細が表示されるはずです。
あとは、他にタイプが「Zabbixエージェント(アクティブ)」のアイ
テムで値が取得できていますか?
できていないのであれば、Zabbixエージェント側からZabbixサーバー
に接続できない状態になっていないか、Zabbixエージェントのログ
を確認してみてください。
ご確認ください。
おまけ:
Zabbix 3.0の新機能:ログファイルから数値を取得
https://qiita.com/atanaka7/items/0e7ad1735d281adcec45
aloha0810 - 投稿数: 16
コメントありがとうございます。
「監視データ」->「最新データ」を確認しましたところ[ヒストリがないアイテムを表示]にチェックをつけた状態で
対象のアイテムが表示されました。しかし対象のアイテムの[最新のチェック時刻]、[最新の値]は空の状態です。
「設定」->「ホスト」でホストの一覧から対象ホストのアイテム一覧を確認しましたところ特に赤いマーク等はなく
ステータスは有効の状態です。
ちょっとテスト的に今回使用している/tmp/zabbix/test.logを別名に変更してみたのですが赤いマークがでません。
通常、キーに指定しているファイルがない場合はそのようなエラーが赤マークとともにでると思っていたのですが・・・
対象サーバの/var/log/zabbix/zabbix_agentd.logにはなにも書かれていませんでした。
zabbix_agentd.confのDebugLevelはデフォルトのままなのでもっと詳細なログが書かれるように設定変更が
必要でしょうか?
zabbix_getコマンドにて実行してみましたがうまくいきませんでした。
=====================================================================
# zabbix_get -s [zabbixエージェントサーバ] -k logrt[/tmp/zabbix/test.log,"status: (200)",,,,\1]
ZBX_NOTSUPPORTED: Accessible only as active check.
=====================================================================
yk_taiko - 投稿数: 184
●文字列によるフィルタを掛けず、単純に logrt[/tmp/zabbix/test.log] とした場合にデータが取得できるかどうかをまず確認してみてください。
※ 監視対象のログ監視ができているかどうかの確認
・上記ができるようであれば監視設定のフィルターによるものである可能性が高いので、出力しているログと監視設定でかけているフィルタが空白の文字なども含めて
合致しているかを確認してみてください。
・上記のフィルタ掛けないものも取れないようであれば、そもそも対象ログの監視自体ができていないこととなりますので、
ほかのログは監視できるのか、そもそもアクティブチェックの監視は正常に動くのかということを確認する必要がでてきます。
※zabbix_get は『Zabbixエージェント』タイプの確認はできますが、『Zabbixエージェント(アクティブ)』タイプの確認はできません。
aloha0810 - 投稿数: 16
コメントありがとうございます。
zabbix_getは、『Zabbixエージェント(アクティブ)』タイプの確認できないのですね!
今回のlogrt以外の、『Zabbixエージェント(アクティブ)』タイプのアイテムもヒストリには[最新のチェック時刻]も
[最新の値]も空の状態です!
ということはアクティブチェックの監視が正常ではない可能性があるということですね!
yk_taiko - 投稿数: 184
Zabbix エージェント→Zabbixサーバへの通信が失敗した場合のログは、一度しか出ません。zabbix_agentd.log に何も出力が無いということですので、
Zabbixエージェントを再起動して、起動後のログに 「Zabbixサーバと通信できないログ」が出力されるかどうか見てみてください。
出るようであれば、Zabbix エージェント→Zabbixサーバ(10051ポート) への通信が失敗していることとなりますので、通信が通るようにする必要がありますね。
aloha0810 - 投稿数: 16
おはようございます!返信ありがとうございます。
「Zabbix エージェント→Zabbixサーバへの通信が失敗しているかも」についてなのですがタイプがZabbixエージェントとなっている
アイテムについては最新のチェック時刻なども表示され通信できているように見えるのですがタイプがZabbixエージェント(アクティブ)の
アイテムはまた別ということですか?
yk_taiko - 投稿数: 184
通常の「Zabbixエージェント」タイプのものは「Zabbixサーバ→Zabbixエージェント」の通信が最初に行われます。
「Zabbixサーバ→Zabbixエージェント」の通信が許可されていれば、通常、その通信の応答は許可されます。
アクティブのものは最初に「Zabbixエージェント→Zabbixサーバ」が行われるので、それが弾かれている可能性が考えられますね。
aloha0810 - 投稿数: 16
なるほど!
ちょっと調査したところzabbixサーバもzabbixエージェントサーバもfirewalldは動いていませんでした。。。
zabbixサーバのzabbix_server.confになにか設定なと必要でしょうか?
ListenPortは設定されていなかったのでデフォルトの10051ですよね?
ListenIPが127.0.0.1になっています。。。これzabbixエージェントのServerActiveに指定したzabbixサーバの
IPアドレス書く必要ありますよね?
yk_taiko - 投稿数: 184
127.0.0.1 だと、自分自身のものしか受けられないようになっていると思われますね。
受信するインターフェースでリッスンするようにしてあげてください。
※参考 zabbix_server.conf の設定値
- https://www.zabbix.com/documentation/3.2/manual/appendix/config/zabbix_s...
- https://www.zabbix.com/documentation/2.2/jp/manual/appendix/config/zabbi...
aloha0810 - 投稿数: 16
ちょっとテスト環境をつくってやってみたいと思います!
ありがとうございます!
aloha0810 - 投稿数: 16
みなさまご教授ありがとうございます。
本日は時間になりましたので来週また調査する予定です。
またお力をお貸しいただければ幸いです。
aloha0810 - 投稿数: 16
テスト環境をつくりzabbix_server.confに以下を追記したらzabbixサーバのアクティブチェック監視はできるようになりました。
ListenPort=10051
ListenIP=127.0.0.1
zabbixエージェントサーバのアクティブチェック監視も行いたくzabbix_server.confのListenIP=zabbixエージェントサーバIPも追記したのですがうまくいきません。
zabbix_agentd.confにも追記が必要なのでしょうか?またはzabbix_server.confのListenIPの記載方法が間違っているのでしょうか?
TNK - 投稿数: 4769
「zabbixエージェントサーバ」というのが何かわかりません。
特殊なネットワーク環境でなければ、パッケージを使用してインス
トールすると、zabbix_server.conf内のデータベースへの接続情報
を設定するだけで、Zabbixサーバーを起動しているサーバー上で、
Zabbixエージェントも起動して、Zabbixサーバー自体の監視を開始
することができるようになっています。
特定のIPアドレスを使用して稼働させるのであれば、それらがお互
いに接続できるように設定する必要があります。
ZabbixサーバーからZabbixエージェントに接続するには、Zabbix上
のホストの設定内のインターフェースに設定した情報を使用します。
これは、アイテムのタイプが「Zabbixエージェント」のものが使用
します。
zabbix_agentd.confは、デフォルトの設定のまま、ListenIPと
ListenPortはコメントアウトされたままにしておくことで、ポート
番号は10050で、IPアドレスはそのサーバーが持っているすべての
ネットワークインターフェースでZabbixサーバーからの接続を待ち
ます。
zabbix_agentd.confのListenIPとListenPortを設定したのであれば、
ZabbixサーバーからそのIPアドレスとポート番号をホストのインタ
ーフェースに設定する必要があります。
デフォルトでは、「Zabbix server」というホストには、IPアドレ
スが127.0.0.1でポート番号が10050で設定されているはずです。
zabbix_agentd.confで変更した値に合わせてください。
注意点として、127.0.0.1というIPアドレスは特殊なIPアドレスな
ので、同じサーバー上でしか使用できません。
今度は、ZabbixエージェントからZabbixサーバーに接続するための
情報としては、zabbix_agentd.conf内のServerActiveの設定を使用
します。
こちらは、アイテムのタイプが「Zabbixエージェント(アクティブ)」
のものが使用します。
デフォルトでは、
ServerActive=127.0.0.1
という設定になっていると思いますが、これは、IPアドレスとして
127.0.0.1でポート番号として10051を使用してZabbixサーバーに接
続するという意味です。
ここで指定したものが、zabbix_server.conf内のListenIPや
ListenPortの設定との組み合わせで接続できるような組み合わせで
ある必要があります。
デフォルトの設定であれば、zabbix_server.conf内の設定では、
ListenIPとListenPortの両方がコメントアウトされているはずです
ので、Zabbixサーバーとしては、Zabbixサーバーを稼働しているサ
ーバーのすべてのネットワークインターフェースのIPアドレスとポ
ート番号10051でZabbixエージェントからの接続を待つようになっ
ています。
私は、以下のような設定にする場合が多いです。
Zabbixサーバーを稼働しているサーバー上:
zabbix_server.conf
ListenIPとListenPortの両方をコメントアウトしたままにする
zabbix_agentd.conf
ServerとServerActiveはデフォルトの設定のままにする
-----
Server=127.0.0.1
ServerActive=127.0.0.1
-----
Zabbix上のホスト「Zabbix server」のエージェントのインターフェース
デフォルトの設定のまま
-----
IPアドレス: 127.0.0.1
ポート番号: 10050
-----
他の監視対象のサーバー上:
zabbix_agentd.conf
-----
Server=<Zabbixサーバーの外部ネットワークのIPアドレス>
ServerActive=<Zabbixサーバーの外部ネットワークのIPアドレス>
-----
Zabbix上のホストのエージェントのインターフェース
-----
IPアドレス: <監視対象のサーバーの外部ネットワークのIPアドレス>
ポート番号: 10050
-----
aloha0810 - 投稿数: 16
コメントありがとうございます。
「zabbixエージェントサーバ」は監視対象のサーバーのことです。
例えば以下の設定を実施すると監視対象のサーバーのアイテムのタイプが「Zabbixエージェント(アクティブ)」を
使用した監視ができるという理解でよいでしょうか?
zabbixサーバーを稼働させているサーバーのIP:xxx.xxx.xxx.105
監視対象のサーバーのIP:xxx.xxx.xxx.145
★zabbixサーバーを稼働させているサーバーの設定★
zabbix_server.conf
-----
#ListenPort=10051
#ListenIP=127.0.0.1
-----
zabbix_agentd.conf
-----
Server=127.0.0.1
ServerActive=127.0.0.1
-----
Zabbix上のホスト「Zabbix server」のエージェントのインターフェース
-----
IPアドレス: 127.0.0.1
ポート番号: 10050
-----
★監視対象のサーバーの設定★
zabbix_agentd.conf
-----
Server=xxx.xxx.xxx.105
ServerActive=xxx.xxx.xxx.105
-----
Zabbix上のホストのエージェントのインターフェース
-----
IPアドレス: xxx.xxx.xxx.145
ポート番号: 10050
-----
TNK - 投稿数: 4769
この設定でZabbixサーバーとZabbixエージェントが双方向で通信で
きるのであれば、「Zabbixエージェント」と「Zabbixエージェント
(アクティブ)」の両方のタイプでの監視が可能です。
リモートの監視対象を「Zabbixエージェント(アクティブ)」だけで
監視する際も、一部の設定が利用されないだけで、この設定で問題
なく監視できるはずです。
aloha0810 - 投稿数: 16
現在、上記の設定を行ったうえで下記のURLのグラフを試しに作ってみているのですが
zabbixサーバーが稼働しているサーバーで実施すると監視できるのに監視対象のサーバーでは監視できない状況です。
zabbixの[監視データ]-[最新データ]でzabbixサーバーが稼働しているサーバーの監視対象ファイルを更新すると
対象のアイテムの最新チェック時刻も更新されグラフも表示されますが、監視対象のサーバーの監視対象ファイルを
更新しても対象アイテムの更新チェック時刻には何も表示されず、グラフも更新されません。
https://qiita.com/kenchang100kg/items/e2b6db8a53853f4b07ae
何が原因なのでしょうか・・・
TNK - 投稿数: 4769
まずは、監視対象のZabbixエージェントのログを確認してみてくだ
さい。
ログから値を取得する以外のアイテムは無いのですか?
あるならそれらは取得できていますか?
aloha0810 - 投稿数: 16
他のアイテム作ってみます!
aloha0810 - 投稿数: 16
監視対象サーバ登録時にホスト名を間違えて登録していました(x_x;)
正常にグラフが表示されるようになりました。
ご教授ありがとうございました。