[comment]: # translation:outdated

[comment]: # ({7e3c6457-b33b8329})
# 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).

[comment]: # ({/7e3c6457-b33b8329})

[comment]: # ({new-eaab320d})
#### 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](https://docs.kernel.org/hwmon/sysfs-interface.html)).
**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).

[comment]: # ({/new-eaab320d})

[comment]: # ({0cb28aa9-0cb28aa9})
#### 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](https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface)
    dit zijn spanningen op chippinnen en kunnen in het algemeen nodig zijn
    schalen.

[comment]: # ({/0cb28aa9-0cb28aa9})

[comment]: # ({new-8c111a00})
#### Compatibility

[comment]: # ({/new-8c111a00})

[comment]: # ({2cac185c-61bf6279})
##### 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.

[comment]: # ({/2cac185c-61bf6279})

[comment]: # ({2e1edda6-2e1edda6})
##### 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\]

[comment]: # ({/2e1edda6-2e1edda6})
