unreachable for 5 minutesの発生理由
いつもお世話になっております。
Zabbix Proxyを使った階層構造での複数サイト監視を行っています。
(バージョン3.0.13、zabbix proxyはactive modeで稼働、TLS暗号化を実施)
Zabbix Serverにて一日に数回、あるサイトで以下のイベントが発生します。
Zabbix agent on xxxxxxxx is unreachable for 5 minutes
(xxxxxxxxは同一サイトの複数ホスト、発生サイトに傾向なし)
ほぼ同じ時間に該当サイトのzabbix proxyの以下の値が100%になってしまいます。
Zabbix busy data sender processes
数十秒後には正常のステータスに戻ります。
該当サイトの全てのホストが正常になった後で以下のイベントが発生します。
Zabbix data sender processes more than 75% busy
これは、5分以上該当サイトからのホストステータスの通知が無かったため、Zabbix Server側で
イベントを発生させた。その数十秒後にホストステータスの通知があったため、正常に戻った。
zabbix proxy -> zabbix server間で何らかの原因で通信ができなかったため、
リトライによりsender processが100%になったと理解すればよろしいでしょうか。
TNK - 投稿数: 4769
ネットワークの不通状態が発生したのであれば、ネットワークの復
旧後、Zabbixプロキシ上に溜まっていたZabbixサーバーに送らなけ
ればならないアイテムデータが、連続してZabbixサーバーに送られ
たために、sender processのbusy率が上がったのだと思われます。
どのくらいの規模の監視をされているのかわかりませんが、頻繁に
プロセスのbusy率が高くなるようであれば、そのプロセスの役割に
関わる処理遅延が発生している可能性があります。
各プロセスのbusy率を確認し、必要に応じてプロセス数を増加させ
るなどの対応が必要かもしれません。
fripper - 投稿数: 495
Proxy→Server方向のSender process数(Proxy側)は、ご利用の3.0.xおよび 最新の3.4.xでも
設定では変更できないようです
発生している症状からすると、YSoe09様の仰るとおり、
Proxy→Server方向の収集データ報告処理がモタついた結果として
agentホストに対するunreachableと、Proxyに対するsender process busy が
検知されてしまっているのだと思います
・Server側のStartTrappersは十分な数ですか?
Proxyの運用数に対して、Server側の受け口が不足している可能性
Server側で「zabbix[process,trapper,avg,busy]」あたりを見れば良いかもしれません
・Proxy 側の DataSenderFrequency が長すぎませんか?
普段の通信回数を減らすために、180秒毎にまとめて報告‥といったような設定としているなら
短くしてみることで、通信1度あたりの送信量を減らせることと、リトライ頻度の向上が望める
可能性があります
平常時には問題なく稼働している、ということから見ても、StartTrapperが不足していて
受信プロセスがデータを受けきれておらず、Proxy側に滞留が発生している状態となっていて
Server側の受信ポートは先勝ちなので、たまたま、同じProxyが「Serverへ接続できず、収集データ報告できなかった状態」が
長く続いてしまい、agent のunreachableが発生、
延々とリトライの末、Server側の受信ポート空きを掴み取ることができたものの
溜まった大量データの送信のために、Proxy側の sender busyが検知‥といった流れなのではと疑います
他にも、以下パラメータを見直すと効果があるかもしれません
・Server側のStartDBSyncers・HistoryCacheSize・HistoryTextCacheSizeの設定値は十分ですか?
Proxyから届いたデータが、受信バッファの不足によって受信しきれていない or
DB書込プロセスの不足等によってDBへ保存しきれていない
Server側で「zabbix[process,history syncer,avg,busy]」
「zabbix[wcache,text,pfree]」「zabbix[wcache,history,pfree]」
あたりを見れば良いかもしれません
YSoe09 - 投稿数: 21
回答ありがとうございます。
>Server側で「zabbix[process,trapper,avg,busy]」あたりを見れば良いかもしれません
->該当時間帯の平均は1.5%でした。
>Proxy 側の DataSenderFrequency が長すぎませんか?
->デフォルトのままですので、1秒だと思います。
>Server側で「zabbix[process,history syncer,avg,busy]」
「zabbix[wcache,text,pfree]」「zabbix[wcache,history,pfree]」
あたりを見れば良いかもしれません
->特に異常はありません。
Zabbix ServerのTrapper不足が原因ではなさそうです。
一つ確認なのですが、agent.pingのunreachableを報告しているのは、zabbix proxyなのか、
zabbix serverなのかどちらかなのかがわかれば、切り分けできそうです。