This is a translation of the original English documentation page. Help us make it better.

6 Sensor

Cada xip de sensor té el seu propi directori a l'arbre sysfs /sys/devices. Per trobar tots els xips del sensor, és més fàcil seguir els enllaços simbòlics del dispositiu des de /sys/class/hwmon/hwmon*, on * és un nombre real (0,1,2,...).

Les lectures del sensor es troben al directori /sys/class/hwmon/hwmon*/ per a dispositius virtuals o al directori /sys/class/hwmon/hwmon*/device per a dispositius no virtuals. Un fitxer, anomenat nom, situat dins dels directoris hwmon* o hwmon*/device conté el nom del xip, que correspon al nom del controlador del nucli emprat pel xip del sensor.

Només hi ha un valor de lectura del sensor per fitxer. L'esquema comú per anomenar els fitxers que contenen lectures del sensor dins de qualsevol dels directoris esmentats anteriorment és: <tipus><nombre>_<item>, on

  • tipus - per als xips de sensor és "in" (tensió), "temp" (temperatura), "ventilador" (ventilador), etc.,
  • element - "entrada" (valor mesurat), "màx" (llindar alt), "mínim" (llindar baix), etc.,
  • nombre - sempre s'empra per als elements que poden ser presents més d'una vegada (generalment comença des de l'1, excepte les tensions que comencen des de 0). Si els fitxers no fan referència a un element específic, tenen un nom senzill sense nombre.

La informació sobre els sensors disponibles a l'equip es pot obtindre mitjançant les eines sensor-detect i sensors (paquet lm-sensors: http://lm-sensors.org/). Sensors-detect ajuda a determinar quins mòduls són necessaris per als sensors disponibles. Quan es carreguen els mòduls, el programa sensors es pot emprar per mostrar les lectures de tots els xips del sensor. L'etiquetatge de les lectures del sensor, emprat per aquest programa, pot ser diferent de l'esquema de noms comú (<tipus><nombre>_<element>):

  • si hi ha un fitxer anomenat <tipus><nombre>_label, s'emprarà l'etiqueta dins d'aquest fitxer en lloc de <tipus><nombre><element> nom;
  • si no hi ha cap fitxer <tipus><nombre>_label, el programa cerca dins del fitxer /etc/sensors.conf (també podria ser /etc/sensors3.conf, o diferent) per la substitució de nom.

Aquest etiquetatge permet a l'usuari determinar quin tipus de maquinari s'empra. Si no hi ha ni <tipus><nombre>_label ni etiqueta dins del fitxer de configuració, el tipus de maquinari es pot determinar mitjançant l'atribut name (hwmon*/device/name). Els noms reals dels sensors, que accepta zabbix_agent, es poden obtenir executant el programa sensors amb el paràmetre -u (sensors -u).

Al programa sensor, els sensors disponibles estan separats pel tipus de bus (adaptador ISA, adaptador PCI, adaptador SPI, dispositiu virtual, interfície ACPI, adaptador HID).

Overview

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

  • type - for sensor chips is "in" (voltage), "temp" (temperature), "fan" (fan), etc.
  • item - "input" (measured value), "max" (high threshold), "min" (low threshold), etc.
  • number - always used for elements that can be present more than once (usually starts from 1, except for voltages which start from 0). If files do not refer to a specific element they have a simple name with no number.

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> ):

  • if there is a file called <type><number>_label, then the label inside this file will be used instead of <type><number><item> name;
  • if there is no <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).

Obtindre els noms dels sensors

Les etiquetes del sensor, impreses per la comanda sensors, mai es poden emprar directament, doncs el seu nom pot ésser diferent per cada proveïdor del xip del sensor. Per exemple, la sortida de sensors pot contindre les següents línies:

$ 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)

A banda d'aquestes, una sola etiqueta es pot emprar directament:

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

Provant d'emprar altres etiquetes (com ara Vcore o +12V) no funcionarà pas.

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

Per sapiguer el nom real del sensor, que es pot emprar per Zabbix per recuperar les lectures del sensor, executeu sensors -u. A la sortida, veureu:

$ 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
       ...

Donsc Vcore ha d'ésser consultat com a in1, i +12V haurà d'ésser consultat com a in4. 1 Segons les especificacions, aquests són els voltatges dels pins dels xips i, en general, pot caldre escalar.

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

No només el voltatge (in), també la corrent (curr), la temperatura (temp) i la velocitat del ventilador (fan) es poden recuperar per Zabbix.

Compatibility

Sota Linux 2.4 :

(Les lectures dels sensors s'obtenen del directori /proc/sys/dev/sensors)

  • device - nom del perifèric (si s'empra <mode> , és una expressió regular);
  • sensor - nom del sensor (si s'empra <mode> , és una expressió regular);
  • mode - valors possibles : avg, max, min (si s'omet aquest paràmetre, el perifèric i el sensor es tracten textualment).

Exemple de clau: sensor[w83781d-i2c-0-2d,temp1]

Sota Linux 2.6+ :

(Les lectures dels sensors s'obtenen del directori /sys/class/hwmon)

  • device - nom del perifèric (expressió no regular). El nom del perifèric pot ésser el nom real (ex. 0000:00:18.3) o el nom adquirit emprant el programa de sensors (ex. k8temp-pci-00c3). L'usuari pot decidir el nom a emprar;
  • sensor - nom del sensor (expressió no regular);
  • mode - valors possibles : avg, max, min (si el paràmetre s'omet, el perifèric i el sensor es tracten textualment).

Exemples de claus :

sensor[k8temp-pci-00c3,temp, max] ou sensor[0000:00:18.3,temp1]

sensor[smsc47b397-isa-0880,in, avg] ou sensor[smsc47b397.2176,in1]


  1. Segons les especificacions aquests són els voltatges dels pins dels xips i poden generalment necessitar un escalat.↩︎