Solarisにおけるsystem.cpu.utilについて
はじめまして。
井筒と申します。
このたび、Solaris8(SPARC)が稼動しているサーバをzabbix1.8.3で監視することになりました。
2つのCPU(UltraSPARC-III)が搭載されたシステムですので、以下のようにCPUのidle値を取得しようとしています。
システム全体 : system.cpu.util[,idle,]
CPU1 : system.cpu.util[0,idle,]
CPU2 : system.cpu.util[1,idle,]
システム全体とCPU1はそれなりの値(95.3%など)が取得できるのですが、CPU2に関しては常に「0」となり正しい値が取得できていません。
mpstatコマンドでCPU番号を確認すると、「0」と「2」が割り当てられているので、
system.cpu.util[2,idle,]
と設定してみると、こちらは"取得不可"となり値を取得することすらできません。
Solarisでは、CPU単位のidle値を取得することができないのでしょうか。
もしくは、何らかの設定が必要となるのでしょうか。
何かご存知の方がおられましたら、ご教授頂けると幸いです。
naoto-izutsu - 投稿数: 4
井筒です。
本件、原因が分かりましたので、情報共有させて頂きます。
監視対象のSolarisは2CPUで、CPU-IDは「0」と「2」となっていて、これはサーバ出荷時に異なるCPUバスにCPUを搭載していることに起因しているようです。
zabbixでは、system.cpu.utilでCPUの情報を取得する際に、CPUが複数搭載されていれば「0」、「1」、「2」というようにIDを振っていくようで、2CPUのシステムであれば「0」と「1」が振られる仕様のようです。
今回のサーバは2CPUでCPU-IDが「0」と「2」なのですが、zabbixは「0」と「1」しか指定できないため2つ目のCPUの情報が取れない状態になります。
対応としては、物理的にサーバのCPUを差し込むバスを変更する、ということになります。
システム(CPUバスが一つしかないもの)によっては、CPU-IDが順番に割り当てられるものもあるかもしれませんが、確認できるサーバはすべて「0」と「2」になっていました。
分かりにくい文章で申し訳ないのですが、ご参考になれば幸いです。
それでは。
kodai - 投稿数: 1341
こんにちは。詳細なレポートありがとうございます。
Zabbix SIA内でも同じ問題が報告されてまして、いただいた情報が役立ちました。まだ修正は取りかかってはいませんが、じき対応されると思います。
kodai - 投稿数: 1341
1.8.6で修正されるようです。 https://support.zabbix.com/browse/ZBX-3760
naoto-izutsu - 投稿数: 4
kodaiさん
1.8.6で修正されるんですね。
agentバージョンを上げるか、検討したいと思います。
情報共有、ありがとうございました。
kodai - 投稿数: 1341
こんにちは。
1.8.6の修正が完全ではなかったようで、同じ問題の修正が1.8.7rc1でも入っていました。
https://support.zabbix.com/browse/ZBX-4043