Gestione di un UPS in Debian con Nut: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
mNo edit summary
 
(37 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Server con UPS collegato==
==Server con UPS collegato==
===Installazione===
* Installazione software
* Installazione software
  sudo apt-get install nut
  sudo -i
apt install nut pwgen


* Configurazione tipo ups e porta
===Configurazione generale===
  sudoedit /etc/nut/ups.conf
<pre>
export UPS_NAME="apc_smartups_1500_rm"
export UPS_PASS="$(pwgen -B -c -1)"
export UPS_IP="192.168.0.102"
</pre>
 
* Impostare la modalità di esecuzione per un solo UPS:
export UPS_MODE=standalone
 
* Oppure per un server che controlla anche altri ups
  export UPS_MODE=netserver
 
* Configurare la modalità:
sudo sed -i /etc/nut/nut.conf -e "s/^MODE=none/MODE=${UPS_MODE}/"


** Per UPS APC USB
=== Configurazione UPS APC USB ===
<pre>
<pre>
[USB_UPS_NAME]
cat | sudo tee -a /etc/nut/ups.conf > /dev/null <<EOFile
[$UPS_NAME]
     driver = usbhid-ups
     driver = usbhid-ups
     port = auto
     port = auto
EOFile
</pre>
</pre>


** Per UPS APC Seriale
* Avviare il driver
sudo upsdrvctl start
 
* '''Se si riceve l'errore seguente, togliere e rimettere il cavo USB, oppure riavviare, per far settare le permission sul device della porta usb''':
 
 
<pre>
<pre>
[SERIAL_UPS_NAME]
Network UPS Tools - UPS driver controller 2.4.3
Network UPS Tools - Generic HID driver 0.34 (2.4.3)
USB communication driver 0.31
 
Can't claim USB device [051d:0002]: could not detach kernel driver from interface 0: Operation not permitted
Driver failed to start (exit status=1)
</pre>
 
*Se non è possibile riavviare o staccare il cavo, provare le seguenti operazioni:
 
sudo rmmod usbhid
sudo rmmod uhci_hcd
sudo modprobe uhci_hcd
sudo modprobe usbhid
 
sudo udevadm trigger
 
* Riprovare
sudo upsdrvctl start
 
* Se non va (perchè il device non è posseduto dal gruppo nut), lanciare (si sistemerà al reinserimento del cavo o al reboot)
sudo upsdrvctl -u root start
 
* Se non va ancora, verificare i dettagli dell'ups (in questo caso 003 005):
lsusb | grep American
Bus 003 Device 005: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
 
* Cambiare l'owner del device usb:
chown nut: /dev/bus/usb/003/005
 
* Riprovare
sudo upsdrvctl start
 
===Per UPS APC Seriale===
<pre>
cat | sudo tee -a /etc/nut/ups.conf > /dev/null <<EOFile
[$UPS_NAME]
     driver = apcsmart
     driver = apcsmart
     port = /dev/ttyS0
     port = /dev/ttyS0
EOFile
</pre>
</pre>


Line 23: Line 82:
  sudo gpasswd -a nut dialout
  sudo gpasswd -a nut dialout


** Per altri, vedi [http://www.networkupstools.org/compat/stable.html NUT hardware compatibility list]
=== Altri UPS===
Per altri modelli di UPS, vedi [http://www.networkupstools.org/compat/stable.html NUT hardware compatibility list]
 
==Configurazione server==
 
* Stoppare i servizi,
sudo systemctl stop nut-server nut-client
 
* Killare l'eventuale daemon attivo:
sudo killall upsd


* Avviare il demone per controllare il dialogo con l'UPS:
* Avviare il demone per controllare il dialogo con l'UPS:
  sudo upsdrvctl start
  sudo upsdrvctl start


Line 31: Line 100:
  Network UPS Tools (version 2.2.2) - APC Smart protocol driver
  Network UPS Tools (version 2.2.2) - APC Smart protocol driver
         Driver version 1.99.8, command table version 2.0
         Driver version 1.99.8, command table version 2.0
 
  Detected Smart-UPS 620    [NS0018141441] on /dev/ttyS0
* Se non dovesse funzionare, provare a scollegare e ricollegare il cavo di collegamento dell'ups, per caricare i moduli necessari.
 
  sudo upsdrvctl stop


* Configurare il demone:
* Configurare il demone:
sudoedit /etc/nut/upsd.conf


ACL all 0.0.0.0/0
<pre>
ACL localhost 127.0.0.1/32
cat | sudo tee -a /etc/nut/upsd.conf > /dev/null <<EOFile
ACL client_host 192.168.6.254/32
LISTEN 127.0.0.1 3493
ACCEPT localhost
LISTEN ${UPS_IP} 3493
ACCEPT client_host
EOFile
REJECT all
</pre>


* Configurare gli utenti e le password:
* Configurare gli utenti e le password:
sudoedit /etc/nut/upsd.users
<pre>
 
cat | sudo tee -a /etc/nut/upsd.users > /dev/null <<EOFile
[local_mon]
[local_mon]                 #username
    password = PASSWORD_HERE
    password = $UPS_PASS    #password
    allowfrom = localhost
    actions = set            #permissions for upsrw -s
    upsmon master
    instcmds = ALL          #permissions for upscmd
 
    upsmon master           #role
[client_mon]
EOFile
    password = PASSWORD_HERE
</pre>
    allowfrom = client.host.dom
    upsmon master


* Configurare il monitor:
* Configurare il monitor:


sudoedit /etc/nut/upsmon.conf
<pre>
 
sudo sed -i -e "s/# MONITOR myups@localhost 1 upsmon pass master.*/MONITOR ${UPS_NAME}@localhost 1 local_mon ${UPS_PASS} master/" /etc/nut/upsmon.conf
MONITOR apc_smartups_620@localhost 1 local_mon PASSWORD_HERE master
</pre>
POWERDOWNFLAG /etc/killpower
* Riavviare il tutto
SHUTDOWNCMD "/sbin/shutdown -h now"
 
* Sistemare le permission:
sudo chown root:nut /etc/nut/*
sudo chmod 640 /etc/nut/*
 
* Abilitare i demoni all'avvio:
sudoedit /etc/default/nut
 
...
START_UPSD=yes
...
START_UPSMON=yes
 
* Riavviare il tutto:
 
sudo invoke-rc.d nut  restart
Restarting Network UPS Tools: upsdrvctl upsdrvctl upsd upsmon.


sudo systemctl restart nut-server nut-client
* Nei log:
* Nei log:
  sudo tail -f /var/log/syslog
  sudo tail -f /var/log/syslog
Line 94: Line 145:
Apr 12 13:54:18 pubserver upsd[32073]: Client local_mon@127.0.0.1 logged into UPS [apc_smartups_620]
Apr 12 13:54:18 pubserver upsd[32073]: Client local_mon@127.0.0.1 logged into UPS [apc_smartups_620]
</pre>
</pre>
==Test dell'UPS==


* Per leggere i dati dall'ups:
* Per leggere i dati dall'ups:
  upsc apc_smartups_620
  upsc $UPS_NAME


<pre>
<pre>
Line 136: Line 189:
ups.test.result: NO
ups.test.result: NO
</pre>
</pre>
==Impostazione dei parametri hardware per l'ups==
* '''ATTENZIONE: CONTROLLARE SEMPRE, ANCHE SE SI RICEVER "OK", CHE LA VARIABILE SIA STATA SETTATA'''
* I parametri di
  Type: ENUM
:si possono impostare solo ad uno dei valori elencati
* Elencare i parametri configurabili
upsrw $UPS_NAME
: si ottiene una lista del tipo:
<pre>
[battery.alarm.threshold]
Battery alarm threshold
Type: ENUM
Option: "0"
Option: "T"
Option: "L" SELECTED
Option: "N"
[battery.charge.restart]
Minimum battery level for restart after power off (percent)
Type: ENUM
Option: "00" SELECTED
Option: "15"
Option: "50"
Option: "90"
...
</pre>
===Parametri presenti su APC BackUPS e APC SmartUPS===
* Nel caso di non si riescano a cambiare, o non sono disponibili dei valori, si possono gestire a livello di drivers:
http://www.networkupstools.org/docs/man/apcsmart.html
driver = usbhid-ups
port = auto
ignorelb
override.battery.charge.low = 30
override.battery.runtime.low = 500
* '''battery.charge.low''': indica a che percentuale di carica batteria rimasta iniziare lo shutdown
* Impostarla con
upsrw -u local_mon -p $UPS_PASS -s battery.charge.low=50 $UPS_NAME
* Controllarlo con
upsc $UPS_NAME battery.charge.low
50
* '''battery.runtime.low''': indica a quanti secondi di batteria rimasta iniziare lo shutdown
* Impostarla con
upsrw -u local_mon -p $UPS_PASS -s battery.runtime.low=300 $UPS_NAME
* Controllarlo con
upsc $UPS_NAME battery.runtime.low
300
* '''ups.delay.shutdown''': indica dopo quanto tempo verrà tolta la corrente. ATTENZIONE: se si riaccendono manualmente le macchine dopo uno shutdown, la corrente verrà di nuovo tolta dopo questo tempo !!!
* Impostare:
upsrw -u local_mon -p $UPS_PASS -s ups.delay.shutdown=60 $UPS_NAME
* Controllare:
upsc $UPS_NAME ups.delay.shutdown
60
* '''ups.delay.start''': indica dopo quanto tempo verrà ridata corrente.
* Impostare (se non accetta 60, usare 060):
upsrw -u local_mon -p $UPS_PASS -s ups.delay.start=60 $UPS_NAME
* Controllare
upsc $UPS_NAME ups.delay.start
60
===Parametri presenti solo su APC SmartUPS===
* '''ups.id''': indica il nome dell'ups, la su descrizione (da apporre sull'etichetta)
* Impostarla
upsrw -u local_mon -s ups.id="UPS001" $UPS_NAME
* Controllare
upsc $UPS_NAME ups.id
UPS001
* '''battery.charge.restart''': indica quanto la batteria deve essere carica, prima di ridare corrente. Per evitare che quando si riaccendono le macchine, se dovesse rimancare la corrente, ci sia abbastanza tempo per rifare shutdown
* Impostare:
upsrw -u local_mon -s battery.charge.restart=15 $UPS_NAME
* Controllare:
upsc $UPS_NAME battery.charge.restart
15
==Interfaccia Web==
Con questa interfacia web si puà vedere lo stato dell'ups e inviargli dei comandi.
apt-get install nut-cgi
* Impostare l'ups da monitorare (quello locale):
vi /etc/nut/hosts.conf
MONITOR apc_smartups_3000_xl@localhost "LOCAL UPS"
* Seguire le istruzuioni nel file e decommentare la riga:
vi /etc/nut/upsset.conf
I_HAVE_SECURED_MY_CGI_DIRECTORY
* Per acedere ai comandi e settare le variabili (con le credenziali indicate in /etc/nut/upsd.users):
http://ups.local/cgi-bin/nut/upsset.cgi
* Per vedere lo stato dell'UPS:
http://ups.local/cgi-bin/nut/upsstats.cgi
===Riferimenti===
*[https://www.howtoraspberry.com/2020/11/how-to-monitor-ups-with-raspberry-pi/ How to Monitor UPS with Raspberry Pi - How to Raspberry]


==Client Linux collegato in rete==
==Client Linux collegato in rete==


===Configurazione Accesso sul Server===
export CLIENT_NAME="firemen"
export CLIENT_DOM="cross.priv"
export CLIENT_IP="192.168.0.254"
export CLIENT_PASS="jeeR9ied"
export UPS_NAME="apc_smartups_1500_rm"
export UPS_SERVER="crosrv01.${CLIENT_DOM}"
* Configurare il demone:
sudo sed -i'' -e"/^ACCEPT/i\ACL $CLIENT_NAME ${CLIENT_IP}/32" /etc/nut/upsd.conf
sudo sed -i'' -e"/^REJECT/i\ACCEPT $CLIENT_NAME" /etc/nut/upsd.conf
A mano:
<pre>
cat | sudo tee /etc/nut/upsd.conf > /dev/null <<EOFile
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACL $CLIENT_NAME ${CLIENT_IP}/32
ACCEPT localhost
ACCEPT $CLIENT_NAME
REJECT all
EOFile
</pre>
* Configurare gli utenti e le password:
<pre>
cat | sudo tee -a /etc/nut/upsd.users > /dev/null <<EOFile
[${CLIENT_NAME}]
    password = $CLIENT_PASS
    allowfrom = ${CLIENT_NAME}.$CLIENT_DOM
    upsmon master
EOFile
</pre>
sudo invoke-rc.d nut restart
===Configurazione Client===
====Debian<9====
* Installare
* Installare
  sudo apt-get install nut
  sudo aptitude install nut


* Configurare SOLO il monitor
* Configurare SOLO il monitor
sudoedit /etc/nut/upsmon.conf


MONITOR apc_smartups_620@server.host.dom 1 client_mon PASSWORD_HERE slave
<pre>
POWERDOWNFLAG /etc/killpower
cat | sudo tee /etc/nut/upsmon.conf > /dev/null <<EOFile
SHUTDOWNCMD "/sbin/shutdown -h now"
MONITOR ${UPS_NAME}@${UPS_SERVER} 1 ${CLIENT_NAME} ${CLIENT_PASS} slave
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
EOFile
</pre>
 
* Impostare le permission
sudo chown root:nut /etc/nut/upsmon.conf
sudo chmod 640 /etc/nut/upsmon.conf


* Impostare l'autostart per il monitor:
* Impostare l'autostart per il monitor:


  sudo perl -pi -e 's{^START_UPSMON=no$}{START_UPSMON=yes}' /etc/default/nut && \
  sudo sed -i 's/^START_UPSMON=no/START_UPSMON=yes/' /etc/default/nut && \
  echo "702612de8e9e1a34c35cd7d4b05baf30  /etc/default/nut" | md5sum --check
  echo "702612de8e9e1a34c35cd7d4b05baf30  /etc/default/nut" | md5sum --check


O a mano:
* Riavviare il monitor
  sudoedit /etc/default/nut
sudo invoke-rc.d nut restart
* Vedere se fa login:
upsc -l $UPS_SERVER
 
* Vedere se legge i dati:
  upsc  ${UPS_NAME}@${UPS_SERVER} ups.model
 
====Debian>=9====
 
* Installare
apt-get install nut-client


...
* Configurare SOLO il monitor
START_UPSMON=yes
...


<pre>
* Vedere se fa login:
cat | sudo tee /etc/nut/upsmon.conf > /dev/null <<EOFile
  upsc -l server.host.dom
MONITOR ${UPS_NAME}@${UPS_SERVER} 1 ${CLIENT_NAME} ${CLIENT_PASS} slave
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
EOFile
</pre>
 
* Configurare il daemon:
  vi /etc/nut/nut.conf
 
MODE=netclient


* Vedere se legge i dati:
* Riavviare:
  upsc apc_smartups_620@server.host.dom
  systemctl restart nut-client.service
  systemctl status nut-client.service


* Riavviare
* Sul server verificare che il client sia connesso:
  sudo invoke-rc.d nut restart
  upsc -c apc_smartups_3000_xl@localhost


==Client Windows collegato in rete==
==Client Windows collegato in rete==
Line 184: Line 430:
==Riferimenti==
==Riferimenti==
*[http://www.howtoforge.com/monitoring-ups-power-status-with-nut-on-opensuse10.3 Monitoring UPS Power Status Using Network UPS Tools (NUT) 2.2.0 on Multiple OpenSuSE 10.3 Servers | HowtoForge - Linux Howtos and Tutorials]
*[http://www.howtoforge.com/monitoring-ups-power-status-with-nut-on-opensuse10.3 Monitoring UPS Power Status Using Network UPS Tools (NUT) 2.2.0 on Multiple OpenSuSE 10.3 Servers | HowtoForge - Linux Howtos and Tutorials]
*[]
*[http://blog.shadypixel.com/monitoring-a-ups-with-nut-on-debian-or-ubuntu-linux/ Monitoring a UPS with nut on Debian or Ubuntu Linux | Random Bits]
*[http://blog.shadypixel.com/monitoring-a-ups-with-nut-on-debian-or-ubuntu-linux/ Monitoring a UPS with nut on Debian or Ubuntu Linux | Random Bits]
*[http://www.networkupstools.org/doc/2.2.0/data-room.html Network UPS Tools: Documentation: README]
*[http://www.networkupstools.org/doc/2.2.0/data-room.html Network UPS Tools: Documentation: README]
*[http://opensource.mgeups.com/howto.htm MGE UPS SYSTEMS - OpenSource > MGE and NUT How-To]
*[http://opensource.mgeups.com/howto.htm MGE UPS SYSTEMS - OpenSource > MGE and NUT How-To]
*[http://www.mail-archive.com/linux-usb-users@lists.sourceforge.net/msg17968.html Re: [Linux-usb-users] "unplugging" USB device by software?]
*[http://lists.alioth.debian.org/pipermail/nut-upsuser/2009-April/004969.html [Nut-upsuser] Can't claim USB device]

Latest revision as of 10:16, 13 October 2023

Server con UPS collegato

Installazione

  • Installazione software
sudo -i
apt install nut pwgen

Configurazione generale

export UPS_NAME="apc_smartups_1500_rm"
export UPS_PASS="$(pwgen -B -c -1)"
export UPS_IP="192.168.0.102"
  • Impostare la modalità di esecuzione per un solo UPS:
export UPS_MODE=standalone
  • Oppure per un server che controlla anche altri ups
export UPS_MODE=netserver
  • Configurare la modalità:
sudo sed -i /etc/nut/nut.conf -e "s/^MODE=none/MODE=${UPS_MODE}/"

Configurazione UPS APC USB

cat | sudo tee -a /etc/nut/ups.conf > /dev/null <<EOFile
[$UPS_NAME]
    driver = usbhid-ups
    port = auto
EOFile
  • Avviare il driver
sudo upsdrvctl start
  • Se si riceve l'errore seguente, togliere e rimettere il cavo USB, oppure riavviare, per far settare le permission sul device della porta usb:


Network UPS Tools - UPS driver controller 2.4.3
Network UPS Tools - Generic HID driver 0.34 (2.4.3)
USB communication driver 0.31

Can't claim USB device [051d:0002]: could not detach kernel driver from interface 0: Operation not permitted
Driver failed to start (exit status=1)
  • Se non è possibile riavviare o staccare il cavo, provare le seguenti operazioni:
sudo rmmod usbhid
sudo rmmod uhci_hcd
sudo modprobe uhci_hcd
sudo modprobe usbhid
sudo udevadm trigger
  • Riprovare
sudo upsdrvctl start
  • Se non va (perchè il device non è posseduto dal gruppo nut), lanciare (si sistemerà al reinserimento del cavo o al reboot)
sudo upsdrvctl -u root start
  • Se non va ancora, verificare i dettagli dell'ups (in questo caso 003 005):
lsusb | grep American
Bus 003 Device 005: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
  • Cambiare l'owner del device usb:
chown nut: /dev/bus/usb/003/005
  • Riprovare
sudo upsdrvctl start

Per UPS APC Seriale

cat | sudo tee -a /etc/nut/ups.conf > /dev/null <<EOFile
[$UPS_NAME]
    driver = apcsmart
    port = /dev/ttyS0
EOFile
  • Aggiungere l'utente nut al gruppo dialout, per poter usare la seriale:
sudo gpasswd -a nut dialout

Altri UPS

Per altri modelli di UPS, vedi NUT hardware compatibility list

Configurazione server

  • Stoppare i servizi,
sudo systemctl stop nut-server nut-client
  • Killare l'eventuale daemon attivo:
sudo killall upsd
  • Avviare il demone per controllare il dialogo con l'UPS:
sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.2.2
Network UPS Tools (version 2.2.2) - APC Smart protocol driver
        Driver version 1.99.8, command table version 2.0
  • Se non dovesse funzionare, provare a scollegare e ricollegare il cavo di collegamento dell'ups, per caricare i moduli necessari.
sudo upsdrvctl stop
  • Configurare il demone:
cat | sudo tee -a /etc/nut/upsd.conf > /dev/null <<EOFile
LISTEN 127.0.0.1 3493
LISTEN ${UPS_IP} 3493
EOFile
  • Configurare gli utenti e le password:
cat | sudo tee -a /etc/nut/upsd.users > /dev/null <<EOFile
[local_mon]                  #username
    password = $UPS_PASS     #password
    actions = set            #permissions for upsrw -s
    instcmds = ALL           #permissions for upscmd
    upsmon master            #role
EOFile
  • Configurare il monitor:
sudo sed -i -e "s/# MONITOR myups@localhost 1 upsmon pass master.*/MONITOR ${UPS_NAME}@localhost 1 local_mon ${UPS_PASS} master/" /etc/nut/upsmon.conf
  • Riavviare il tutto
sudo systemctl restart nut-server nut-client
  • Nei log:
sudo tail -f /var/log/syslog
Apr 12 13:54:18 pubserver apcsmart[32070]: Startup successful
Apr 12 13:54:18 pubserver upsd[32071]: listening on 0.0.0.0 port 3493
Apr 12 13:54:18 pubserver upsd[32071]: Connected to UPS [apc_smartups_620]: apcsmart-apc_smartups_620
Apr 12 13:54:18 pubserver upsd[32073]: Startup successful
Apr 12 13:54:18 pubserver upsmon[32075]: Startup successful
Apr 12 13:54:18 pubserver upsd[32073]: Connection from 127.0.0.1
Apr 12 13:54:18 pubserver upsd[32073]: Client local_mon@127.0.0.1 logged into UPS [apc_smartups_620]

Test dell'UPS

  • Per leggere i dati dall'ups:
upsc $UPS_NAME
battery.alarm.threshold: L
battery.charge: 100.0
battery.charge.restart: 00
battery.date: 02/05/02
battery.runtime: 1920
battery.runtime.low: 120
battery.voltage: 13.85
battery.voltage.nominal: 012
driver.name: apcsmart
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyS0
driver.version: 2.2.2
driver.version.internal: 1.99.8
input.frequency: 50.00
input.quality: FF
input.sensitivity: H
input.transfer.high: 253
input.transfer.low: 208
input.transfer.reason: T
input.voltage: 227.5
input.voltage.maximum: 227.5
input.voltage.minimum: 224.6
output.voltage: 227.5
output.voltage.nominal: 230
ups.delay.shutdown: 180
ups.delay.start: 000
ups.firmware: 22.5.I
ups.id: UPS_IDEN
ups.load: 031.8
ups.mfr: APC
ups.mfr.date: 04/25/00
ups.model: Smart-UPS 620   
ups.serial: NS0018141441
ups.status: OL
ups.test.interval: 1209600
ups.test.result: NO

Impostazione dei parametri hardware per l'ups

  • ATTENZIONE: CONTROLLARE SEMPRE, ANCHE SE SI RICEVER "OK", CHE LA VARIABILE SIA STATA SETTATA


  • I parametri di
 Type: ENUM
si possono impostare solo ad uno dei valori elencati
  • Elencare i parametri configurabili
upsrw $UPS_NAME
si ottiene una lista del tipo:
[battery.alarm.threshold]
Battery alarm threshold
Type: ENUM
Option: "0"
Option: "T"
Option: "L" SELECTED
Option: "N"

[battery.charge.restart]
Minimum battery level for restart after power off (percent)
Type: ENUM
Option: "00" SELECTED
Option: "15"
Option: "50"
Option: "90"
...

Parametri presenti su APC BackUPS e APC SmartUPS

  • Nel caso di non si riescano a cambiare, o non sono disponibili dei valori, si possono gestire a livello di drivers:
http://www.networkupstools.org/docs/man/apcsmart.html
driver = usbhid-ups
port = auto
ignorelb
override.battery.charge.low = 30
override.battery.runtime.low = 500


  • battery.charge.low: indica a che percentuale di carica batteria rimasta iniziare lo shutdown
  • Impostarla con
upsrw -u local_mon -p $UPS_PASS -s battery.charge.low=50 $UPS_NAME
  • Controllarlo con
upsc $UPS_NAME battery.charge.low
50
  • battery.runtime.low: indica a quanti secondi di batteria rimasta iniziare lo shutdown
  • Impostarla con
upsrw -u local_mon -p $UPS_PASS -s battery.runtime.low=300 $UPS_NAME
  • Controllarlo con
upsc $UPS_NAME battery.runtime.low
300
  • ups.delay.shutdown: indica dopo quanto tempo verrà tolta la corrente. ATTENZIONE: se si riaccendono manualmente le macchine dopo uno shutdown, la corrente verrà di nuovo tolta dopo questo tempo !!!
  • Impostare:
upsrw -u local_mon -p $UPS_PASS -s ups.delay.shutdown=60 $UPS_NAME
  • Controllare:
upsc $UPS_NAME ups.delay.shutdown
60
  • ups.delay.start: indica dopo quanto tempo verrà ridata corrente.
  • Impostare (se non accetta 60, usare 060):
upsrw -u local_mon -p $UPS_PASS -s ups.delay.start=60 $UPS_NAME
  • Controllare
upsc $UPS_NAME ups.delay.start
60

Parametri presenti solo su APC SmartUPS

  • ups.id: indica il nome dell'ups, la su descrizione (da apporre sull'etichetta)
  • Impostarla
upsrw -u local_mon -s ups.id="UPS001" $UPS_NAME
  • Controllare
upsc $UPS_NAME ups.id
UPS001
  • battery.charge.restart: indica quanto la batteria deve essere carica, prima di ridare corrente. Per evitare che quando si riaccendono le macchine, se dovesse rimancare la corrente, ci sia abbastanza tempo per rifare shutdown
  • Impostare:
upsrw -u local_mon -s battery.charge.restart=15 $UPS_NAME
  • Controllare:
upsc $UPS_NAME battery.charge.restart 
15


Interfaccia Web

Con questa interfacia web si puà vedere lo stato dell'ups e inviargli dei comandi.

apt-get install nut-cgi
  • Impostare l'ups da monitorare (quello locale):
vi /etc/nut/hosts.conf
MONITOR apc_smartups_3000_xl@localhost "LOCAL UPS"
  • Seguire le istruzuioni nel file e decommentare la riga:
vi /etc/nut/upsset.conf
I_HAVE_SECURED_MY_CGI_DIRECTORY
  • Per acedere ai comandi e settare le variabili (con le credenziali indicate in /etc/nut/upsd.users):
http://ups.local/cgi-bin/nut/upsset.cgi
  • Per vedere lo stato dell'UPS:
http://ups.local/cgi-bin/nut/upsstats.cgi

Riferimenti


Client Linux collegato in rete

Configurazione Accesso sul Server

export CLIENT_NAME="firemen"
export CLIENT_DOM="cross.priv"
export CLIENT_IP="192.168.0.254"
export CLIENT_PASS="jeeR9ied"
export UPS_NAME="apc_smartups_1500_rm"
export UPS_SERVER="crosrv01.${CLIENT_DOM}"

  • Configurare il demone:
sudo sed -i -e"/^ACCEPT/i\ACL $CLIENT_NAME ${CLIENT_IP}/32" /etc/nut/upsd.conf
sudo sed -i -e"/^REJECT/i\ACCEPT $CLIENT_NAME" /etc/nut/upsd.conf

A mano:

cat | sudo tee /etc/nut/upsd.conf > /dev/null <<EOFile
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACL $CLIENT_NAME ${CLIENT_IP}/32
ACCEPT localhost
ACCEPT $CLIENT_NAME
REJECT all
EOFile
  • Configurare gli utenti e le password:
cat | sudo tee -a /etc/nut/upsd.users > /dev/null <<EOFile
[${CLIENT_NAME}]
    password = $CLIENT_PASS
    allowfrom = ${CLIENT_NAME}.$CLIENT_DOM
    upsmon master
EOFile
sudo invoke-rc.d nut restart

Configurazione Client

Debian<9

  • Installare
sudo aptitude install nut
  • Configurare SOLO il monitor
cat | sudo tee /etc/nut/upsmon.conf > /dev/null <<EOFile
MONITOR ${UPS_NAME}@${UPS_SERVER} 1 ${CLIENT_NAME} ${CLIENT_PASS} slave
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
EOFile
  • Impostare le permission
sudo chown root:nut /etc/nut/upsmon.conf
sudo chmod 640 /etc/nut/upsmon.conf
  • Impostare l'autostart per il monitor:
sudo sed -i 's/^START_UPSMON=no/START_UPSMON=yes/' /etc/default/nut && \
echo "702612de8e9e1a34c35cd7d4b05baf30  /etc/default/nut" | md5sum --check
  • Riavviare il monitor
sudo invoke-rc.d nut restart
  • Vedere se fa login:
upsc -l $UPS_SERVER
  • Vedere se legge i dati:
upsc  ${UPS_NAME}@${UPS_SERVER} ups.model

Debian>=9

  • Installare
apt-get install nut-client
  • Configurare SOLO il monitor
cat | sudo tee /etc/nut/upsmon.conf > /dev/null <<EOFile
MONITOR ${UPS_NAME}@${UPS_SERVER} 1 ${CLIENT_NAME} ${CLIENT_PASS} slave
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
EOFile
  • Configurare il daemon:
vi /etc/nut/nut.conf
MODE=netclient
  • Riavviare:
systemctl restart nut-client.service
systemctl status nut-client.service
  • Sul server verificare che il client sia connesso:
upsc -c apc_smartups_3000_xl@localhost

Client Windows collegato in rete

  • Lanciare il TOOL
  • Installare come servizio
  • Editare la configurazione, aggiungendo la sola riga:
 MONITOR apc_smartups_620@server.host.dom 1 client_win PASSWORD_HERE slave

Riferimenti