Supervision d'un onduleur

dim. 01 nov. 2020 by Marmotte

Un onduleur permet d'éviter une extinction brutale des machines lors de (micro)coupures de courant, mais aussi de les protéger d'éventuelles surtensions. Lors d'une coupure courte, sa batterie permet de ne pas avoir à éteindre les machines. Si la coupure de courant dure plus longtemps, elle permet tout de même d'avoir le temps d'éteindre le système.

Cet article sur la supervision est dédié aux informations que je récupère à propos de mon onduleur.

Communication avec l'onduleur

Je dispose d'un onduleur Eaton Ellipse Pro 650 USB. Comme il est directement connecté en USB sur mon NAS, qui tourne sous Debian, je peux simplement utiliser nut pour accéder à ses données

Installation

Sous Debian, il suffit d'installer le paquet nut-server :

$ sudo apt install nut-server

Configuration

La configuration de nut est découpée dans plusieurs fichiers.

Configuration du démon nut

Le démon est configuré par le fichier etc/nut/nut.conf. À ce niveau, j'ai simplement configuré le paramètre MODE=standalone.

Déclaration des onduleurs

Il faut ensuite déclarer les onduleurs accessibles depuis le système dans le fichier /etc/nut/ups.conf :

[upsname]
  driver = usbhid-ups
  port = auto
  desc = UPS Description

Note : Le driver à utiliser dépend de l'onduleur dont vous disposez. Une liste d'onduleurs connus est disponible dans le fichier /usr/share/nut/driver.list. Les onduleurs d'une même marque sont souvent compatibles avec le même driver, l'absence d'un onduleur dans cette liste n'empêche pas sa compatibilité.

Note : Laisser le port sur auto permet à nut de détecter automatiquement l'onduleur. Dans le cas où il ne serait pas trouvé, ou si plusieurs onduleurs sont connectés sur la machine, il est nécessaire de préciser le périphérique correspondant (par exemple /dev/ttyS0).

Déclaration des utilisateurs

Afin de sécuriser un minimum l'accès à l'onduleur, il est nécessaire de déclarer des utilisateurs. Ainsi, n'importe qui ne pourra pas lancer des commandes affectant le fonctionnement ou la configuration de l'onduleur.

Les utilisateurs doivent être déclarés dans le fichier /etc/nut/upsd.users :

[username]
  password = password
  upsmon master

Note : La déclaration comme master permet d'éteindre la machine connectée à l'onduleur en dernier, dans le cas où des composants de nut seraient installés sur d'autres machines alimentées par le même onduleur.

Collecte des informations

Pour collecter les informations sur mon onduleur, j'utilise la bibliothèque nut2.

Mon script est disponible sur Framagit.

Affichage des informations

Comme pour toutes les données stockées dans InfluxDB, j'ai créé un dashboard dans Grafana me permettant de les afficher. Le fichier json de ce dashboard est disponible ici.

Onduleur