Comment installer Nut pour un onduleur MGE USB
Il y a quelques semaines, j'ai subit les dégas de la foudre. Résultat, plus de Freebox, plus d'écran, plus de switch... Du coup je me suis décidé à acheter un Onduleur MGE Pulsar Ellipse 600 USBS.
Cet onduleur a la capacité de se brancher en USB ou en série sur un ordinateur afin de monitorer quelques informations telles que le charge de la batterie ou la puissance utilisée par le matériel protégé. Sous Windows pas de soucis, on le branche et il est tout de suite installé. Par contre je voulais qu'il soit branché sur mon serveur Ubuntu afin de l'éteindre proprement lorsque la batterie de l'onduleur est vide, et aussi pour avoir des graphes sous Cacti.
Assez blablaté. Nous allons d'abord installer Nut. Ce tuto s'appuie largement sur celui-ci : http://wiki.monserveurperso.com/wakka.php?wiki=NutInstall
NUT permet la prise en charge d'un grand nombre de modèle d'onduleur.
Installation sur le "Master"
Pour l'installer : MGE UPS SYSTEMS distribue le paquet PSP pour Debian GNU/Linux au travers de la méthode APT.
Pour installer Personal Solution Pac sur Debian et Ubuntu, ajouter la ligne suivante dans "/etc/apt/sources.list"
deb http://opensource.mgeups.com/stable/debian binary/
Ensuite, tapez les commandes suivantes, dans une console en tant que root :
apt-get update apt-get install mgeups-psp nut
On vérifie que l'onduleur est bien reconnu :
lsusb
Ce qui devrait donner quelque chose comme ça :
Bus 002 Device 003: ID 0463:ffff MGE UPS Systems UPS
On édite le fichiers /etc/default/nut pour automatiser le lancement des démons de Nut :
# start upsd START_UPSD=yes # start upsmon START_UPSMON=yes
On copie les exemples de fichiers de configuration dans le répertoire de Nut :
cp /usr/share/doc/nut/examples/*.conf.sample /etc/nut cp /usr/share/doc/nut/examples/*.users.sample /etc/nut cp /usr/share/doc/nut/examples/upsmon.conf.sample.gz /etc/nut
On renomme ensuite les fichiers exemples en leur enlevant leur extension ".sample" puis on décompresse le fichier upsmon.conf.sample.gz :
gunzip upsmon.conf.sample.gz
On édite le fichier ups.conf :
joe /etc/nut/ups.conf [myups] #Ici on donne un nom à notre onduleur pour pouvoir l'utiliser par la suite driver = usbhid-ups #Le driver USB de l'onduleur port = auto #pour l'USB desc = "MGE 600" #Un petite description
On teste ensuite ce bout de configuration :
upsdrvctl start
On devrait obtenir un résultat qui ressemble à cela :
Network UPS Tools - UPS driver controller 2.2.0- Network UPS Tools: 0.28 USB communication driver 0.28 - core 0.30 (2.2.0-) Detected a UPS: MGE OPS SYSTEMS/ELLIPSE Using subdriver: MGE HID 1.0 Broadcast Message from nut@routeur (somewhere) at 23:00 ... Communications with UPS myups@localhost established
On définit ensuite les droits d'accès au démon réseau pour l'accès à l'onduleur en éditant le fichier upsd.conf :
joe /etc/nut/upsd.conf
De façon à obtenir :
ACL all 0.0.0.0/0 ACL reseau 192.168.0.0/24 #Règle d'accès pour le réseau local ACL localhost 127.0.0.1/32 ACL server 192.168.0.3/32 #règle pour un poste en particulier ACCEPT server ACCEPT localhost ACCEPT reseau REJECT all #On bloc tout le reste
On définit les utilisateurs qui pourront accéder au démon par le réseau.
On édite le fichier upsd.users :
joe /etc/nut/upsd.users
Pour ajouter un utilisateur :
[nom-user] password = mot-de-passe allowfrom = localhost upsmon master #indique que l'utilisateur a le droit de se connecteur sur le serveur maître pour contrôler l'onduleur.
On édite ensuite le fichier /etc/nut/upsmon.conf :
joe /etc/nut/upsmon.conf
On doit obtenir le lignes suivantes qui permettent la connexion du moniteur à l'onduleur et la commande utilisée pour l'extinction de l'ordinateur :
MONITOR myups@localhost 1 nom-user mot-de-passe master SHUTDOWNCMD "/sbin/shutdown -h now"
On lance ensuite Nut :
/etc/init.d/nut start
Pour vérifier qu'il n'y a pas de problème, on va voir dans les fichiers de log :
tail /var/log/daemon.log
Si tout a l'air d'aller on peut essayer d'obtenir des informations sur l'onduleur :
upsc myups@localhost
Et on obtient quelque chose comme ça :
battery.charge: 100 battery.charge.low: 20 battery.runtime: 1531 battery.type: PbAc driver.name: usbhid-ups driver.parameter.pollinterval: 2 driver.parameter.port: auto driver.version: 2.2.0- driver.version.data: MGE HID 1.0 driver.version.internal: 0.30 input.transfer.high: 264.0 input.transfer.low: 184.0 outlet.0.desc: Main Outlet outlet.0.id: 1 outlet.0.switchable: no outlet.1.desc: PowerShare Outlet 1 outlet.1.id: 2 outlet.1.status: on outlet.1.switchable: no output.voltage: 230.0 ups.beeper.status: enabled ups.delay.shutdown: -1 ups.delay.start: -10 ups.load: 14 ups.mfr: MGE OPS SYSTEMS ups.model: Ellipse 600 ups.power.nominal: 600 ups.productid: ffff ups.serial: BD8J0900P ups.status: OL CHRG ups.vendorid: 0463
On voit que tout fonctionne. Mais on ne va pas s'arrêter là. On va maintenant faire en sorte de pouvoir avoir ces informations dans Cacti sous forme de graphes.
Voici un petit aperçu de ce qu'on peut obtenir :
Pour obtenir tout ça il faut d'abord avoir Cacti d'installé, puis aller télécharger les templates et scripts qui permettrons de faire les graphes comme ci-dessus.
Pour l'installation, il suffit de suivre les instruction du site du développeur.
Il n'y a plus qu'a créer les graphes dans Cacti.
Installation sur l'esclave
On peut aussi configurer des clients "esclaves" qui se connecte au serveur Nut auquel est connecté l'onduleur :
apt-get install nut
On édite le fichiers /etc/default/nut pour automatiser le lancement du démon de Nut UPSMON :
# start upsd START_UPSD=no # start upsmon START_UPSMON=yes
On édite ensuite le fichier /etc/nut/upsmon.conf :
joe /etc/nut/upsmon.conf
On doit obtenir le lignes suivantes qui permettent la connexion du moniteur à l'onduleur et la commande utilisée pour l'extinction de l'ordinateur :
MONITOR myups@adresse-du-serveur-nut 1 nom-user mot-de-passe master SHUTDOWNCMD "/sbin/shutdown -h now"
On lance ensuite Nut :
/etc/init.d/nut start
Pour vérifier qu'il n'y a pas de problème, on va voir dans les fichiers de log :
tail /var/log/daemon.log
Si tout a l'air d'aller on peut essayer d'obtenir des informations sur l'onduleur :
upsc myups@adresse-du-serveur-nut
Et on obtient quelque chose comme ça :
battery.charge: 100 battery.charge.low: 20 battery.runtime: 1531 battery.type: PbAc driver.name: usbhid-ups driver.parameter.pollinterval: 2 driver.parameter.port: auto driver.version: 2.2.0- driver.version.data: MGE HID 1.0 driver.version.internal: 0.30 input.transfer.high: 264.0 input.transfer.low: 184.0 outlet.0.desc: Main Outlet outlet.0.id: 1 outlet.0.switchable: no outlet.1.desc: PowerShare Outlet 1 outlet.1.id: 2 outlet.1.status: on outlet.1.switchable: no output.voltage: 230.0 ups.beeper.status: enabled ups.delay.shutdown: -1 ups.delay.start: -10 ups.load: 14 ups.mfr: MGE OPS SYSTEMS ups.model: Ellipse 600 ups.power.nominal: 600 ups.productid: ffff ups.serial: BD8J0900P ups.status: OL CHRG ups.vendorid: 0463
On voit que tout fonctionne.
Sources
Ubuntu doc : Onduleur Eaton MGE Office Protection Systems : Personal Solution Pac
Ubuntu doc : Network UPS Tools (NUT)