ZabbixサーバからZabbixエージェントに対してsystem.cpu.load値を取得する事が出来ない状態でした。ログ確認やzabbix_getコマンドでの調査などを行い原因が分かったので、その作業結果を記録しておきます。
問題事項
Zabbixエージェントで監視をしているLinuxサーバがあり、テンプレートは「Template OS Linux(Template App Zabbix Agent)」を使っています。
そのLinuxサーバのItems一覧で、以下の項目のステータスが「Not supported」になっていました。
- Processor load (1 min average per core) system.cpu.load[percpu,avg1]
- Processor load (5 min average per core) system.cpu.load[percpu,avg5]
- Processor load (15 min average per core) system.cpu.load[percpu,avg15]
ちなみに、Zabbix Serverは「2.0.5」、Zabbix Agentは「1.8.16」を使っています。
ログ調査
Zabbix Agent側でログファイル「zabbix_agentd.log」を確認しましたが、特に問題はありません。
Zabbix Server側でログファイル「zabbix_server.log」を確認すると、以下のログが出力されていました。
item [CheckSite:system.cpu.load[percpu,avg15]] became not supported: Not supported by Zabbix Agent item [CheckSite:system.cpu.load[percpu,avg1]] became not supported: Not supported by Zabbix Agent item [CheckSite:system.cpu.load[percpu,avg5]] became not supported: Not supported by Zabbix Agent
Zabbix Agentのバージョンが異なり、その結果として単純に「Not supported」なのかもしれません。
zabbix_get コマンドでの確認
zabbix_get コマンドでも確認してみました。
# zabbix_get -s (Zabbix Agent) -k agent.version 1.8.16 # zabbix_get -s (Zabbix Agent) -k system.cpu.load[percpu,avg1] ZBX_NOTSUPPORTED # zabbix_get -s (Zabbix Agent) -k system.cpu.load[percpu,avg5] ZBX_NOTSUPPORTED # zabbix_get -s (Zabbix Agent) -k system.cpu.load[percpu,avg15] ZBX_NOTSUPPORTED # zabbix_get -s (Zabbix Agent) -k system.cpu ZBX_NOTSUPPORTED # zabbix_get -s (Zabbix Agent) -k system.cpu.load 0.310000 #
該当項目では「ZBX_NOTSUPPORTED」が表示されたので、バージョンの違いから来る key の設定違いなのかもしれません。単純に system.cpu.load を指定したら、それらしきデータが取れました。
原因判明
system.cpu.load についてググってみたところ、Zabbixサイト「Zabbix agent」に system.cpu.load に関する記載がありました。
それによると、system.cpu.load[<cpu>,<mode>] の<cpu> で、percpuパラメータ をサポートしているのは、Zabbix 2.0.0 からとの事でした。今回のZabbix Agent のバージョンは「1.8.16」でしたので納得できました。
<cpu>で試しにデフォルトのall(もしくは空文字)を指定して zabbix_get コマンドを実行すると、値が取れました。
# zabbix_get -s (Zabbix Agent) -k system.cpu.load[,avg1] 0.030000 # zabbix_get -s (Zabbix Agent) -k system.cpu.load[,avg5] 0.120000 # zabbix_get -s (Zabbix Agent) -k system.cpu.load[,avg15] 0.170000 # zabbix_get -s (Zabbix Agent) -k system.cpu.load[all,avg1] 0.020000 # zabbix_get -s (Zabbix Agent) -k system.cpu.load[all,avg5] 0.110000 # zabbix_get -s (Zabbix Agent) -k system.cpu.load[all,avg15] 0.170000 #
ちなみに、の説明は以下でした。
avg1 (one-minute average, default), avg5 (5-minute average), avg15 (an average within 15 minutes)
残課題
上記載のとおり、Zabbix Server 2.0.5 の「Template OS Linux(Template App Zabbix Agent)」テンプレートに付属する system.cpu.load では、Zabbix Agent 1.8.16 にてsystem.cpu.load の「percpu」modeに対応していない為、テンプレートをそのまま使う事は出来ないようです。
「percpu」modeを使わない方法を別途検討する事にします。