各センサーチップは、sysfs の /sys/devices ツリー内に専用のディレクトリを持ちます。 すべてのセンサーチップを見つけるには、/sys/class/hwmon/hwmon* からデバイスのシンボリックリンクをたどる方が簡単です。ここで、* は実数 (0,1,2,...) です。
センサーの読み取り値は、仮想デバイスの場合は /sys/class/hwmon/hwmon*/ ディレクトリ、非仮想デバイスの場合は /sys/class/hwmon/hwmon*/device ディレクトリに格納されます。hwmon* または hwmon*/device ディレクトリ内にある name というファイルには、チップ名が格納されています。このチップ名は、センサーチップが使用するカーネルドライバー名に対応しています。
ファイルごとにセンサーの読み取り値は1つだけです。上記のディレクトリ内にあるセンサー読み取り値を含むファイルの一般的な命名規則は、以下のとおりです。 <type><number>_<item>
ホストで利用可能なセンサーに関する情報は、sensor-detect および sensors ツール(lm-sensors パッケージ:http://lm-sensors.org/)を使用して取得できます。Sensors-detect は、利用可能なセンサーに必要なモジュールを特定するのに役立ちます。モジュールがロードされると、sensors プログラムを使用してすべてのセンサーチップの測定値を表示できます。このプログラムで使用されるセンサー測定値のラベル付けは、一般的な命名規則 (<type><number>_<item>) とは異なる場合があります。
このラベル付けにより、ユーザーは使用されているハードウェアの種類を判別できます。<type><number>_label ファイルも設定ファイル内に label もない場合、ハードウェアの種類は名前属性 (hwmon*/device/name) によって判別できます。 zabbix_agent が受け入れるセンサーの実際の名前は、sensors プログラムを -u パラメータ付きで実行することで取得できます (sensors -u)
sensor プログラムでは、利用可能なセンサーはバスタイプ (ISA アダプタ、PCI アダプタ、SPI アダプタ、仮想デバイス、ACPI インターフェース、HID アダプタ) 別に分類されます。
Each sensor chip gets its own directory in the sysfs /sys/devices tree. To find all sensor chips, it is easier to follow the device symlinks from /sys/class/hwmon/hwmon*, where * is a real number (0,1,2,...).
The sensor readings are located either in /sys/class/hwmon/hwmon*/ directory for virtual devices, or in /sys/class/hwmon/hwmon*/device directory for non-virtual devices. A file, named name, located inside hwmon* or hwmon*/device directories contains the name of the chip, which corresponds to the name of the kernel driver used by the sensor chip.
There is only one sensor reading value per file. The common scheme for naming the files that contain sensor readings inside any of the directories mentioned above is: <type><number>_<item>, where
The information regarding sensors available on the host can be acquired using sensors-detect and sensors tools (lm-sensors package). Sensors-detect helps to determine which modules are necessary for available sensors. When modules are loaded the sensors program can be used to show the readings of all sensor chips. The labeling of sensor readings, used by this program, can be different from the common naming scheme (<type><number>_<item> ):
<type><number>_label, then the label inside this file will be used instead of <type><number><item> name;<type><number>_label file, then the program searches inside the /etc/sensors.conf (could be also /etc/sensors3.conf, or different) for the name substitution.This labeling allows user to determine what kind of hardware is used. If there is neither <type><number>_label file nor label inside the configuration file the type of hardware can be determined by the name attribute (hwmon*/device/name). The actual names of sensors, which zabbix_agent accepts, can be obtained by running sensors program with -u parameter (sensors -u).
In the sensors program the available sensors are separated by the bus type (ISA adapter, PCI adapter, SPI adapter, Virtual device, ACPI interface, HID adapter).
ラベルの名前はセンサーチップベンダーごとに異なる可能性があるため、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つだけです。
他のラベル(Vcoreや+12Vなど)を使用しようとしても機能しません。
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
...上記からVcoreはin1として、* +12Vはin4*として照会する必要があります。[^1]
Zabbixは電圧(in)だけでなく電流(curr)温度(temp)ファン速度(fan)の読み取り値も取得できます。
[^ 1]:仕様によると、これらはチップピンの電圧であり、スケーリングが必要な場合があります。
(センサーの読み取り値は/proc/sys/dev/sensorsディレクトリから取得されます)
キーの例:sensor[w83781d-i2c-0-2d,temp1]
Zabbix 1.8.4以前は sensor [temp1] 形式が使用されていました。
(センサーの読み取り値は/sys/class/hwmonディレクトリから取得されます)
キーの例:
sensor[k8temp-pci-00c3,temp,max] or sensor[0000:00:18.3,temp1]
sensor[smsc47b397-isa-0880,in,avg] or sensor[smsc47b397.2176,in1]