Linux:电源故障期间配置和控制APC SmartUPS

时间:2020-01-09 10:37:58  来源:igfitidea点击:

如何检测电源故障。
如果没有恢复电源,则电池耗尽时必须关闭服务器。
如何在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