[comment]: # translation:outdated

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

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

[comment]: # ({752b9468-eaab320d})
#### Vue d'ensemble

Chaque puce de capteur possède son propre répertoire dans l’arborescence sysfs `/sys/devices`.
Pour trouver toutes les puces de capteur, il est plus facile de suivre les liens symboliques des périphériques depuis `/sys/class/hwmon/hwmon*`, où `*` est un nombre réel (0,1,2,...).

Les relevés des capteurs se trouvent soit dans le répertoire `/sys/class/hwmon/hwmon*/` pour les périphériques virtuels, soit dans le répertoire `/sys/class/hwmon/hwmon*/device` pour les périphériques non virtuels.
Un fichier nommé `name`, situé dans les répertoires `hwmon*` ou `hwmon*/device`, contient le nom de la puce, qui correspond au nom du pilote du noyau utilisé par la puce de capteur.

Il n’y a qu’une seule valeur de relevé de capteur par fichier.
Le schéma commun de nommage des fichiers contenant les relevés des capteurs dans l’un des répertoires mentionnés ci-dessus est : `<type><number>_<item>`, où

-   **type** - pour les puces de capteur, il s’agit de "in" (tension), "temp" (température), "fan" (ventilateur), etc.
-   **item** - "input" (valeur mesurée), "max" (seuil haut), "min" (seuil bas), etc.
-   **number** - toujours utilisé pour les éléments pouvant être présents plus d’une fois (commence généralement à 1, sauf pour les tensions qui commencent à 0).
Si les fichiers ne se rapportent pas à un élément spécifique, ils portent un nom simple sans numéro.

Les informations concernant les capteurs disponibles sur l’hôte peuvent être obtenues à l’aide des outils **sensors-detect** et **sensors** ([paquet lm-sensors](https://docs.kernel.org/hwmon/sysfs-interface.html)).
**Sensors-detect** aide à déterminer quels modules sont nécessaires pour les capteurs disponibles.
Lorsque les modules sont chargés, le programme **sensors** peut être utilisé pour afficher les relevés de toutes les puces de capteur.
L’étiquetage des relevés de capteurs utilisé par ce programme peut être différent du schéma de nommage commun (`<type><number>_<item>`) :

-   s’il existe un fichier nommé `<type><number>_label`, alors l’étiquette contenue dans ce fichier sera utilisée à la place du nom `<type><number><item>` ;
-   s’il n’existe pas de fichier `<type><number>_label`, alors le programme recherche dans `/etc/sensors.conf` (cela peut aussi être `/etc/sensors3.conf`, ou un autre fichier) une substitution de nom.

Cet étiquetage permet à l’utilisateur de déterminer quel type de matériel est utilisé.
S’il n’existe ni fichier `<type><number>_label` ni étiquette dans le fichier de configuration, le type de matériel peut être déterminé par l’attribut name (`hwmon*/device/name`).
Les noms réels des capteurs acceptés par `zabbix_agent` peuvent être obtenus en exécutant le programme **sensors** avec le paramètre `-u` (`sensors -u`).

Dans le programme **sensors**, les capteurs disponibles sont séparés selon le type de bus (adaptateur ISA, adaptateur PCI, adaptateur SPI, périphérique virtuel, interface ACPI, adaptateur HID).

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

[comment]: # ({397aa635-0cb28aa9})
#### Obtention des identifiants de capteur

Les libellés des capteurs, tels qu’ils sont affichés par la commande `sensors`, ne peuvent pas toujours être utilisés directement, car l’étiquetage varie selon les fabricants de puces.
Par exemple, la sortie de `sensors` peut contenir les lignes suivantes :

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

Parmi ceux-ci, un seul nom affiché correspond directement à un identifiant interne :

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

Toute tentative d’utiliser d’autres libellés affichés (comme `Vcore` ou `+12V`) ne fonctionnera pas :

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

Pour trouver l’identifiant interne du capteur accepté par Zabbix, exécutez `sensors -u`.
Dans la sortie, on peut observer ce qui suit :

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

Ainsi, le libellé `Vcore` correspond à l’identifiant `in1`, et `+12V` correspond à `in4`.
Selon la [spécification](https://docs.kernel.org/hwmon/sysfs-interface.html) hwmon sysfs du noyau, il s’agit de tensions sur les broches de la puce et, de manière générale, elles peuvent nécessiter une mise à l’échelle.

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

Zabbix peut récupérer non seulement les mesures de tension (`in`), mais aussi de courant (`curr`), de température (`temp`) et de vitesse de ventilateur (`fan`).

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

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

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

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

Les relevés des capteurs sont obtenus à partir du répertoire `/proc/sys/dev/sensors` :

-   **device** - nom du périphérique (si <mode> est utilisé, il s’agit d’une expression régulière)
-   **sensor** - nom du capteur (si <mode> est utilisé, il s’agit d’une expression régulière)
-   **mode** - valeurs possibles : `avg`, `max`, `min` (si ce paramètre est omis, device et sensor sont traités littéralement)

Exemple de clé : `sensor[w83781d-i2c-0-2d,temp1]`.

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

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

Les relevés des capteurs sont obtenus à partir du répertoire `/sys/class/hwmon` :

-   **device** - nom du périphérique (expression non régulière).
Le nom du périphérique peut être le nom réel du périphérique (par ex. `0000:00:18.3`) ou le nom obtenu à l’aide du programme sensors (par ex. `k8temp-pci-00c3`).
C’est à l’utilisateur de choisir quel nom utiliser.
-   **sensor** - nom du capteur (expression non régulière).
-   **mode** - valeurs possibles : `avg`, `max`, `min` (si ce paramètre est omis, device et sensor sont traités littéralement).

Exemples de clés :

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

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

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