Cada chip sensor tiene su propio directorio en el árbol sysfs /sys/devices. Para encontrar todos los chips de sensores, es más fácil seguir los enlaces simbólicos del dispositivo de /sys/class/hwmon/hwmon*, donde * es un número real (0,1,2,...).
Las lecturas del sensor se encuentran en el directorio /sys/class/hwmon/hwmon*/ para dispositivos virtuales, o en el directorio /sys/class/hwmon/hwmon*/device para dispositivos no virtuales. Un archivo, llamado name, ubicado dentro de los directorios hwmon* o hwmon*/device contiene el nombre del chip, que corresponde al nombre del controlador del kernel utilizado por el chip sensor.
Sólo hay un valor de lectura del sensor por archivo. El esquema común para nombrar los archivos que contienen lecturas de sensores dentro de cualquiera de los directorios mencionados anteriormente es: <tipo><número>_<elemento>, donde
La información sobre los sensores disponibles en el equipo se puede adquirir usando herramientas sensor-detect y sensors (paquete lm-sensors: http://lm-sensors.org/). La detección de sensores ayuda a determinar qué módulos son necesarios para los sensores disponibles. Cuando se cargan los módulos, el programa sensors se puede utilizar para mostrar las lecturas de todos los chips sensores. El etiquetado de lecturas de sensores, utilizado por este programa, puede ser diferente del esquema de nomenclatura común (<tipo><número>_<elemento> ):
Este etiquetado permite al usuario determinar qué tipo de hardware se utiliza. Si no hay ni archivo <tipo><número>_label ni etiqueta dentro del archivo de configuración, el tipo de hardware puede ser determinado por el atributo de nombre (hwmon*/dispositivo/nombre). Los nombres reales de los sensores, que zabbix_agent acepta, se puede obtener ejecutando el programa sensors con parámetro -u (sensors -u).
En el programa sensor los sensores disponibles están separados por el tipo de bus (adaptador ISA, adaptador PCI, adaptador SPI, dispositivo virtual, interfaz ACPI, adaptador 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).
Las etiquetas de sensores, tal como se imprimen con el comando sensors, no siempre se pueden utilizar directamente porque el nombre de las etiquetas puede ser diferente para cada proveedor de chip sensor. Por ejemplo, la salida de sensors podría contener las siguientes líneas:
$ 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,3 V: +3,30 V (min = +2,97 V, max = +3,63 V)
+12 V: +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)De estas, solo se puede usar una etiqueta directamente:
Intentar usar otras etiquetas (como Vcore o +12 V) no funcionará.
Para averiguar el nombre real del sensor, que Zabbix puede usar para recuperar las lecturas del sensor, ejecute sensors -u. En la salida, se puede observar lo siguiente:
$ 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
...Por lo tanto, Vcore debe consultarse como in1 y +12V debe consultarse como in4. Según la especificación, estos son voltajes en los pines del chip y, en términos generales, pueden necesitar escalado.
Zabbix no solo puede recuperar lecturas de voltaje (in), sino también de corriente (curr), temperatura (temp) y velocidad del ventilador (fan).
(Las lecturas del sensor se obtienen del directorio /proc/sys/dev/sensors)
Clave de ejemplo: sensor[w83781d-i2c-0-2d,temp1]
(Las lecturas del sensor se obtienen del directorio /sys/class/hwmon)
Clave de ejemplo:
sensor[k8temp-pci-00c3,temp,max] o sensor[0000:00:18.3,temp1]
sensor[smsc47b397-isa-0880,in,avg] o sensor[smsc47b397.2176,in1]