Noodstroomvoorziening voor de Server (UPS)

Netstroom is erg betrouwbaar in Nederland. Omdat de server nu voortdurend wordt gebruikt voor de opslag van de gegevens thuis, is het nodig ervoor te zorgen dat de stroomvoorziening van de server niet onverhoeds wordt onderbroken. Stroomuitval kan leiden tot schade aan de gegevens. Daarom wordt de voeding van de server geregeld via een UPS.

We zullen NUT gebruiken als onze software voor het beheer van de UPS:

sudo apt install nut

Controleer de NUT hardware-compatibiliteitslijst om erachter te komen welk stuurprogramma voor uw UPS werkt. Voor mijn APC UPS is de juiste driver “usbhid-ups”. Het is ook vereist om de poort waarmee de ups zijn verbonden te identificeren en dus:

lsusb

Verwachte output is:

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 003: ID 17ef:602e Lenovo
Bus 004 Device 002: ID 17ef:602d Lenovo
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Zoek de lijn waar de UPS wordt genoemd. Let op de naam van de combinatie UPS en apparaat/0002 voor de USB-poort die wordt gebruikt. Het apparaat wordt geïdentificeerd door /dev/bus/usb/005/002 wat nodig is in de volgende stap.

Pas de het configuratie bestand aan:

sudo nano /etc/nut/ups.conf

Voeg aan het einde van het bestand de volgende regels toe:

maxretry = 3
[ups]
        driver = usbhid-ups
        port = /dev/bus/usb/005/002
        desc = "APC CS350VA"

Sla het bestand op en kopieer het naar de juiste locatie:

sudo cp /lib/udev/rules.d/50-udev-default.rules /etc/udev/rules.d/

Dan reboor het systeem:

sudo reboot

Set up /var/run/nut:

sudo mkdir /var/run/nut

Neem waar dat de directory mogelijk reeds bestaat. Pas eigendom en rechten toch aan:

sudo chown root:nut /var/run/nut
sudo chmod 770 /var/run/nut
sudo chown root:nut /etc/nut/upsd.conf /etc/nut/upsd.users /etc/nut/hosts.conf
sudo chmod 0640 /etc/nut/upsd.conf /etc/nut/upsd.users /etc/nut/hosts.conf

Pas het NUT deamon configuratie bestand aan:

sudo nano /etc/nut/upsd.conf

Voeg de volgende regels toe aan het einde van het bestand:

LISTEN testserver
ACCEPT testserver

Test het ups.conf bestand:

sudo upsdrvctl start

Normale uitvoer:

Network UPS Tools - UPS driver controller 2.6.3
Network UPS Tools - Generic HID driver 0.35 (2.6.3)
USB communication driver 0.31
Using subdriver: CyberPower HID 0.3

Herlaadt deamon:
sudo upsd -c reload

Maak een nieuwe gebruiker in Ubuntu server met de naam en het wachtwoord hetzelfde als gemaakt in /etc/nut/upsd.users. WebMin kan worden gebruikt om dit voor elkaar te krijgen. Zorg ervoor dat deze gebruiker (monuser) tot de groep ‘root’ behoort

Vervolgens moeten we enkele gebruikers instellen om toegang te krijgen tot de informatie en wijzigingen aan te brengen.

sudo nano /etc/nut/upsd.users

Voeg aan het einde van het bestand de volgende regels toe:

#
#upsmon master
[monuser]
	password = paswoord
	actions = SET FSD
	instcmds = ALL
	upsmon master
# or upsmon slave
[monuserslave]
	password = paswoord
	upsmon slave

Sla het bestand op en open het UPS Monitor configuratie bestand:

sudo nano /etc/nut/upsmon.conf

Voeg de volgende regel toe:

MONITOR ups@testserver:3493 1 monuser paswoord master

Sla het bestand op. Nu moeten we NUT instellen om in stand-alone modus te draaien. Open het volgende bestand:

sudo nano /etc/nut/nut.conf

en voeg de volgende regel aan het bestand toe:

MODE=standalone

Sla het bestand op en herlaad de cliënt::

