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 Sensor

Elke sensorchip heeft zijn eigen directory in de sysfs /sys/devices boomstructuur. Om alle sensorchips te vinden, is het gemakkelijker om de apparaat-symbolische koppelingen te volgen vanuit /sys/class/hwmon/hwmon*, waar * een echt getal is (0, 1, 2, ...).

De sensoruitlezingen bevinden zich ofwel in de /sys/class/hwmon/hwmon* directory voor virtuele apparaten, of in de /sys/class/hwmon/hwmon*/device directory voor niet-virtuele apparaten. Een bestand genaamd 'name', dat zich bevindt in de hwmon* of hwmon*/device directories, bevat de naam van de chip, die overeenkomt met de naam van de kernelstuurprogramma die door de sensorchip wordt gebruikt.

Er is slechts één sensoruitleeswaarde per bestand. Het gebruikelijke schema voor het benoemen van de bestanden die sensoruitlezingen bevatten in een van de hierboven genoemde directories is: <type><number>_<item>, waar

  • type - voor sensorchips is "in" (spanning), "temp" (temperatuur), "fan" (ventilator), enzovoort,
  • item - "input" (gemeten waarde), "max" (hoge drempel), "min" (lage drempel), enzovoort,
  • number - altijd gebruikt voor elementen die meerdere keren aanwezig kunnen zijn (begint meestal vanaf 1, behalve voor spanningen die vanaf 0 beginnen). Als bestanden niet verwijzen naar een specifiek element, hebben ze een eenvoudige naam zonder nummer.

De informatie over de beschikbare sensoren op de host kan worden verkregen met behulp van de sensor-detect en sensors hulpprogramma's (lm-sensors pakket: http://lm-sensors.org/). Sensors-detect helpt bij het bepalen welke modules nodig zijn voor beschikbare sensoren. Wanneer de modules zijn geladen, kan het sensors programma worden gebruikt om de uitlezingen van alle sensorchips weer te geven. De etikettering van sensoruitlezingen, die door dit programma wordt gebruikt, kan verschillen van het gebruikelijke benamingsschema (<type><number>_<item> ):

  • als er een bestand is met de naam <type><number>_label, dan zal het label in dit bestand worden gebruikt in plaats van de <type><number><item> naam;
  • als er geen <type><number>_label bestand is, dan zoekt het programma in het /etc/sensors.conf bestand (kan ook /etc/sensors3.conf zijn, of anders) naar de naamvervanging.

Deze etikettering stelt de gebruiker in staat om te bepalen wat voor soort hardware wordt gebruikt. Als er noch een <type><number>_label bestand is, noch een label in het configuratiebestand, kan het type hardware worden bepaald aan de hand van het naamattribuut (hwmon*/device/name). De feitelijke namen van sensoren die door de zabbix_agent worden geaccepteerd, kunnen worden verkregen door het sensors programma uit te voeren met de parameter -u (sensors -u).

In het sensors programma worden de beschikbare sensoren gescheiden door het bustype (ISA-adapter, PCI-adapter, SPI-adapter, virtueel apparaat, ACPI-interface, HID-adapter).

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

Sensornamen verkrijgen

Sensor labels, zoals afgedrukt door het sensors-commando, kunnen niet altijd direct gebruikt omdat de naamgeving van labels voor elk anders kan zijn leverancier van sensorchips. De uitvoer van sensoren kan bijvoorbeeld de . bevatten volgende regels:

$ sensoren
       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)
       +12V: +13,00 V (min = +0,00 V, max = +15,94 V)
       M/B-temperatuur: +30,0°C (laag = -127,0°C, hoog = +127,0°C)

Hiervan mag slechts één label direct worden gebruikt:

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

Pogingen om andere labels te gebruiken (zoals Vcore of +12V) zullen niet werken.

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

Om de daadwerkelijke sensornaam te achterhalen, die door Zabbix kan worden gebruikt om: haal de sensormetingen op, voer sensors -u uit. In de uitvoer, de volgende kan worden waargenomen:

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

Dus Vcore moet worden opgevraagd als in1, en +12V moet worden opgevraagd als in4.1

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

Niet alleen spanning (in), maar ook stroom (curr), temperatuur (temp) en ventilatorsnelheid (ventilator) metingen kunnen worden opgehaald door Zabbix.

Compatibility

Op Linux 2.4:

(Sensormetingen worden verkregen uit de directory /proc/sys/dev/sensors)

  • apparaat - apparaatnaam (als <mode> wordt gebruikt, is het een normale) uitdrukking);
  • sensor - sensornaam (als <mode> wordt gebruikt, is het een normale) uitdrukking);
  • mode - mogelijke waarden: avg, max, min (als deze parameter is weggelaten, apparaat en sensor worden woordelijk behandeld).

Voorbeeldsleutel: sensor[w83781d-i2c-0-2d,temp1]

Voorafgaand aan Zabbix 1.8.4 werd het sensor[temp1]-formaat gebruikt.

Op Linux 2.6+:

(Sensoruitlezingen worden verkregen uit de map /sys/class/hwmon)

  • apparaat - apparaatnaam (niet-reguliere expressie). De apparaatnaam: kan de werkelijke naam van het apparaat zijn (bijv. 0000:00:18.3) of de naam verkregen met behulp van het sensorenprogramma (bijv. k8temp-pci-00c3). Het is op aan de gebruiker om te kiezen welke naam hij wil gebruiken;
  • sensor - sensornaam (niet-reguliere expressie);
  • mode - mogelijke waarden: avg, max, min (als deze parameter is weggelaten, apparaat en sensor worden woordelijk behandeld).

Voorbeeld sleutel:

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

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


  1. Volgens specificatie dit zijn spanningen op chippinnen en kunnen in het algemeen nodig zijn schalen.↩︎