Gèrer un onduleur avec ubuntu
Par Dju » 04 janvier 2010 (15:50) - Serveur
Bonjour
Maintenant que le zotac est bien installé et fonctionne bien, je vais vous montrer comment installer Apcupsd, qui permet de gérer facilement un onduleur à partir de linux.
Ce petit logiciel permet d'envoyer des alertes par email, mais surtout d'éteindre proprement la machine quand la batterie n'a plus de jus.
He oui, autant une machine récente supporte relativement bien les coupures de courant, autant les veilles machines qui tournent sans arrêt depuis plusieurs années le supportent beaucoup moins bien.... Grâce à un onduleur et un logiciel de gestion, la machine peut être arrêtée proprement et ainsi peut redémarrer sans souci par la suite
Une fois l'onduleur branché en amont de la machine, on vérifie que le système le voit bien avec la commande lsusb
Vous devriez voir une ligne ressemblant à ceci :
Bus 004 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Maintenant, on passe en root et on installe apcupsd
aptitude install apcupsd
Tous les fichiers de config se trouvent dans le dossier /etc/apcupsd.
Tout d'abord on édite le fichier /etc/default/apcupsd et on met la valeur ISCONFIGURED à yes
Ensuite, on édite le fichier de config' principal: /etc/apcupsd/apcupsd.conf
voici le minimum à renseigner, dans la section General configuration parameters
UPSNAME mon_onduleur
UPSCABLE usb
UPSTYPE usb
DEVICE
Maintenant, on va configurer le comportement de l'onduleur
## temps en secondes au bout du quel l'onduleur détectera la coupure
ONBATTERYDELAY 5
## si batterie inferieure à 5% on éteint la machine
BATTERYLEVEL 5
## si charge de la batterie moins de 3 minutes, on éteint la machine
MINUTES 3
## si plus de n minutes passées sur batterie, extinction de la machine. fonction désactivée par défaut
TIMEOUT 0
## temps en secondes avant l'extinction à partir du quel les utilisateurs loggés sur la machine seront prévenus régulièrement qu'il faut se déconnecter
ANNOY 300
## prévenir les utilisateurs après 60 secondes lors d'une coupure de courant
ANNOYDELAY 60
## empecher les utilisateurs de se logger sur la machine ou pas, lors de la coupure de courant. désactivé par défaut
NOLOGON disable
## temps en secondes pendant lequel apcupsd continuera a tourner, une fois l'extinction de la machine lancée. désactivé par défaut
KILLDELAY 0
Plus d'infos sur chaque variable et valeur peuvent être trouvées ici: http://linux.die.net/man/8/apcupsd
Maintenant, on passe à la configuration IP
## active le serveur apcupsd sur ip, pour obtenir les informations de l'onduleur
NETSERVER ON
## sur quelle ip écouter le serveur.
## 127.0.0.1 = local uniquement, les infos ne seront pas disponibles à partir d'une autre machine
## 0.0.0.0 = toutes les ip de la machine
## attention, on ne PEUT PAS spécifier cette variable plusieurs fois, ou donner une liste d'adresses ip
NISIP 0.0.0.0
## sur quel port le serveur doit il écouter (3551 par défaut)
NISPORT 3551
## fichiers de logs des évènements
EVENTSFILE /var/log/apcupsd.events
## taille maximum du fichier de log, en Kilo-octets
EVENTSFILEMAX 10
## valeur par défaut pour gèrer l'onduleur d'une seule machine
UPSCLASS standalone
## si onduleur géré par une seule machine, désactivé
UPSMODE disable
le reste des lignes peut être laissé par défaut.
Maintenant qu'on a tout bien configuré, on va lancer apcupsd
/etc/init.d/apcupsd start
et voici comment accèder aux infos de l'onduleur :
apcaccess
voici le genre d'informations que l'on obtient (ici, l'onduleur branché au zotac)
APC : 001,043,1052 DATE : Mon Jan 04 15:35:11 CET 2010 HOSTNAME : zotac VERSION : 3.14.6 (16 May 2009) debian UPSNAME : zotac CABLE : USB Cable MODEL : Back-UPS BR 800 UPSMODE : Stand Alone STARTTIME: Mon Jan 04 15:35:10 CET 2010 STATUS : ONLINE LINEV : 222.0 Volts LOADPCT : 42.0 Percent Load Capacity BCHARGE : 100.0 Percent TIMELEFT : 19.0 Minutes MBATTCHG : 5 Percent MINTIMEL : 3 Minutes MAXTIME : 0 Seconds OUTPUTV : 230.0 Volts SENSE : Medium DWAKE : 000 Seconds DSHUTD : 000 Seconds LOTRANS : 194.0 Volts HITRANS : 264.0 Volts RETPCT : 000.0 Percent ITEMP : 29.2 C Internal ALARMDEL : Always BATTV : 27.1 Volts LINEFREQ : 50.0 Hz LASTXFER : No transfers since turnon NUMXFERS : 0 TONBATT : 0 seconds CUMONBATT: 0 seconds XOFFBATT : N/A SELFTEST : NO STATFLAG : 0x07000008 Status Flag SERIALNO : NB0730022333 BATTDATE : 2001-09-25 NOMOUTV : 230 Volts NOMINV : 230 Volts NOMBATTV : 24.0 Volts NOMPOWER : 540 Watts FIRMWARE : 9.o4 .I USB FW:o4 APCMODEL : Back-UPS BR 800 END APC : Mon Jan 04 15:35:14 CET 2010
on obtient notamment la température interne de l'onduleur (ITEMP) et le temps restant sur la batterie si coupure (TIMELEFT), la charge sur l'onduleur (LOADPCT) et la charge de la batterie (BCHARGE)
Ici, vous voyez que j'ai 42% de charge électrique, et 19 minutes de courant dispo, car j'ai branché également d'autres appareils important sur mon onduleur.
Il y a notamment le switch réseau, mon ordi principal avec une carte graphique "delamorkitue" (trèès gourmande en courant) avec son écran 24" et ma chaine hifi qui me sert également de réveil matin (ben oui, en cas de coupure la nuit, par d'alarme le matin :D )
En ayant branché juste le zotac sur l'onduleur, le temps passe à ~75 minutes.
A coté, mon routeur qui est tout seul sur son onduleur (avec la freebox quand meme) prend 4% de la capacité, ce qui laisse 70mn )
Si on a renseigné une ip sur laquelle écouter (ou 0.0.0.0) on peut accéder depuis le réseau aux infos, depuis une autre machine.
Pour ce faire, on peut taper la commande
apcaccess status ip_de_la_machine
par exemple, j'ai également un onduleur sur mon routeur, donc pour accèder aux infos, je tape
apcaccess status 192.168.0.1
Maintenant que tout marche bien, on va configurer une dernière chose, les alertes par email.
Toujours dans le dossier /etc/apcupsd, on trouve plusieurs fichiers, qu'on va devoir éditer:
changeme
## fichier appelé lorsque la batterie est naze et a besoin d'être remplacée
commfailure
## fichier appelé lors d'une perte de connexion entre la machine et l'onduleur (par exemple, si vous avez débranché le cable usb sans faire exprès... :D )
commok
## fichier appelé lorsque la liaison avec l'onduleur est rétablie
offbattery
## fichier appelé lorsqu'il y a une coupure de courant
onbattery
## fichier appelé lorque le courant est rétabli après une coupure
Dans chacun de ces fichiers, la structure est la meme.
La ligne importante est: SYSADMIN=root
root ètant l'adresse email à laquelle le mail sera envoyé.
Il est d'ailleurs d'avoir installé auparavant un postfix, ou exim, ou tout autre script permettant d'envoyer un mail
On peut d'ailleurs appliquer des changements un peu plus approfondis à ces fichiers, vu que ce sont des scripts shell. On peut donc leur faire faire ce que l'on veut.
Voila, ça fait pour moins un an et demi que j'ai un onduleur apc sur mon routeur, géré par apcupsd, et jamais de problème.
Il y a eu pas mal de coupures électriques,mais jamais plus d'une demi-heure, donc jamais d'extinction de machine.
Bonjour, merci pour votre tutoriel qui m'a permis de comprendre le fonctionnement de Apcupsd. Cependant j'ai une question: est-ce que ce tuto et cette config fonctionnent (à quelques paramètres près) pour un onduleur MGE galaxy 300 branché sur le réseau par un câble RJ45 et devant permettre l'arrêt "propre" de plusieurs serveurs?
Merci d'avance
jc
Salut

Malheureusement non, apcupsd fonctionne avec les onduleurs UPS, mais pas MGE/Elipse et consorts.
Pour cela, il faut utiliser nut
On peut facilement trouver des articles en cherchant sur google 'nut mge galaxy"
Bonjour,
D'accord, eh bien merci pour le réponse et bonne journée !
Re-bonjour^^
J'ai encore quelques questions =D
Je viens de configurer apcupsd pour un autre onduleur (Smart-UPS RT 8000) et ça à l'air de fonctionner ^^ Cependant j'ai plusieurs serveurs à arrêter en cas de coupure du courant: est-ce que je dois installer le programme avec la même config (selon l'OS) sur chaque poste à arrêter? ou est-ce que je peux "centraliser" une config sur une machine qui gère et qui arrête progressivement les différents postes à arrêter?
Autre question: comment pui-je tester le fonctionnement de apcupsd sans "tout casser" ? ^^
j'espère avoir été à peu près clair
Merci !
Fil des commentaires de ce billet
URL de rétrolien : https://blog.crifo.org/trackback/21