UbuntuServerの停電対策を行う
リモートワークへの対応で常時稼働させる必要が出てきたUbuntuServerに停電対策を行うことにした
設定メモ
APC(現在のSchneider Electric)のSmartUPSを接続する
今回は余っていたSmartUPSをUSBで接続した
┌─╼ | up 1 day, 22:14, 1 user | [~]
└────╼ $ lsusb
Bus 001 Device 007: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
apcupsdを使う場合
Apcupsd UPS control software : SourceForge
Linuxだけでなく Windows / macOS / BSD系 も連携可能
apcupsdをインストールする
┌─╼ | up 1 day, 22:20, 1 user | [~]
└────╼ $ sudo apt-get install apcupsd
設定ファイルを書き換える
┌─╼ | up 1 day, 22:28, 1 user | [~]
└────╼ $ sudo nano /etc/apcupsd/apcupsd.conf
UPSCABLE usb
UPSTYPE usb
DEVICE
LOCKFILE /var/lock
SCRIPTDIR /etc/apcupsd
PWRFAILDIR /etc/apcupsd
NOLOGINDIR /etc
ONBATTERYDELAY 6
BATTERYLEVEL 5
MINUTES 3
TIMEOUT 120
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 10
UPSCLASS standalone
UPSMODE disable
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0
書き換えた設定を反映させる
┌─╼ | up 1 day, 22:38, 1 user | [~]
└────╼ $ sudo nano /etc/default/apcupsd
ISCONFIGURED=yes
┌─╼ | up 1 day, 22:40, 1 user | [~]
└────╼ $ sudo /etc/init.d/apcupsd restart
Restarting apcupsd (via systemctl): apcupsd.service.
UPSの状態を確認する
┌─╼ | up 1 day, 22:41, 1 user | [~]
└────╼ $ apcaccess status
APC : 001,043,1010
DATE : 2021-04-23 07:09:48 +0900
HOSTNAME : hp-elite
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : hp-elite
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2021-04-23 07:09:45 +0900
MODEL : Smart-UPS 1000
STATUS : ONLINE
LINEV : 100.8 Volts
LOADPCT : 8.4 Percent
BCHARGE : 100.0 Percent
TIMELEFT : 104.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 120 Seconds
OUTPUTV : 101.5 Volts
SENSE : High
DWAKE : -1 Seconds
DSHUTD : 90 Seconds
LOTRANS : 92.0 Volts
HITRANS : 108.0 Volts
RETPCT : 0.0 Percent
ITEMP : 30.6 C
ALARMDEL : 30 Seconds
BATTV : 27.4 Volts
LINEFREQ : 60.2 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI : 14 days
STATFLAG : 0x05000008
MANDATE : 2012-07-19
SERIALNO : AS1229233588
BATTDATE : 2012-07-19
NOMOUTV : 100 Volts
NOMBATTV : 24.0 Volts
FIRMWARE : 600.18.A USB FW:11.
END APC : 2021-04-23 07:10:00 +0900
NUT(Network UPS Tools)を使う場合
apcupsdと同様にLinuxだけでなく Windows / macOS / BSD系 も連携可能
大手NASメーカー(Synology、QNAP、Netgearなど)も標準のUPSサポートとしてNUTを使っているようなので、それらとも連携できる
NUTをインストールする
┌─╼ | up 2:35, 1 user | [~]
└────╼ $ sudo apt-get install nut
設定ファイルを書き換える
┌─╼ | up 2:58, 1 user | [~]
└────╼ $ sudo nano /etc/nut/ups.conf
[smartups]
driver = usbhid-ups
port = auto
┌─╼ | up 3:02, 1 user | [~]
└────╼ $ sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.7.4
Network UPS Tools - Generic HID driver 0.41 (2.7.4)
USB communication driver 0.33
Using subdriver: APC HID 0.96
┌─╼ | up 3:07, 1 user | [~]
└────╼ $ sudo nano /etc/nut/nut.conf
MODE=netserver
┌─╼ | up 3:10, 1 user | [~]
└────╼ $ sudo nano /etc/nut/upsd.conf
LISTEN 127.0.0.1 3493
LISTEN ::1 3493
┌─╼ | up 3:12, 1 user | [~]
└────╼ $ sudo nano /etc/nut/upsd.users
[upsmaster]
password = Password1!
upsmon master
┌─╼ | up 3:19, 1 user | [~]
└────╼ $ sudo nano /etc/nut/upsmon.conf
MONITOR smartups@localhost 1 upsmaster Password1! master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD /sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYMSG ONLINE "UPS %s on line power"
NOTIFYMSG ONBATT "UPS %s on battery"
NOTIFYMSG LOWBATT "UPS %s battery is low"
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
┌─╼ | up 3:51, 1 user | [~]
└────╼ $ sudo nano /etc/nut/upssched.conf
CMDSCRIPT /bin/upssched-cmd
PIPEFN /var/run/nut/upssched.pipe
LOCKFN /var/run/nut/upssched.lock
AT ONBATT * START-TIMER upsgone 300
AT ONLINE * CANCEL-TIMER upsgone
AT LOWBATT * START-TIMER upsgone 5
┌─╼ | up 3:59, 1 user | [~]
└────╼ $ sudo nano /bin/upssched-cmd
case $1 in
upsgone)
logger -t upssched-cmd "The UPS has been gone for awhile"
upsmon -c fsd
;;
lowbatt)
logger -t upssched-cmd "The UPS became lowbattery"
upsmon -c fsd
;;
*)
logger -t upssched-cmd "Unrecognized command: $1"
;;
esac
┌─╼ | up 4:08, 1 user | [~]
└────╼ $ sudo systemctl restart nut-monitor.service
UPSの状態を確認する
┌─╼ | up 4:50, 1 user | [~]
└────╼ $ upsc smartups
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.mfr.date: 2012/07/19
battery.runtime: 6240
battery.runtime.low: 120
battery.temperature: 30.1
battery.type: PbAc
battery.voltage: 27.4
battery.voltage.nominal: 24.0
device.mfr: American Power Conversion
device.model: Smart-UPS 1000
device.serial: AS1229233588
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.data: APC HID 0.96
driver.version.internal: 0.41
input.sensitivity: high
input.transfer.high: 108
input.transfer.low: 92
input.voltage: 100.8
output.current: 0.61
output.frequency: 60.0
output.voltage: 100.8
output.voltage.nominal: 100.0
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.delay.start: 30
ups.firmware: 600.18.A
ups.firmware.aux: 11.03
ups.load: 8.4
ups.mfr: American Power Conversion
ups.mfr.date: 2012/07/19
ups.model: Smart-UPS 1000
ups.productid: 0002
ups.serial: AS1229233588
ups.status: OL
ups.test.result: No test initiated
ups.timer.reboot: -1
ups.timer.shutdown: -1
ups.timer.start: -1
ups.vendorid: 051d
竹内電設は、大阪府下を中心に中小規模の組織がITシステムを効果的に活用するための、お手伝いをさせていただいております
© 2023 竹内電設; all rights reserved.