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.

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.

Nut

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 :

Graphe charge onduleur

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)

Installation et gestion d'un UPS USB en réseau sous linux

Cacti-Nut

Vus : 3911
Publié par Captaine74 : 14