Table of Contents

Installazione apcups su RedHat 4 EL

Il pacchetto apcupsd ufficiale per RedHat 4 EL non contiene tutte le componenti (ad esempio l'interfaccia web) ed è di una vecchia versione. Preferita la pacchettizzazione recente trovata sul sito dag.wieers.com. Il pacchetto non ha richiesto dipendenze.

Due UPS collegati allo stesso server

Al server sono collegati due gruppi di continuità, un APC-3000 con cavetto USB e un APC-1400 con cavetto seriale. Si vogliono avere due demoni apcupsd in esecuzione contemporaneamente: si creano due directory di configurazione copiandoci tutto il contenuto della /etc/apcupsd/:

Si configurano i due file apcupsd.conf, ecco le parti rilevanti:

UPSCABLE usb
UPSTYPE usb
DEVICE
SCRIPTDIR /etc/apcupsd/3000
PWRFAILDIR /etc/apcupsd/3000
BATTERYLEVEL 10
MINUTES 5
TIMEOUT 600
UPSCLASS standalone
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
UPSNAME APC_3000
UPSCABLE smart
UPSTYPE apcsmart
DEVICE /dev/ttyS0
SCRIPTDIR /etc/apcupsd/1400
PWRFAILDIR /etc/apcupsd/1400
BATTERYLEVEL -1
MINUTES -1
TIMEOUT 0
UPSCLASS standalone
NETSERVER on
NISIP 0.0.0.0
NISPORT 3552
UPSNAME APC_1400

Inoltre si sostituisce lo script /etc/apcupsd/1400/apccontrol con il file fornito come esempio safe.apccontrol.

In pratica l'UPS APC-1400 indicherà al proprio demone quando la tensione viene a mancare, ma a questo non seguirà alcuna azione. Sono invece le impostazione dell'APC-3000 che determinano i tempi di shutdown.

I due demoni apcupsd sono consultabili via network sulle porte TCP 3551 (default) e 3552 rispettivamente.

Avvio automatico dei due demoni

Si deve modificare lo script /etc/init.d/apcupsd relativamente alle azioni di start e stop, ecco un estratto:

CONFIG_FILES="/etc/apcupsd/*/apcupsd.conf"
case "$1" in
    start)
       rm -f /etc/apcupsd/powerfail
       rm -f /etc/nologin
       echo -n "Starting UPS monitoring:"
       for conf in $CONFIG_FILES; do
           subdir="$(dirname "$conf")"
           instance="$(basename "$subdir")"
           daemon --force /sbin/apcupsd -f "$conf"
           RETVAL=$?
           [ $RETVAL -eq 0 ] && touch /var/lock/subsys/apcupsd.$instance
       done
       echo
       ;;
    stop)
       echo -n "Shutting down UPS monitoring:"
       for conf in $CONFIG_FILES; do
           subdir="$(dirname "$conf")"
           instance="$(basename "$subdir")"
           killproc apcupsd
           rm -f /var/lock/subsys/apcupsd.$instance
        done
        echo
        rm -f $APCPID
       ;;

Interfaccia web

Si punta il browser su http://host/apcupsd/multimon.cgi, ovviamente deve essere attivo un server web. Per indicare che ci sono due demoni da monitorare, si modifica il file /etc/apcupsd/hosts.conf mettendo qualcosa del genere:

MONITOR 127.0.0.1 "APC-3000"
MONITOR 127.0.0.1:3552 "APC-1400"

Installazione di un client

Configurato un server Windows 2000 come client di apcupsd, installato il pacchetto winapcupsd-3.14.4.exe e configurato il file C:\apcupsd\etc\apcupsd.conf, in particolare:

UPSCABLE ether
UPSTYPE net
DEVICE 192.168.123.123:3552
BATTERYLEVEL -1
MINUTES -1
TIMEOUT 60
NISIP 127.0.0.1
NETTIME 10

Il client ignora le informazioni fornite dall'UPS su livello della batteria e minuti rimasti (stime), ma inizia uno shutdown dopo 60 secondi dal bkack-out. Il client controlla lo stato dell'UPS dal server ogni 10 secondi e condivide solo con se stesso queste informazioni (NISIP 127.0.0.1, necessario perché funzioni l'applicativo da systray).