sudo service nut-client reload

Nu kunnen we zien dat het werkt door:

sudo upsc ups@testserver:3493

Normale uitvoer zijn zijn:

Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50

Installeren van de grafisch display voor status van de UPS:

Om de status van de UPS te kunnen bekijken is het mogelijk om een webpagina met relevante informatie te bekijken. Installeer de software voor deze functie:

sudo apt install nut-cgi
Dan pas het configuratie bestand aan:
sudo nano /etc/nut/hosts.conf
Voeg de volgende regel toe:

MONITOR ups@testserver:3493 'APC UPS on Hover'

Sla het bestand op en update Apache:
sudo a2enmod cgi
sudo service apache2 restart
Dan kan je de rapportage bekijken via:
http://192.168.1.100/cgi-bin/nut/upsstats.cgi

De UPS besturen

Het is mogelijk om commando’s naar de ups te sturen. Zie de volgende lijst met mogelijke opdrachten. Toon de beschikbare commando’s:

sudo upscmd -l ups@testserver:3493

beeper.disable - Disable the UPS beeper
beeper.enable - Enable the UPS beeper
beeper.mute - Temporarily mute the UPS beeper
beeper.off - Obsolete (use beeper.disable or beeper.mute)
beeper.on - Obsolete (use beeper.enable)
load.off - Turn off the load immediately
load.off.delay - Turn off the load with a delay (seconds)
load.on - Turn on the load immediately
load.on.delay - Turn on the load with a delay (seconds)
shutdown.reboot - Shut down the load briefly while rebooting the UPS
shutdown.return - Turn off the load and return when power is back
shutdown.stayoff - Turn off the load and remain off
shutdown.stop - Stop a shutdown in progress
test.battery.start.deep - Start a deep battery test
test.battery.start.quick - Start a quick battery test
test.battery.stop - Stop the battery test
test.panel.start - Start testing the UPS panel
test.panel.stop - Stop a UPS panel test

Het is mogelijk de beeper in de UPS uit te schakelen door:
sudo upscmd ups@testserver:3493 beeper.disable

Notice that “ups@testserver:3493” is the full address to access the UPS. A username “monuser”and passwoord “paswoord” will need to be specified.
This looks like this

system@testserver:~$ sudo upscmd ups@testserver:3493 beeper.disable
Username (root): monuser
Password:
OK
system@testserver:~$

or, if you want in one go on the command line:

sudo upscmd -u monuser -p paswoord ups@testserver:3493 beeper.disable

Aanpassen van variabelen in de UPS

upsrw biedt je de mogelijkheid om de lees- / schrijfvariabelen in uw UPS te bekijken en te wijzigen. Het stuurt via de server upsd commando’s naar uw driver, die de hardware voor u configureert.

sudo upsrw ups@testserver:3493

Mogelijke output ziet er als volgt uit:

[battery.charge.low]
Remaining battery level when UPS switches to LB (percent)
Type: STRING
Maximum length: 10
Value: 10

[battery.runtime.low]
Remaining battery runtime when UPS switches to LB (seconds)
Type: STRING
Maximum length: 10
Value: 120

[input.sensitivity]
Input power sensitivity
Type: STRING
Maximum length: 10
Value: medium

[input.transfer.high]
High voltage transfer point (V)
Type: STRING
Maximum length: 10
Value: 266

[input.transfer.low]
Low voltage transfer point (V)
Type: STRING
Maximum length: 10
Value: 180

[ups.delay.shutdown]
Interval to wait after shutdown with delay command (seconds)
Type: STRING
Maximum length: 10
Value: 20

[ups.delay.start]
Interval to wait before (re)starting the load (seconds)
Type: STRING
Maximum length: 10
Value: 30

Om een waarde te veranderen in de UPS:

sudo upsrw -u monuser -p paswoord -s input.transfer.high=266 ups@testserver:3493

De reactie op dit commando zou OK moeten zijn. Als er geen reactie volgt kan de variabele niet worden aangepast.

Laatst bijgewerkt op 4 maart 2019

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *