[comment]: # translation:outdated

[comment]: # ({05069cfc-05069cfc})
# 8 Capteur

Chaque puce de capteur obtient son propre répertoire dans l’arborescence /sys/devices. Pour trouver toutes les puces de capteur, il est plus facile de suivre les liens symboliques du périphérique à partir de /sys/class/hwmon/hwmon\*, où \* est un nombre réel (0,1,2, ...).

Les lectures de capteur se trouvent dans le répertoire /sys/class/hwmon/hwmon\*/ pour les périphériques virtuels ou 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 du capteur.

Il n'y a qu'une seule valeur de lecture de capteur par fichier. Le schéma commun pour nommer les fichiers contenant des lectures de capteur dans l’un des répertoires mentionnés ci-dessus est le suivant :
<type><numéro>\_<élément>, où

-   **type** - pour les puces de capteur est "in" (voltage), "temp" (température), "fan" (ventilateur), etc.,
-   **élément** - "input" (valeur mesurée), "max" (seuil haut), "min" (seuil bas), etc.,
-   **numéro** - toujours utilisé pour les éléments pouvant être présents plusieurs fois (commence généralement à 1, sauf pour les voltages qui commencent à 0). Si les fichiers ne font pas référence à 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 acquises à l’aide des outils **sensor-detect** et **sensor** (package lm-capteurs : <http://lm-sensors.org/>). **Sensors-detect** permet de déterminer quels modules sont nécessaires pour les capteurs disponibles. Lorsque les modules sont chargés, le programme **sensor** peut être utilisé pour afficher les lectures de toutes les puces de capteur. L'étiquetage des lectures de capteur, utilisé par ce programme, peut être différent du schéma de nommage commun (<type><numéro>\_ élément>) :

-   s'il y a un fichier appelé <type><numéro>\_label, alors le label dans ce fichier sera utilisé au lieu du nom <type><numéro><élément> ;
-   s'il n'y a pas de fichier <type><numéro>\_label, alors le programme cherche dans /etc/sensors.conf (peut être aussi /etc/sensors3.conf, ou autre) pour la substitution de nom.

Cet étiquetage permet à l’utilisateur de déterminer le type de matériel utilisé. S'il n'y a ni fichier <type><numéro>\_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 **sensor** les capteurs disponibles sont séparés par le type de bus (ISA adapter, PCI adapter, SPI adapter, Virtual device, ACPI interface, HID adapter).

[comment]: # ({/05069cfc-05069cfc})

[comment]: # ({61bf6279-61bf6279})
##### Sur Linux 2.4 :

(Les lectures des capteurs sont obtenues à partir du répertoire /proc/sys/dev/sensors)

-   **device** - nom du périphérique (si <mode> est utilisé, c'est une expression régulière) ;
-   **sensor** - nom du capteur (si <mode> est utilisé, c'est une expression régulière) ;
-   **mode** - valeurs possibles : avg, max, min (si ce paramètre est omis, le périphérique et le capteur sont traités textuellement).

Exemple de clé :

sensor\[w83781d-i2c-0-2d,temp1\]

Avant Zabbix 1.8.4, le format sensor\[temp1\] était utilisé.

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

[comment]: # ({2e1edda6-2e1edda6})
##### Sur Linux 2.6+ :

(Les lectures des capteurs sont obtenues à partir du répertoire /sys/class/hwmon)

-   **device** - nom du périphérique (pas une expression régulière). Le nom du périphérique peut être le nom réel du périphérique (ex. 0000:00:18.3) ou le nom acquis en utilisant le programme de sensors (ex. k8temp-pci-00c3). Il appartient à l'utilisateur de choisir le nom à utiliser ;
-   **sensor** - nom du capteur (pas une expression régulière) ;
-   **mode** - valeurs possibles : avg, max, min (si ce paramètre est omis, le périphérique et le capteur sont traités textuellement).

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

[comment]: # ({0cb28aa9-0cb28aa9})
#### Obtention des noms de capteurs

Les étiquettes de capteur, telles qu'affichées par la commande *sensors*, ne peuvent pas toujours être utilisées directement, car leur nom peut être différent pour chaque fournisseur de puce de capteur. Par exemple, la sortie de *sensors* peut contenir les lignes suivantes :

    $ 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 celles-ci, une seule étiquette peut être utilisée directement :

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

Tenter d’utiliser d’autres étiquettes (comme *Vcore* ou *+12V*) ne fonctionnera pas.

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

Pour connaître le nom du capteur réel, qui peut être utilisé par Zabbix pour récupérer les lectures du capteur, exécutez *sensors -u*. Dans la sortie, on peut observer :

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

Donc *Vcore* devrait être requété comme *in1*, et *+12V* devrait être requété comme *in4*. [^1]

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

Pas seulement le voltage (in), mais aussi la lecture du courant (curr), la température (temp) et la vitesse du ventilateur (fan) peuvent être récupérées par Zabbix.

[^1]: Selon les [spécifications](https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface) ce sont des voltages sur les broches des puces et peuvent généralement nécessiter une mise à l'échelle.

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