Usine

Un wiki à l'usine !

Outils pour utilisateurs

Outils du site


apcups

APC UPS

Certains “onduleurs” APC (APC UPS) peuvent être connectés à un ordinateur pour discuter. Cela est très utile pour par exemple éteindre un serveur si le niveau de batterie devient trop faible lors d'une coupure de courant qui s'éternise.

Depuis Linux

Il y a un outil, apcupsd (disponible directement dans la plupart des distributions) qui permet de discuter avec ces “onduleurs” et de réagir. Par défaut lors de l'installation sous Debian, le paquet lance le daemon avec des options raisonnables. On peut aussi, sur la machin à laquelle est connectée la bête, faire tourner le daemon en mode serveur pour pouvoir y accéder depuis d'autres machines (et ainsi, les faire réagir en cas de nécessité).

Pour lire les informations :

/sbin/apcaccess status

Lire la puissance instantanée délivrée par l'onduleur

L'onduleur Back-UPS RS 900G ne fournit qu'un pourcentage de charge via acpaccess. Pour un onduleur de 540 W de puissance nominale, on peut donc avoir la puissance instantanée avec la commande :

apcaccess status | awk 'NR==13{print $3*5.4}'

Ne pas oublier d'ajuster le 5.4 en fonction du nominal de l'onduleur…

Graphiques

Il y a aussi moyen de remonter pas mal d'informations comme par exemple la consommation instantanée.

Une personne a écrit un petit script tout simple qui pose les informations choisies dans une base de donnée rrd et génère quelques graphiques sympa : https://github.com/fld/graph-apcupsd

Notes de mise en place (il n'y a pas besoin de cgi pour les graphs seuls, c'est uniquement pour mettre en place également la partie disponible via apcupsd) :

sudo apt install apcupsd
sudo systemctl disable apcupsd.service
sudo systemctl stop apcupsd.service
sudo adduser apc
sudo passwd -l apc
sudo apt install git rrdtool
sudo -u apc -H -s
cd
git clone https://github.com/fld/graph-apcupsd.git
rrdtool create graph-apcupsd.rrd --step '60' 'DS:LINEV:GAUGE:120:0:300' 'DS:LOADPCT:GAUGE:120:0:300' 'DS:OUTPUTV:GAUGE:120:0:300' 'DS:ITEMP:GAUGE:120:0:128' 'DS:BATTV:GAUGE:120:0:50' 'DS:NUMXFERS:DERIVE:120:0:U' 'DS:TONBATT:GAUGE:120:0:U' 'RRA:LAST:0.5:1:5256000'
cd graph-apcupsd
nano cron-apcupsd.sh 
=> ajuster la ligne status avec l'adress/port et le path base rrd, et les infos à remonter si besoin
chmod +x cron-apcupsd.sh 
(pour tester) ./cron-apcupsd.sh -d
./cron-apcupsd.sh
nano graph-apcupsd.sh
=> ajuste les path rrd_location et rrd_graphdir ainsi que lwmult et kwhmult et les variables remontées si changé dans le cron
chmod +x graph-apcupsd.sh 
./graph-apcupsd.sh
crontab -e
=> */1 * * * * /home/apc/graph-apcupsd/cron-apcupsd.sh

Attention, la page générée télécharge jquery. On peut vouloir le télécharger et le fournir directement (plus propre)

Attention, il semblerait que le remplissage de la base de données doive être fait à la seconde exacte (00) lorsqu'on lance le script à la main.

Un moyen simple de générer les graph en même temps que d'ouvrir un tunnel SSH pour les consulter :

ssh -L 1234:127.0.0.1:8088 monitoring sh -c '/home/apc/graph-apcupsd/graph-apcupsd.sh; cd /dev/shm/apcsite; python3 -m http.server 8088 || read'
apcups.txt · Dernière modification : le 21/02/2024 à 20h36 de john