配合 APC BE550G UPS 的 apcupsd 配置
APC BE550G 是一种廉价的UPS,支持以 USB 线通知被保护的系统或查询状态。
在 FreeBSD 上可以用 apcupsd 来配合 USB 通知使用。
去年大河发生过一次停电事故,所以买了一个 UPS 来配合自己的机器;今天大河又来了一次大约90分钟的停电,算是完成了对 UPS 的完整测试。
UPSCABLE usb
UPSTYPE usb
DEVICE
POLLTIME 60
LOCKFILE /var/spool/lock
SCRIPTDIR /usr/local/etc/apcupsd
PWRFAILDIR /var/run
NOLOGINDIR /var/run
ONBATTERYDELAY 6
BATTERYLEVEL 8
MINUTES 3
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 127.0.0.1
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 1024
UPSCLASS standalone
UPSMODE disable
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0
FACILITY DAEMON
SENSITIVITY H
WAKEUP 60
LOWBATT 02
SELFTEST 336
上述设置中比较重要的:
- 采用USB接口
- 每60秒轮询一次UPS状态
- POWERFAIL和NOLOGIN文件放到/var/run(实际上并不需要)
- 等待6秒才开始真正的ONBATTERY操作:如果电源只是短暂地发生瞬断则不做反应。
- 当停电导致电池剩余容量低于8%时,立即执行关机操作。
- 当停电导致剩余容量低于3分钟时,立即执行关机操作。
- 禁止按掉电时间为关机判断条件。
- 每5分钟(300s)警告一次登录的用户系统发生掉电。
- 首次掉电后1分钟(60s)告知登录的用户发生掉电。
- 禁止在掉电时阻止用户登录。
- 禁止apcupsd关闭电源。
- 启用NIS服务(提供让munin收集的UPS数据)。
- NIS服务监听127.0.0.1:3551。
- 在 /var/log/apcupsd.events 中记录"事件"。
- UPS在供电恢复后等待60秒再恢复对设备的供电。
- 每两周进行一次自检。
其他一些数据:
- 目前的UPS负载大约是20%-30%(110V,大约0.9A),在使用电池时大约可坚持20分钟;
- 充电到UPS认为充满大约需要8个小时;
- 这款UPS在未发生掉电的时候返回的负载值是0;