首页 > Windows > 基于APCUPSD在局域网内实现主/从机对APC UPS的监测

基于APCUPSD在局域网内实现主/从机对APC UPS的监测

2013年3月14日 LTNS     访问次数 588 发表评论 阅读评论

前年买了一个 APC BK650-CH的UPS,主要用于家里NAS的断电保护,NAS上安装了UPS随机的PowerChute个人级用户版v2.1.2,可在断电后直至UPS电池容量小于某个预设值时,电脑能自动关机。

这两天偶然在网上发现还有一个叫 APCUPSD 的开源软件,比PowerChute更强大,可在Windows、Linux和MacOS等多个平台上运行(一些开源的路由器固件如 Tomato by Shibby 也集成了该软件),支持包括单机、局域网的内主/从机(可以让多台电脑接收到断电信息时自动关机)和多UPS等三种模式,借用官网的一张图片。
main_configs

于是参考 官网使用手册 和网上的 教程,在局域网内的两台安装了Windows操作系统的电脑上试验了一下主/从机模式,在此做个记录。

准备条件:
台式机做master主机,操作系统Win7 x64;
笔记本做slave从机,操作系统Win7 x86;
APC BK650-CH,通过usb线连接至主机;

因为在主机上装过APC自带的软件和驱动,所以首先需要升级usb驱动,到 APCUPSD官网 下载Windows版的软件进行安装(默认的安装参数即可),按提示升级驱动后如下图所示。
APCUSPD-usb-driver

在从机上安装同样的软件,但需要对配置文件 C:\Program Files\apcupsd\etc\apcupsd\apcupsd.conf 中的如下几个参数进行修改

#UPSCABLE usb
UPSCABLE ether

#UPSTYPE usb
#DEVICE
UPSTYPE net
DEVICE 主机ip

#POLLTIME 60
POLLTIME 10

#BATTERYLEVEL 5
BATTERYLEVEL 20

#MINUTES 3
MINUTES 5

TIMEOUT 0

注:按配置文件里的说明,DEVICE项的内容格式应该是hostname:port,但实际上不填port也没问题,应该是默认端口3551的缘故。

其中POLLTIME参数是从机访问主机的间隔时间(单位:秒),为确保主/从模式下断电后从机能及时获取UPS状态参数,以便先于主机自动关机,该参数不宜过大。

还需要注意的三个参数BATTERYLEVEL(电池电量剩余多少百分比时,电脑自动关机)、MINUTES(电池还能放电多少分钟时)和TIMEOUT(从断电开始倒计时,0表示不启用该计时器),我修改了前两个参数,同样为确保从机能先于主机自动关机。

主、从机分别重启后,就可以在主机上看到UPS的当前状态了。
apcupsd_master

但从机上却是 COMMLOST 的状态,且伴有每十分钟一次 “Communications with UPS lost” 的event事件通知。尝试了一下将主机上的防火墙临时关闭就OK了,于是在主机上的“允许程序或功能通过Windows防火墙”的设置里,针对 C:\Program Files (x86)\apcupsd\bin\apcupsd.exe 添加一条相应的规则即可。

断电后UPS进入电池放电运行状态,下图是从机上的UPS当前状态
apcupsd_slave

现在APCUPSD会检测电池的剩余电量和可放电时间,哪个先到就触发电脑自动关机,这时如再恢复供电,则UPS会切换回到正常的后备运行状态。

与之相比,APC随机提供的PowerChute在断电后、触发电脑自动关机之前恢复供电,也可以切换回到正常的后备运行状态;但触发自动关机后,即便恢复供电UPS却仍处于放电状态,直至电池耗尽才会切换回来(切换的一瞬间UPS会断一下电又马上恢复供电),按网上说法,这种情形下APC会强制地自动做一次电池的完全充放电。

我个人认为APCUPSD的处理方式更合理,至于对电池进行完全的充放电,可以靠平时手工定期维护(PowerChute也做不到自动定期维护)。

 
 

参考文章
1. http://www.apcupsd.org/manual/manual.html
2. http://www.slis.tsukuba.ac.jp/~joho.hideo.gb/doku.php?id=development/how_to_get_ups_working_with_networked_pcs

 

分类: Windows 标签: , , ,
  1. neoease
    2013年6月15日11:32 | #1

    你的ups是否支持linux 系统,因为 apcupsd有linux版本的。你试过没有?

  2. LTNS
    2013年6月15日20:07 | #2

    @neoease
    只要UPS型号被apcupsd兼容,那接下来就只跟电脑的平台有关了,apcupsd是支持linux平台的,不过我还没试过,目前手上的机子都是win系统的,下次在虚拟机上试试。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
3 * 5 = (必填)