8 Sensor

Elke sensorchip krijgt zijn eigen directory in de boomstructuur sysfs /sys/devices. Om alle sensorchips te vinden, is het gemakkelijker om de symbolische links van het apparaat te volgen uit /sys/class/hwmon/hwmon*, waarbij * een reëel getal is (0,1,2,...).

De sensormetingen bevinden zich in /sys/class/hwmon/hwmon*/ directory voor virtuele apparaten, of in /sys/class/hwmon/hwmon*/device directory voor niet-virtuele apparaten. Een bestand, genaamd naam, bevindt zich binnenin hwmon* of hwmon*/device directory's bevat de naam van de chip, wat overeenkomt met de naam van het kernel stuurprogramma dat door de sensor wordt gebruikt chippen.

Er is slechts één sensor uitlees waarde per bestand. Het gemeenschappelijke schema voor het benoemen van de bestanden die sensor metingen bevatten in een van de bovengenoemde mappen is: <type><nummer>_<item>, waarbij

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

De informatie over sensoren die beschikbaar zijn op de host kan worden verkregen met behulp van sensor-detect en sensors tools (lm-sensors pakket: http://lm-sensors.org/). Sensors-detect helpt bepalen welke modules zijn nodig voor beschikbare sensoren. Wanneer modules zijn geladen, wordt de sensoren programma kan worden gebruikt om de meetwaarden van alle sensoren weer te geven chips. Het labelen van sensormetingen, gebruikt door dit programma, kan verschillend van het gebruikelijke naamgevingsschema (<type><nummer>_<item> ):

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

Met deze labeling kan de gebruiker bepalen welk type hardware wordt gebruikt. Als er zit geen <type><nummer>_label bestand of label in het configuratiebestand het type hardware kan worden bepaald door de naamkenmerk (hwmon*/apparaat/naam). De werkelijke namen van sensoren, die zabbix_agent accepteert, kan worden verkregen door het programma sensors uit te voeren met parameter -u (sensoren -u).

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

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]

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.


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