zabbix_agentd.log のメッセージについて
お世話になります。
zabbix-agent-1.8.10-1.el5.JP.x86_64 を利用させていただいております。
zabbix_agentd.logを確認したところ、下記のようなメッセージが出力されており、
正常に監視が行われていないようでした。
2339:20121129:122833.862 Buffer is full, can't store persistent value.
2339:20121129:123312.580 Buffer is full, can't store persistent value.
2339:20121129:130243.149 Buffer is full, can't store persistent value.
2339:20121129:130723.911 Buffer is full, can't store persistent value.
2339:20121129:131314.701 Buffer is full, can't store persistent value.
本メッセージが意味するところと対応策についてご教授頂ければと存じます。
お手数をおかけ致します、よろしくお願い致します。
TNK - 投稿数: 4720
恐らく、ZabbixエージェントからZabbixサーバに監視データを送信
できていないのではないでしょうか?
Zabbixエージェントは、アイテムのタイプが「Zabbixエージェント
(アクティブ)」のアイテムに関して、Zabbixサーバに送信しようと
して送信できなかった場合に、ある程度バッファリングできる機能
を持っています。
サイズに限りがありますので、Zabbixサーバ側に送信できない期間
が長いとバッファがあふれて記載いただいたようなログが出力され
るようです。
確認ポイントとしては、Zabbixエージェントを動かしているサーバ
からZabbixサーバを動かしているサーバに、デフォルトならポート
番号10051で接続できるようになっていますか?
zabbix_agentd.conf内のSeverの値に、Zabbixサーバを稼動させて
いるサーバのIPアドレスは指定されていますか?
アイテムとして、ログ監視などで利用する「Zabbixエージェント(
アクティブ)」というタイプのアイテムを利用している場合は、
ZabbixサーバからZabbixエージェントへの接続だけではなく、逆方
向の通信も可能となるような設定が必要です。
ご確認ください。
nobuling - 投稿数: 16
お世話になります。
回答ありがとうございました。
10051ポートでの通信も可能で、zabbix_agentd.conf内のサーバにもIPアドレスが定義されており、ping疎通が可能なことを確認しました。
# 以前はこの環境で動作していました。
ただ、
>Zabbixエージェントは、アイテムのタイプが「Zabbixエージェント
>(アクティブ)」のアイテムに関して、Zabbixサーバに送信しようと
>して送信できなかった場合に、ある程度バッファリングできる機能
>を持っています。
諸事情により、zabbixサーバを長期間停止させており、再開後に本現象が発生していることから
上記指摘いただいたように各クライアントのzabbixエージェントのバッファがパンクしてしまったということのような気がします。
この場合、バッファを強制的にクリアするような方法はとれるものでしょうか。
よろしくお願い致します。
nobuling - 投稿数: 16
お世話になります。
長文になって申し訳ありませんが、いろいろと確認した結果です。
(zabbix_server:192.168.20.73、zabix_agent:192.168.20.72 としています)
1.zabbix_serverからクライアントに対してtelnetした結果
---------------------------------------
# telnet 192.168.20.72 10050
Trying 192.168.20.72...
Connected to 192.168.20.72.
Escape character is '^]'.
Connection closed by foreign host.
# telnet 192.168.20.72 10051
Trying 192.168.20.72...
telnet: connect to address 192.168.22.72: Connection refused
telnet: Unable to connect to remote host: Connection refused
#
----------------------------------------
2.zabbix_server自身からzabbix_getした結果
# zabbix_get -s 192.168.20.73 -k "agent.ping"
zabbix_get [6951]: Get value error: *** Cannot connect to [[192.168.20.73]:10050]: [111] Connection refused
※zabbix_agentからzabbix_serverに対してzabbix_getした結果も同様でした。
----------------------------------------
3.zabbix_agentのDebug_Levelを4にして再起動した結果(抜粋)
28521:20121130:210802.655 Processing request.
28521:20121130:210802.655 Requested [system.cpu.util[,iowait,avg1]]
28521:20121130:210802.655 Sending back [0.210271]
28524:20121130:210803.356 In send_buffer() host:'192.168.20.73' port:10051 values:0/100
28524:20121130:210803.357 End of send_buffer():SUCCEED
28524:20121130:210803.358 Sleeping for 1 second(s)
28520:20121130:210803.457 In update_cpustats()
28520:20121130:210803.457 End of update_cpustats()
28523:20121130:210803.599 Processing request.
28523:20121130:210803.599 Requested [vfs.fs.size[/var,used]]
28523:20121130:210803.599 Sending back [19764875264]
28524:20121130:210804.358 In send_buffer() host:'192.168.20.73' port:10051 values:0/100
28524:20121130:210804.359 End of send_buffer():SUCCEED
28524:20121130:210804.359 Sleeping for 1 second(s)
28520:20121130:210804.458 In update_cpustats()
28520:20121130:210804.458 End of update_cpustats()
28522:20121130:210804.639 Processing request.
28522:20121130:210804.639 Requested [vfs.fs.inode[/usr,pfree]]
28522:20121130:210804.639 Sending back [80.148010]
28524:20121130:210805.359 In send_buffer() host:'192.168.20.73' port:10051 values:0/100
28524:20121130:210805.359 End of send_buffer():SUCCEED
28524:20121130:210805.359 Sleeping for 1 second(s)
28520:20121130:210805.458 In update_cpustats()
28520:20121130:210805.458 End of update_cpustats()
----------------------------------------
4.zabbix_serverからzabbix_agentに対してtelnet(10050/10051)した結果
# telnet 192.168.20.72 10050
Trying 192.168.20.72...
Connected to SERVER (192.168.20.72).
Escape character is '^]'.
Connection closed by foreign host.
# telnet 192.168.20.72 10051
Trying 192.168.20.72...
telnet: connect to address 192.168.20.72: Connection refused
telnet: Unable to connect to remote host: Connection refused
----------------------------------------
5.zabbix_server.logに以下のメッセージが出力されていました
5777:20121130:205716.289 History text buffer is full. Sleeping for 1 second.
5781:20121130:205716.332 History text buffer is full. Sleeping for 1 second.
5775:20121130:205716.336 History text buffer is full. Sleeping for 1 second.
5767:20121130:205716.512 History text buffer is full. Sleeping for 1 second.
5771:20121130:205716.619 History text buffer is full. Sleeping for 1 second.
----------------------------------------
ここから推測される問題がわかりますでしょうか。
お手数をおかけ致します、よろしくお願い致します。
TNK - 投稿数: 4720
ZabbixサーバからZabbixエージェントへの接続は、デフォルトであ
ればポート番号10050を利用しますので、10050で通信できれば、
10051は使いませんので「Connection refused」でも問題ありません。
逆方向のZabbixエージェントからZabbixサーバへの接続は、ポート
番号10051で接続できることが必要です。
またzabbix_server自身からzabbix_getした結果Connection refused
であったとのことですが、Zabbixサーバ側でもzabbix_agentdを起動
されていますか?
Zabbixサーバ(192.168.20.73)上でnetstat -naなどを利用して、IP
アドレス「192.168.20.73」ポート番号「10050」でLISTEN状態にあ
るかを確認してみてください。
また、Zabbixサーバ(192.168.20.73)上で
# zabbix_get -s 192.168.20.72 -k agent.ping
を実行して「1」が表示されればZabbixエージェント(192.168.20.72)
から値を取得することはできる状態のはずです。
最後に、zabbix_server.logに
が出力されるということは、zabbix_serverのDBキャッシュが一杯
になってしまっている可能性が考えられるので、もしかしたらDBへ
のデータの書き込みが間に合っていないのかもしれません。
DBサーバを動かしているサーバの負荷状況はいかがでしょうか?
負荷が高いようであれば、監視対象、監視項目を減らしたり、監視
間隔を伸ばすなどして負荷を下げるようにしてみてください。
nobuling - 投稿数: 16
お世話になります。
回答ありがとうございます。
# zabbix_get -s 192.168.20.72 -k agent.ping
を実行した結果、「1」が帰ってきました。
なので、通信は正常にできていると判断してよさそうです。
監視サーバの負荷状態ですが、topコマンドで確認してみてもCPU/Memoryともに負荷は高くなさそうでした。
他に負荷状況を確認する項目にはどのようなものがありますか?
確認してみようと思います。
以上、よろしくお願い致します。
nobuling - 投稿数: 16
お世話になります。
zabbixサーバ側のログ(DebugLevel=4)で気になるメッセージが出力されていました。
11039:20121205:111037.510 [Z3005] query failed: [1033] Incorrect information in file: './zabbix/autoreg_host.frm' [select autoreg_hostid from autoreg_host where proxy_hostid=0 and host='HOSTNAME' and autoreg_hostid between 000000000000000 and 099999999999999]
11039:20121205:111037.510 query [select autoreg_hostid from autoreg_host where proxy_hostid=0 and host='HOSTNAME' and autoreg_hostid between 000000000000000 and 099999999999999] failed, setting transaction as failed
11039:20121205:111037.510 ignoring query [txnlev:1] [insert into autoreg_host (autoreg_hostid,proxy_hostid,host) values (95,0,'HOSTNAME')] within failed transaction
11039:20121205:111037.510 Sending list of active checks to [192.168.20.72] failed: host [HOSTNAME] not found
"info":"host [HOSTNAME] not found"}]
前のコメントにもある通り、zabbix_get -s 192.168.20.72 -k agent.ping では「1」が帰ってきます。
が、メッセージを見てもエージェント(サーバ?)との通信ができていない(というより見えていない?)ように見えますが、
ここから何かわかりますでしょうか。
以上、お手数をおかけ致します、よろしくお願い致します。
TNK - 投稿数: 4720
エージェントとの通信ではなく、データベースへのアクセスの部分で
問題が発生している可能性があります。
利用されているデータベースのクライアントコマンド(例:mysqlなど)で
データベースにアクセスして値が取得できる状態になっていますか?
データベースに問題が無いようであれば、zabbix_serverプロセスを
一度再起動してみてはいかがでしょうか?
KAZ - 投稿数: 1085
nobulingさん、TNKさん
横から失礼します。
■zabbixエージェントの設定ファイルで下記の項目何を設定していますか?
Hostname= ← ZABBIXエージェントを動作させるホスト名
ListenIP= ← ListenするIPアドレス(192.168.20.72 ですか?127.0.0.1ですか?)
nobuling - 投稿数: 16
KAZさん
お世話になります。
コメントありがとうございます。
対象のzabbixエージェントで設定されている項目は
Hostname : zabbixエージェントが動作しているホスト名
ListenIP : 0.0.0.0
となっていました。
あと、参考ですが、今回問題になっているログ監視の設定情報は下記のとおりです。
アイテム
タイプ : zabbixエージェント(アクティブ)
キー : log[/var/log/pgpool-II-90/pgpool.log]
データ型 : ログ
更新間隔 : 60秒
ヒストリ : 90
トリガー
条件式 : regexp(starting degeneration. shutdown host.*.hoge.ne.jp)}=1
検出させたい文字列
Nov 28 15:57:20 hostname pgpool: LOG: pid 12157: starting degeneration. shutdown host hostname.hoge.ne.jp(5432)
よろしくお願い致します。
TNK - 投稿数: 4720
申し訳ありませんが、現在の質問内容は、
・zabbix_agentd.logにエラーメッセージがでている
・ログの監視ができない
のどちらなのでしょうか?
あと、再度確認させて頂きますが、Zabbixエージェントを稼動させ
ているサーバ側からZabbixサーバを稼動させているサーバに対して、
ポート番号10051で接続可能なのですね?
もう一つ、ログの監視に関してですが、記載頂いたアイテムの値が
取得できないというご質問なのですか?
それとも値は取得できていてトリガーが機能しないというご質問な
のですか?
ログのアイテムが取得できないということであれば、
1.Zabbixエージェント側からZabbixサーバ側にポート番号10051
で接続可能であること
2.Webフロントエンドで設定したホストの「名前」と監視対象の
zabbix_agentd.confのHostnameが大文字小文字を含めて一致
をまずは確認してみてください。
nobuling - 投稿数: 16
>TNKさん
お世話になります。
質問がまとまってなくて申し訳ないです。
解決したい問題は、「ログ監視で検知しない。」です。
# 検知させたいログを対象のログファイルにecho >> ログファイル)で書き込んでも
# イベントに上がってこず、警報メールも飛ばない
zabbix_agentd.logのエラーメッセージは上記問題を調べていく中で見つけたものです。
■zabbixエージェントを稼働させているサーバからzabbixサーバを稼働視させているサーバに対して、ポート10051での接続は可能でした。
[zabbixサーバ]# netstat -nap |grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 22169/zabbix_server
■ZabbixのWeb設定画面における「ホストの設定」で明記されている名前と、対象のエージェント稼働サーバにおけるzabbix_agentd.confに記載のHostnameも
一致していました。(大文字小文字含めて)
以上、よろしくお願い致します。
TNK - 投稿数: 4720
トリガーでの判断の前に、最新データでログの情報がZabbixサーバ側で
受信できているかをまずご確認ください。
nobuling - 投稿数: 16
>TNKさん
お世話になります。
最新データでログの情報を確認しましたが、
12/4 20:13:21 を最後に直近分がありませんでした。
zabbixサーバ、エージェントとも今朝再起動をかけていますが、直近分データが上がってきていないようです。
よろしくお願い致します。