Gestion D'un Onduleur Sur Debian Avec Nut
Nut est un logiciel de gestion d’onduleur multi-marque. Il supporte plusieurs centaines de modèles. Nous allons voir comment l’installer pour surveiller notre onduleur et ainsi réagir en cas de coupure de courant.
Qu’est q’un onduleur.
Un onduleur sert à protéger des équipements de coupure de courant et/ou de surtension pouvant intervenir lorsque les appareils sont en fonctionnement. Cela est pertinent pour des équipements comme des routeurs/switch/nas tournant 24h/24 et 7j/7. Le prix de ces équipements étant souvent non négligeable, il est important de les protéger des aléas du réseau électrique.
Il existe 3 catégories d’onduleur :
- Les offline
- Les line-interactive
- Les online
Onduleur Offline
Leur rôle est de prendre le relais en quelques dizaines de millisecond lors d’une panne de courant. Ces onduleurs agissent comme une batterie de secours. Aucune amélioration du courant n’est prévue.
Line-interactive
En plus de prendre le relais en cas de coupure, le courant en entrée est monitoré. Cela permet un temps de commutation plus rapide, de l’ordre de 2ms et de corriger la tension.
Online
Ici, le courant en entrée ne sert qu’à alimenter la batterie. Le courant est ensuite filtré et renvoyé aux équipements avec une tension idéale. En cas de coupure, aucun changement n’intervient pour les équipements qui fonctionnent déjà sur batterie.
Nut
Nut (Network UPS Tools) est un logiciel linux de surveillance des onduleurs. Il est disponible sur la majorité des distributions et permet notamment, pour les onduleurs le supportant, d’automatiquement éteindre proprement un serveur lorsque la batterie de l’onduleur arrive à terme. Nous allons voir l’installation sur une distribution debian.
Installation
Exécuter la commande :
Les fichiers de configuration sont accessibles dans /etc/nut
.
|
|
Choix du mode d’exécution.
Le serveur Nut peut s’exécuter en mode standalone, en mode server uniquement ou en mode client uniquement. Par défaut, il est désactivé.
Ouvrir le fichier /etc/nut/nut.conf
et changer la valeur du MODE
à
|
|
Ce mode est le plus adapté pour un NAS qui servira à la fois de client et de serveur.
Ajout des onduleurs à gérer.
L’ensemble des onduleurs à monitorer doivent être référencés dans le fichier ups.conf
.
Pour mon onduleur eaton cela donne :
[eaton]
est le nom de votre onduleur. Nous pouvons lui donner la valeur de notre choix.
Cette valeur sera utilisée comme référence plus loin dans d’autres fichiers de configuration.
Il est possible de récupérer les informations nécessaires grâce à la commande :
|
|
Le -U
est pour demander au scanner de n’effectuer un scan que sur les ports USB.
D’autres options sont disponibles ici : https://man.archlinux.org/man/nut-scanner.8
Configurer le contrôle d’accès.
Nut contrôle qui peut accéder à ces données depuis le fichier /etc/nut/upsd.conf
Comme mon NAS n’est accessible que depuis mon réseau local, j’ai choisi d’être assez permissif.
J’ai modifié le fichier en ajoutant :
LISTEN 0.0.0.0 3493
Cela permet à mon serveur home assistant “dockerisé” de pouvoir accéder à mon serveur nut sans avoir à préciser l’interface utilisée par docker.
Configuration des utilisateurs
La configuration des utilisateurs pouvant accéder à notre serveur nut s’effectue dans le
fichier upsd.users
.
Le format d’ajout d’un utilisateur est le suivant :
Nous définissons donc un utilisateur admin
avec le mot de passe xxxxxxxxxxxxxxxxxxxxxx
pour un système de type master
. Un master attend que l’ensemble des slaves
soit éteints
avant de s’éteindre. Dans notre cas, le seul système, est le NAS.
Configuration des systèmes à gérer
Maintenant que nous avons un onduleur de monitoré et un utilisateur de créé, il nous reste à définir quoi faire sur le système avec ces données.
Cela se passe dans le fichier /etc/nut/upsmon.conf
:
La première chose à faire est de définir un système à gérer via la ligne :
|
|
Nous retrouver notre onduleur avec son adresse eaton@127.0.0.1:3493
, Le nombre
d’alimentations fournies, ici 1 et l’association à notre utilisateur avec son nom et
son mot de passe. Nous finissons par le type de système.
Dans ce fichier, il est possible de définir la commande envoyée au système lorsque la batterie de l’onduleur arrive à expiration :
|
|
Une fois cette commande définit Nut se chargera d’arrêter proprement le système lorsque la batterie de l’onduleur ne pourra plus l’alimenter.
Cela est pratique en cas de coupure prolongé pour éviter d’éventuels dommages au matériel ou des pertes de données.
Conclusion
Nous avons maintenant un onduleur monitoré par nut. Ces données sont exploitables
par n’importe quel logiciel compatible. C’est par exemple le cas de HomeAssistant
via une intégration. Il devient ainsi possible de définir des scénarios plus complexes,
comme l’envoi d’alerte en cas de défaut d’alimentation.