Linux:电源故障期间配置和控制APC SmartUPS
如何检测电源故障。
如果没有恢复电源,则电池耗尽时必须关闭服务器。
如何在Debina/Ubuntu/RHEL/CentOS/Fedora/Scientific Linux操作系统下配置和使用APC SmartUPS进行电源管理?
Linux随附GPL许可的开源apcupsd服务器(daemon),可用于电源管理和控制Linux,BSD,Unix和MS-Windows操作系统上的大多数APC UPS模型。
Apcupsd可与大多数APC Smart-UPS模型以及大多数简单的信号模型(如Back-UPS和BackUPS-Office)一起使用。
在电源故障期间,apcupsd会通知用户有关电源故障的信息,并且可能会发生关机。
如果未恢复供电,则电池电量耗尽,超时(秒)到期或运行时间到期(基于由功耗率确定的内部APC计算)后,系统将关闭。
步骤1:安装Apcupsd
在Debian/Ubuntu Linux install apcupsd软件下执行以下apt-get命令:
# apt-get install apcupsd
输出示例:
update-rc.d: warning: apcupsd start runlevel arguments (1 2 3 4 5) do not match LSB Default-Start values (2 3 4 5) update-rc.d: warning: apcupsd stop runlevel arguments (0 6) do not match LSB Default-Stop values (0 1 6) Please check your configuration ISCONFIGURED in /etc/default/apcupsd
编辑/etc/default/apcupsd,输入:
# vi /etc/default/apcupsd
将ISCONFIGURED设置为yes:
ISCONFIGURED=yes
保存并关闭文件。
如果您正在使用RHEL/CentOS Linux,请使用yum命令,如下所示:
# yum install apcupsd
输出示例:
Installed size: 1.3 M Is this ok [y/N]: y Downloading Packages: apcupsd-3.14.10-1.el6.x86_64.rpm | 299 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : apcupsd-3.14.10-1.el6.x86_64 1/1 Installed products updated. Verifying : apcupsd-3.14.10-1.el6.x86_64 1/1 Installed: apcupsd.x86_64 0:3.14.10-1.el6 Complete!
步骤2:连接UPS
您需要使用电缆将UPS连接到服务器。
您将在/var/log/messages中看到以下条目
Jul 28 14:11:18 nas02 kernel: [ 3.060349] usb 2-1: Product: Back-UPS RS 1500 FW:8.g9a.I USB FW:g9a Jul 28 14:11:18 nas02 kernel: [ 5.348979] generic-usb 0003:051D:0002.0001: hiddev0,hidraw0: USB HID v1.10 Device [American Power Conversion Back-UPS RS 1500 FW:8.g9a.I USB FW:g9a] on usb-0000:00:10.0-1/input0
步骤3:配置UPS
编辑/etc/apcupsd/apcupsd.conf,输入:
# vi /etc/apcupsd/apcupsd.conf
首先,给您的UPS起一个名字。
如果您有多个UPS,这特别有用。
这不会设置EEPROM。
不得超过8个字符:
UPSNAME homeups1
接下来,定义将UPS连接到Linux服务器的电缆的类型。
在此示例中,我使用usb连接UPS:
UPSCABLE usb
电缆的可能通用选择是简单,灵巧,以太和USB。
或者可以使用特定的电缆型号,例如940-0119A。
对于USB UPS,请将DEVICE指令留空。
对于其他UPS类型,您必须指定适当的端口或地址(请参阅配置文件):
## set ups type to usb ## UPSTYPE usb DEVICE
停电期间使用的配置参数
ONBATTERYDELAY指令以秒为单位定义了从检测到电源故障到发生电池事件对其作出反应之前的时间(以秒为单位):
ONBATTERYDELAY 6
如果在电源故障期间,剩余电池百分比(由UPS报告)低于或等于BATTERYLEVEL,则apcupsd将启动Linux系统关闭:
BATTERYLEVEL 5
如果在电源故障期间,以分钟为单位的剩余运行时间(由UPS内部计算)低于或等于MINUTES(已占用),则会启动系统关闭。
MINUTES 3
如果在电源故障期间,UPS依靠电池运行了几秒钟或更长时间的超时,则apcupsd将启动系统关闭。
值为0将禁用此计时器:
TIMEOUT 0
注意:如果您使用的是旧式哑巴UPS,则将其设置为小于您可以使用电池供电的时间。
配置占用网络信息服务器
您可以从远程系统使用CGI或GUI程序来获取有关UPS的信息。
打开网络信息服务器:
NETSERVER on
设置NIS服务器将在其上侦听传入连接的IP地址。
您需要将此设置配置为服务器的任何特定IP地址,并且NIS仅在该接口上侦听连接。
使用回送地址(127.0.0.1)仅接受来自本地计算机的连接(默认)。
NISIP 127.0.0.1 ### example - for lan users ### # NISIP 192.168.1.11 ###############################
默认端口设置为3551,用于通过网络发送状态和事件数据:
NISPORT 3551
保存并关闭文件。
步骤4:测试ups
执行以下命令:
# apctest
输出示例:
2012-07-29 16:52:40 apctest 3.14.8 (16 January 2010) debian Checking configuration ... Attached to driver: usb sharenet.type = DISABLE cable.type = USB_CABLE You are using a USB cable type, so I'm entering USB test mode mode.type = USB_UPS Setting up the port ... Hello, this is the apcupsd Cable Test program. This part of apctest is for testing USB UPSes. Getting UPS capabilities...SUCCESS Please select the function you want to perform. 1) Test kill UPS power 2) Perform self-test 3) Read last self-test result 4) View/Change battery date 5) View manufacturing date 6) View/Change alarm behavior 7) View/Change sensitivity 8) View/Change low transfer voltage 9) View/Change high transfer voltage 10) Perform battery calibration 11) Test alarm 12) View/Change self-test interval Q) Quit Select function number:
您可以测试ups或读取测试结果。
如何启动apcupsd服务器?
执行以下命令以启动/停止/重新启动服务:
# /etc/init.d/apcupsd start # /etc/init.d/apcupsd stop # /etc/init.d/apcupsd restart
RHEL/CentOS/Red Hat/Fedora Linux可以使用相同的命令。
但是,您需要在引导时打开服务:
# chkconfig apcupsd on
我如何查看我的UPS的当前状态?
执行以下命令:
# apcaccess
输出示例:
APC : 001,037,0952 DATE : 2012-07-29 16:58:36 +0530 HOSTNAME : nas02.theitroad.com UPSNAME : nas02.theitroad.com CABLE : USB Cable MODEL : Back-UPS RS 1500 UPSMODE : Stand Alone STARTTIME: 2012-07-29 16:58:34 +0530 STATUS : ONLINE LINEV : 226.0 Volts LOADPCT : 11.0 Percent Load Capacity BCHARGE : 100.0 Percent TIMELEFT : 283.5 Minutes MBATTCHG : 5 Percent MINTIMEL : 3 Minutes MAXTIME : 0 Seconds SENSE : Medium LOTRANS : 194.0 Volts HITRANS : 264.0 Volts ALARMDEL : Always BATTV : 26.9 Volts LASTXFER : Automatic or explicit self test NUMXFERS : 0 TONBATT : 0 seconds CUMONBATT: 0 seconds XOFFBATT : N/A SELFTEST : OK STATFLAG : 0x07000008 Status Flag MANDATE : 2007-07-26 SERIALNO : XYZYYZAAB BATTDATE : 2007-07-26 NOMINV : 230 Volts NOMBATTV : 24.0 Volts NOMPOWER : 865 Watts FIRMWARE : 8.g9a.I USB FW:g9a APCMODEL : Back-UPS RS 1500 END APC : 2012-07-29 16:58:39 +0530
如何查看ups事件,例如电源故障?
UPS状态记录在/var/log/apcupsd.events文件中。
要查看此文件,请输入:
# tail -f /var/log/apcupsd.events
输出示例:
2012-07-29 03:36:21 +0530 apcupsd 3.14.8 (16 January 2010) debian startup succeeded 2012-07-29 03:38:06 +0530 apcupsd exiting, signal 15 2012-07-29 03:38:06 +0530 apcupsd shutdown succeeded 2012-07-29 03:49:54 +0530 apcupsd 3.14.8 (16 January 2010) debian startup succeeded 2012-07-29 07:08:52 +0530 Power failure. 2012-07-29 07:08:54 +0530 Power is back. UPS running on mains. 2012-07-29 11:24:32 +0530 Power failure. 2012-07-29 11:24:35 +0530 Power is back. UPS running on mains. 2012-07-29 14:34:43 +0530 Power failure. 2012-07-29 14:34:47 +0530 Power is back. UPS running on mains.
关于桌面GUI监视工具的说明
Gapcmon是用于apcupsd服务器的桌面监视程序。
您可以使用以下命令进行安装:
# apt-get install gapcmon
或在RHEL/CentOS Linux上使用yum命令:
# yum install apcupsd-gui
如下运行:
$ gapcmon
有关基于Web的监视工具的说明
您可以安装名为apcupsd-cgi的软件包,以便可以使用www监视UPS的负载,正常运行时间,日志和其他详细信息。
执行以下apt-get命令以进行安装:
# apt-get install apcupsd-cgi
或在RHEL/CentOS Linux上使用yum命令:
# yum install apcupsd-cgi
您需要使用cgi-bin配置Apache Web服务器,或者使用cgi-bin服务器配置lighttpd服务器。
配置完成后,使用任何网络浏览器按如下所示执行URL:
http://server-ip/cgi-bin/apcupsd/multimon.cgi