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 の写真

井筒です。

本件、原因が分かりましたので、情報共有させて頂きます。

監視対象の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 の写真

こんにちは。詳細なレポートありがとうございます。

Zabbix SIA内でも同じ問題が報告されてまして、いただいた情報が役立ちました。まだ修正は取りかかってはいませんが、じき対応されると思います。

ユーザー kodai の写真

1.8.6で修正されるようです。 https://support.zabbix.com/browse/ZBX-3760

ユーザー naoto-izutsu の写真

kodaiさん

1.8.6で修正されるんですね。
agentバージョンを上げるか、検討したいと思います。

情報共有、ありがとうございました。

ユーザー kodai の写真

こんにちは。

1.8.6の修正が完全ではなかったようで、同じ問題の修正が1.8.7rc1でも入っていました。
https://support.zabbix.com/browse/ZBX-4043