This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

7 センサー

各センサーチップは、sysfs /sys/devicesツリー内に自身のディレクトリを取得します。すべてのセンサーチップを見つけるには、 /sys/class/hwmon/hwmon(*は実数(0、1、2、…))からデバイスのシンボリックリンクを辿る方が楽です。

センサー読み取り値の場所は、仮想デバイスの場合/sys/class/hwmon/hwmon*/ディレクトリ内、非仮想デバイスの場合/sys/class/hwmon/hwmon*/deviceディレクトリ内です。hwmon*またはhwmon*/device ディレクトリ内のファイルの呼び名はチップの名前を含んでいます。チップの名前は、センサーチップが使用するカーネルドライバの名前と一致します。

センサーの読み取り値は、ファイルごとに1つのみです。前述のディレクトリ内にセンサー読み取り値を含むファイルに共通のファイル名の命名スキームは<type><number>_<item>となっています。

  • type - センサーチップの場合、「in」(電圧)、「temp」(温度)、「fan」(ファン)などです。
  • item - 「input」(測定値)、「max」(高い方のしきい値)、「min」(低い方のしきい値)などです。
  • number - 2つ以上存在する要素に対して必ず使用されます(通常は1から始まりますが、電圧の場合0から始まります)。ファイルは、特定の要素を参照していない場合、数字を含まない簡単な名前が付きます。

ホスト上で使用できるセンサーに関する情報は、sensor-detectsensors両ツール(lm-センサーパッケージ:http://lm-sensors.org/)を使用すれば取得できますSensors-detectは、使用できるセンサーに必要なモジュールを見極めるのに役立ちます。モジュールが搭載されれば、sensorsプログラムを使用することで、すべてのセンサーチップの読み取り値を表示できます。sensorsプログラムで使用される、センサー読み取り値のラベリングは、一般の命名スキーム(<type><number>_<item>)と異なっても構いません。

  • <type><number>_labelというファイルが存在する場合、<type><number><item>名の代わりに、このファイル内のラベルが使用されます。
  • <type><number>_labelファイルが存在しない場合、プログラムは/etc/sensors.conf(/etc/sensors3.confでもそれ以外でも可)内で名前に置き換わるものを探します。

ユーザーは、このラベリングを基に、どのような種類のハードウェアが使用されているかを見極めることができます。<type><number>_labelファイルが存在せず、設定ファイル内にラベルも存在しない場合、name属性(hwmon*/device/name)からハードウェアのタイプを見極めることができます。zabbix_agentが受け付けるセンサーの実際の名前は、-uパラメータを指定してsensorsプログラム(sensors -u)を実行することで取得できます。

sensorプログラムで使用できるセンサーは、バスのタイプ(ISAアダプタ、PCIアダプタ、SPIアダプタ、仮想デバイス、ACPIインターフェース、HIDアダプタ)によって分かれます。

Linux 2.4上では:

(センサー読み取り値は、/proc/sys/dev/sensorsディレクトリから取得されます)

  • device - デバイス名(<mode>が使用される場合は正規表現)
  • sensor - センサー名(<mode>が使用される場合は正規表現)
  • mode - 可能な値:avg、max、min(このパラメータが省略された場合、デバイスやセンサーはそのまま扱われます)

キーの例:sensor[w83781d-i2c-0-2d,temp1]

Zabbix 1.8.4以前では、sensor[temp1] の形式が使用されました。

Linux 2.6+上では:

(センサー読み取り値は、/sys/class/hwmonディレクトリから取得されます)

  • device - デバイス名(非正規表現)デバイス名は、デバイスの実際の名前(例:0000:00:18.3)またはsensorsプログラムで取得される名前(例:k8temp-pci-00c3)とすることができます。何れの名前を使用するかはユーザーしだいです;
  • sensor - センサー名(非正規表現)
  • mode - 可能な値:avg、max、min(このパラメータが省略された場合、デバイスやセンサーはそのまま扱われます)

キーの例:

sensor[k8temp-pci-00c3,temp, max] または sensor[0000:00:18.3,temp1]

sensor[smsc47b397-isa-0880,in, avg] または sensor[smsc47b397.2176,in1]

センサー名の取得

センサーのラベルは、sensorsコマンドで表示されますが、必ずしも直接使用できるとは限りません。なぜなら、センサーチップのベンダーごとにラベルの命名方法が異なるためです。例えば、sensors出力は、次の行を含みます:

$ sensors
       in0:         +2.24 V  (min =  +0.00 V, max =  +3.32 V) 
       Vcore:       +1.15 V  (min =  +0.00 V, max =  +2.99 V) 
       +3.3V:       +3.30 V  (min =  +2.97 V, max =  +3.63 V) 
       +12V:       +13.00 V  (min =  +0.00 V, max = +15.94 V)
       M/B Temp:    +30.0°C  (low  = -127.0°C, high = +127.0°C)

これらの中、ただ1つのラベルだけが直接使用できます:

$ zabbix_get -s 127.0.0.1 -k sensor[lm85-i2c-0-2e,in0]
       2.240000

それ以外のラベル(Vcore+12Vなど)を使おうとしても機能しません。

$ zabbix_get -s 127.0.0.1 -k sensor[lm85-i2c-0-2e,Vcore]
       ZBX_NOTSUPPORTED

Zabbixがセンサー読み取り値を検索する際に使用できる実際のセンサー名を見つけ出すには、sensors -uを実行します。出力において、以下が確認できます:

$ sensors -u
       ...
       Vcore:
         in1_input: 1.15
         in1_min: 0.00
         in1_max: 2.99
         in1_alarm: 0.00
       ...    
       +12V:
         in4_input: 13.00
         in4_min: 0.00
         in4_max: 15.94
         in4_alarm: 0.00
       ...

ここで、Vcorein1+12Vin4として問い合わせる必要があります。

$ zabbix_get -s 127.0.0.1 -k sensor[lm85-i2c-0-2e,in1]
       1.301000

電圧(in)に留まらず、電流(curr)、温度(temp)、ファンの速度(fan)の各読み取り値をZabbixで検索できます。


本ページは2014/08/05時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は、英語版のZabbix2.2マニュアルを参照してください。