Каждый сенсор получает имеет собственную папку в sysfs дереве /sys/devices. Чтобы найти все сенсоры, проще всего следовать символическим ссылкам на устройства из /sys/class/hwmon/hwmon*, где * является реальным номером (0,1,2,...).
Значения сенсоров размещаются либо в /sys/class/hwmon/hwmon*/ папке с виртуальными устройствами, либо в /sys/class/hwmon/hwmon*/device папке с не виртуальными устройствами. Файл, именуемый name, расположенный в hwmon* или hwmon*/device папках содержит имя чипа, которое соответствует имени драйвера ядра используемого чипсетом сенсора.
В одном файле присутствует только одно значение сенсора. Общая схема наименования файлов, которые содержат значения сенсоров, внутри любой папки упомянутой выше: <тип><номер>_<элемент>, где
Информация в отношении сенсоров доступна на хосте и её можно получить утилитами sensor-detect и sensors (пакет lm-sensors: http://lm-sensors.org/). Sensors-detect помогает определить, какие модули необходимы для доступных сенсоров. Когда модули загружены, можно использовать утилиту sensors, чтобы получить значения со всех сенсоров. Маркировка значений сенсоров используемая данной утилитой, может отличаться от приведенной выше схемы (<тип><номер>_<элемент>).
Данная маркировка позволяет пользователям определить, какой тип оборудования используется. Если там нет ни <тип><номер>_метка файл, ни метка в файле конфигурации, тогда тип оборудования можно определить по имени атрибута (hwmon*/device/name). Фактические имена сенсоров, которые принимает zabbix_agent, можно получить, запустив программу sensors c -u параметром (sensors -u).
В программе sensor доступные сенсоры разделены по типу шины (ISA adapter, PCI adapter, SPI adapter, Virtual device, ACPI interface, HID adapter).
(Значения сенсоров извлекаются из папки /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] или 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)
В этом случае, может быть использована только одна метка:
Попытки использовать остальные метки (такие как 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
Не только напряжение (in), но а также значения тока (curr), температуры (temp) и скорости вращения вентилятора (fan) можно получать в Zabbix.
В соответствии со спецификацией, это значения вольт на ножках чипов и, проще говоря, возможно нуждаются в масштабировании.↩︎