7530
Commentaire: le serveur a changé
|
7487
mise à jour pour Squeeze
|
Texte supprimé. | Texte ajouté. |
Ligne 22: | Ligne 22: |
A faire sur chaque serveur relié à un onduleur par port série ou USB. C'est ce serveur qui préviendra les autres (''slaves''). | À faire sur chaque serveur relié à un onduleur par port série ou USB. C'est ce serveur qui préviendra les autres (''slaves''). |
Ligne 25: | Ligne 25: |
1. créer le fichier `/etc/nut/ups.conf` : | 1. compléter le fichier `/etc/nut/ups.conf` : |
Ligne 35: | Ligne 35: |
port = /dev/usb/hiddev0 | port = auto |
Ligne 38: | Ligne 38: |
1. créer le fichier `/etc/nut/upsd.conf` : {{{ |
. /!\ Le pilote USB a besoin des droits accès au périphérique USB dans `/dev/bus/usb/VVV/NNN` (cf `lsusb` pour trouver les valeurs) ; ces droits sont donnés dynamiquement via des règles pour `udev`, mais cela réclame au minimum un redémarrage du serveur juste après l'installation du paquet `nut`. 1. compléter le fichier `/etc/nut/upsd.conf` : {{{ |
Ligne 44: | Ligne 41: |
LISTEN IP_de_interface_que_slave_machine_connecte 3493 ACL localhost 127.0.0.1/32 ACL dmzpub 199.84.140.0/24 ACL nut-cgi 10.36.0.10/32 ACL all 0.0.0.0/0 ACCEPT localhost dmzpub nut-cgi REJECT all |
LISTEN 10.36.0.254 3493 |
Ligne 53: | Ligne 43: |
1. créer le fichier `/etc/nut/upsd.users` : {{{ | 1. compléter le fichier `/etc/nut/upsd.users` : {{{ |
Ligne 56: | Ligne 46: |
allowfrom = localhost | |
Ligne 59: | Ligne 48: |
Ligne 61: | Ligne 51: |
allowfrom = localhost | |
Ligne 63: | Ligne 52: |
Ligne 65: | Ligne 55: |
allowfrom = dmzpub | |
Ligne 68: | Ligne 57: |
1. créer le fichier `/etc/nut/upsmon.conf` : {{{ | 1. vérifier le fichier `/etc/nut/upsmon.conf` : {{{ |
Ligne 81: | Ligne 70: |
1. mettre `MODE=netserver` dans `/etc/nut/nut.conf` 1. ajouter nut au groupe dialout pour que nut ait accès au port série : {{{ |
1. mettre `MODE=standalone` (unique serveur sur cet UPS) ou bien `MODE=netserver` (plusieurs serveurs sur cet UPS) dans `/etc/nut/nut.conf` 1. ajouter `nut` au groupe `dialout` pour que nut ait accès au port série : {{{ |
Ligne 89: | Ligne 78: |
1. lancer la surveillance avec `invoke-rc.d nut start` | 1. lancer la surveillance avec `service nut start` |
Ligne 135: | Ligne 124: |
1. créer le fichier `/etc/nut/upsmon.conf` : {{{ | 1. compléter le fichier `/etc/nut/upsmon.conf` : {{{ |
Ligne 149: | Ligne 138: |
1. lancer la surveillance (connexion avec le master) avec `invoke-rc.d nut start` | 1. lancer la surveillance (connexion avec le master) avec `service nut start` |
Ligne 151: | Ligne 140: |
Attention, les serveurs slaves pour communiquer avec le serveur master utilisent le port tcp 3493, si il y a un iptables qui traine dans le coin... | /!\ Les serveurs ''slaves'' utilisent le port 3493/TCP pour communiquer avec le serveur ''master''. |
Ligne 158: | Ligne 147: |
1. copier quelques modèles avec `cp -a /usr/share/doc/nut-cgi/examples/* /etc/nut/` Avec la version 2.4.3-1 pas besoin de faire ça |
|
Ligne 173: | Ligne 159: |
1. modifier le fichier `/etc/nut/hosts.conf` : {{{ | 1. compléter le fichier `/etc/nut/hosts.conf` : {{{ |
Cette page décrit la configuration de nut pour Debian/Squeeze.
Quelques liens sur nut
site officiel http://www.networkupstools.org/
une bonne doc en français pour Debian, claire et précise http://linux.developpez.com/cours/upsusb/
un portage Windows (uniquement le moniteur, ce qui suffit) http://www.csociety.org/~delpha/winnut/
Principes de base
La plupart du temps, un onduleur alimente plusieurs serveurs, typiquement 2 à 4 pour un 1500VA. Mais un seul serveur est relié à l'onduleur par un port série, c'est donc ce serveur qui sait quand le courant est coupé, quand l'onduleur n'a plus assez d'autonomie, quand le courant revient, etc. Cependant les autres serveurs doivent aussi être informés de ces évenements, ne serait-ce que pour effectuer un shutdown propre en fin d'autonomie de l'onduleur.
nut permet cela via différents composant :
sur le serveur maître (master) qui relié à l'onduleur, on installe le controleur qui lit les informations via le port série et les propose via le réseau
sur tous les serveurs (master et slave) relié au même onduleur, on installe un moniteur qui ira chercher, en local ou via le réseau, les informations sur l'état de l'onduleur et agira en fonction (par exemple éteindre le serveur en cas d'autonomie trop faible).
nut propose aussi des outils pour programmer l'onduleur (notamment les délais de redémarrage), pour se connecter à un onduleur SNMP, pour diffuser les infos sur le web, etc.
Configuration d'un serveur master
À faire sur chaque serveur relié à un onduleur par port série ou USB. C'est ce serveur qui préviendra les autres (slaves).
installer le contrôleur et le moniteur avec aptitude install nut
compléter le fichier /etc/nut/ups.conf :
exemple pour le cas où l'onduleur est relié au serveur via un port RS-232 :
[AUF_BAN1] driver = apcsmart port = /dev/ttyS0 desc = "APC SmartUPS SU3000 RM"
exemple pour le cas où l'onduleur est relié au serveur via un port USB :
[AUF_VN42] driver = usbhid-ups # pour Etch, utiliser hidups (support incomplet et bogué) port = auto desc = "APC SmartUPS SUA1500 RMI 2U"
Le pilote USB a besoin des droits accès au périphérique USB dans /dev/bus/usb/VVV/NNN (cf lsusb pour trouver les valeurs) ; ces droits sont donnés dynamiquement via des règles pour udev, mais cela réclame au minimum un redémarrage du serveur juste après l'installation du paquet nut.
compléter le fichier /etc/nut/upsd.conf :
LISTEN 127.0.0.1 3493 LISTEN 10.36.0.254 3493
compléter le fichier /etc/nut/upsd.users :
[admin] password = admin actions = SET instcmds = ALL [localhost] password = localhost upsmon master [dmzpub] password = dmzpub upsmon slave
vérifier le fichier /etc/nut/upsmon.conf :
# /etc/nut/upsmon.conf MONITOR AUF_BAN1@localhost 1 localhost localhost master MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" # NOTIFYCMD /usr/local/ups/bin/notifyme POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower FINALDELAY 5
mettre MODE=standalone (unique serveur sur cet UPS) ou bien MODE=netserver (plusieurs serveurs sur cet UPS) dans /etc/nut/nut.conf
ajouter nut au groupe dialout pour que nut ait accès au port série :
# addgroup nut dialout
et pour qu'il puisse lire les configurations :
# chown root:nut /etc/nut/upsd.* /etc/nut/upsmon.conf # chmod u=rw,g=r,o= /etc/nut/upsd.* /etc/nut/upsmon.conf
lancer la surveillance avec service nut start
tester si nut peut bien communiquer avec l'onduleur :
# upsc AUF_BAN1 battery.alarm.threshold: 0 battery.charge: 100.0 battery.charge.restart: 15 battery.date: 12/09/99 battery.packs: 000 battery.runtime: 16740 ...
Mais il ne faut pas oublier de programmer l'onduleur quand c'est possible (et avec les APC justement ça l'est) ! Il faut par exemple signifier à l'onduleur qu'il ne doit redémarrer après une coupure que si les batteries sont chargées à 15%. Voici comment faire avec un APC :
lancer la commande upsrw AUF_BAN1@localhost pour voir les programmations possibles
exemple d'utilisation : upsrw -s ups.id="AUF_BAN1" -u admin -p admin AUF_BAN1@localhost
- j'ai mis en place les paramètres suivants :
ups.id="AUF_BAN1" (identifiant **interne** de l'onduleur, au cas où on ne l'aurait pas étiqueté ;-))
battery.runtime.low="120" (point critique quand il ne reste que 2 min de fonctionnement sur batterie)
battery.charge.restart="15" (on attend que la batterie soit rechargée au minimum à 15% avant de relancer)
ups.delay.shutdown="120" (on attend 2 min après la demande de shutdown avant de couper effectivement)
ups.delay.start="060" (on attend 1 min après le retour du courant avant de démarrer)
ups.test.interval="604800" (on effectue des auto-tests de l'onduleur toutes les semaines)
Cas d'un onduleur joignable via SNMP (merci TsvetanPetkov)
Si votre onduleur dispose d'une surveillance par SNMP :
aptitude install nut-snmp
ajouter dans le fichier /etc/nut/ups.conf :
[MGE_EX30] driver = snmp-ups port = 168.8.26.116 community = public snmp_version = v1 mibs = ietf pollfreq = 15 desc = "MGE EX30 - 1950W"
relancer le service avec /etc/init.d/nut restart
utiliser la commande: upsc MGE_EX30@localhost pour voir si l'onduleur est bien configuré
Configuration d'un slave
installer le moniteur avec aptitude install nut
compléter le fichier /etc/nut/upsmon.conf :
# /etc/nut/upsmon.conf MONITOR AUF_BAN1@zeus.auf.org 1 dmzpub dmzpub slave MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" # NOTIFYCMD /usr/local/ups/bin/notifyme POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower FINALDELAY 5
mettre MODE=netclient dans /etc/nut/nut.conf
lancer la surveillance (connexion avec le master) avec service nut start
Les serveurs slaves utilisent le port 3493/TCP pour communiquer avec le serveur master.
Configuration de l'interface web
Il est déconseillé d'installer l'interface web au même endroit que le service nut lui-même. Le service nut sera typiquement installé dans la partie hôte OpenVZ, alors que l'interface web nut-cgi sera installée dans un conteneur OpenVZ dédié au web.
installer le script avec aptitude install nut-cgi
si l'onduleur est relié au serveur via un port USB il faut également ajuster la colonne de température dans le squelette /etc/nut/upsstats.html comme suit :
<td BGCOLOR="#00FF00"> @IFSUPP ups.temperature@ @UPSTEMP@ @DEGREES@ @ELSE@ @IFSUPP battery.temperature@ @VAR battery.temperature@ @DEGREES@ @ENDIF@ </td>
compléter le fichier /etc/nut/hosts.conf :
# /etc/nut/hosts.conf MONITOR AUF_BAN1@zeus.auf "AUF_BAN1 : local technique 3032" MONITOR AUF_BAN5@db.auf "AUF_BAN5 : local technique 3032" MONITOR AUF_BAN6@backup.auf "AUF_BAN6 : local technique 3034"
consulter la page http://new-intranet.auf/cgi-bin/nut/upsstats.cgi Pratique, non ?
Configuration des alertes par mail ou IM
...