[comment]: # translation:outdated

[comment]: # ({1035fd30-b33b8329})
# 6 Sensor

[comment]: # ({/1035fd30-b33b8329})

[comment]: # ({752b9468-eaab320d})
#### Übersicht

Jeder Sensorchip erhält sein eigenes Verzeichnis im sysfs-Baum `/sys/devices`.
Um alle Sensorchips zu finden, ist es einfacher, den Geräte-Symlinks aus `/sys/class/hwmon/hwmon*` zu folgen, wobei `*` eine reelle Zahl ist (0,1,2,...).

Die Sensorwerte befinden sich entweder im Verzeichnis `/sys/class/hwmon/hwmon*/` für virtuelle Geräte oder im Verzeichnis `/sys/class/hwmon/hwmon*/device` für nicht-virtuelle Geräte.
Eine Datei mit dem Namen `name`, die sich in den Verzeichnissen `hwmon*` oder `hwmon*/device` befindet, enthält den Namen des Chips, der dem Namen des vom Sensorchip verwendeten Kernel-Treibers entspricht.

Es gibt nur einen Sensorwert pro Datei.
Das allgemeine Schema für die Benennung der Dateien, die Sensorwerte in einem der oben genannten Verzeichnisse enthalten, lautet: `<type><number>_<item>`, wobei

-   **type** - bei Sensorchips ist dies "in" (Spannung), "temp" (Temperatur), "fan" (Lüfter) usw.
-   **item** - "input" (gemessener Wert), "max" (oberer Schwellenwert), "min" (unterer Schwellenwert) usw.
-   **number** - wird immer für Elemente verwendet, die mehr als einmal vorhanden sein können (beginnt normalerweise bei 1, außer bei Spannungen, die bei 0 beginnen).
Wenn sich Dateien nicht auf ein bestimmtes Element beziehen, haben sie einen einfachen Namen ohne Nummer.

Die Informationen zu den auf dem Host verfügbaren Sensoren können mit den Werkzeugen **sensors-detect** und **sensors** ermittelt werden ([lm-sensors package](https://docs.kernel.org/hwmon/sysfs-interface.html)).
**Sensors-detect** hilft dabei festzustellen, welche Module für die verfügbaren Sensoren erforderlich sind.
Wenn die Module geladen sind, kann das Programm **sensors** verwendet werden, um die Werte aller Sensorchips anzuzeigen.
Die von diesem Programm verwendete Bezeichnung der Sensorwerte kann vom allgemeinen Benennungsschema (`<type><number>_<item>` ) abweichen:

-   wenn es eine Datei namens `<type><number>_label` gibt, wird die Bezeichnung in dieser Datei anstelle des Namens `<type><number><item>` verwendet;
-   wenn es keine Datei `<type><number>_label` gibt, sucht das Programm in `/etc/sensors.conf` (kann auch `/etc/sensors3.conf` oder eine andere Datei sein) nach einer Namensersetzung.

Diese Bezeichnung ermöglicht es dem Benutzer festzustellen, welche Art von Hardware verwendet wird.
Wenn es weder eine Datei `<type><number>_label` noch eine Bezeichnung in der Konfigurationsdatei gibt, kann der Hardwaretyp anhand des Namensattributs (`hwmon*/device/name`) bestimmt werden.
Die tatsächlichen Sensornamen, die `zabbix_agent` akzeptiert, können durch Ausführen des Programms **sensors** mit dem Parameter `-u` (`sensors -u`) ermittelt werden.

Im Programm **sensors** werden die verfügbaren Sensoren nach Bustyp getrennt (ISA-Adapter, PCI-Adapter, SPI-Adapter, virtuelles Gerät, ACPI-Schnittstelle, HID-Adapter).

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

[comment]: # ({397aa635-0cb28aa9})
#### Ermitteln von Sensor-IDs

Sensorbezeichnungen, wie sie vom Befehl `sensors` ausgegeben werden, können nicht immer direkt verwendet werden, da die Bezeichnung je nach Chip-Hersteller variiert.
Zum Beispiel könnte die Ausgabe von `sensors` die folgenden Zeilen enthalten:

```bash
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)
```

Davon entspricht nur ein Anzeigename direkt einer internen ID:

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

Der Versuch, andere angezeigte Bezeichnungen zu verwenden (wie `Vcore` oder `+12V`), funktioniert nicht:

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

Um die interne Sensor-ID zu finden, die Zabbix akzeptiert, führen Sie `sensors -u` aus.
In der Ausgabe kann Folgendes zu sehen sein:

```bash
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
...
```

Die Bezeichnung `Vcore` entspricht also der ID `in1`, und `+12V` entspricht `in4`.
Gemäß der Kernel-hwmon-sysfs-[Spezifikation](https://docs.kernel.org/hwmon/sysfs-interface.html) sind dies Spannungen an Chip-Pins und müssen allgemein gesprochen möglicherweise skaliert werden.

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

Nicht nur Spannungs- (`in`), sondern auch Strom- (`curr`), Temperatur- (`temp`) und Lüfterdrehzahlwerte (`fan`) können von Zabbix abgerufen werden.

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

[comment]: # ({5b2a0096-8c111a00})
#### Kompatibilität

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

[comment]: # ({f66e4878-61bf6279})
##### Veraltete Distributionen

Sensorwerte werden aus dem Verzeichnis `/proc/sys/dev/sensors` abgerufen:

-   **device** - Gerätename (wenn <mode> verwendet wird, ist dies ein regulärer Ausdruck)
-   **sensor** - Sensorname (wenn <mode> verwendet wird, ist dies ein regulärer Ausdruck)
-   **mode** - mögliche Werte: `avg`, `max`, `min` (wenn dieser Parameter weggelassen wird, werden device und sensor wörtlich behandelt)

Beispielschlüssel: `sensor[w83781d-i2c-0-2d,temp1]`.

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

[comment]: # ({9e54fe4b-2e1edda6})
##### Aktuelle Distributionen

Sensorwerte werden aus dem Verzeichnis `/sys/class/hwmon` abgerufen:

-   **device** - Gerätename (kein regulärer Ausdruck).
Der Gerätename kann der tatsächliche Name des Geräts sein (z. B. `0000:00:18.3`) oder der mit dem Programm sensors ermittelte Name (z. B. `k8temp-pci-00c3`).
Es liegt am Benutzer, zu entscheiden, welcher Name verwendet werden soll.
-   **sensor** - Sensorname (kein regulärer Ausdruck).
-   **mode** - mögliche Werte: `avg`, `max`, `min` (wenn dieser Parameter weggelassen wird, werden device und sensor wörtlich behandelt).

Beispielschlüssel:

`sensor[k8temp-pci-00c3,temp,max]` oder `sensor[0000:00:18.3,temp1]`.

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

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