背景
近期,随着机房迁移的进行,为了提升电力保障并确保设备的持续运行,我们在原有基础上新增了多台山特UPS电源作为备用电源。这些UPS电源的主要作用是在电力中断时为机房设备提供足够的电力支持,确保设备有充足的时间进行正常关机,避免由于突然断电带来的数据丢失或硬件损坏。 然而,UPS电源本身并未进行有效的监控,这使得我们无法实时掌握UPS的工作状态、电池电量等关键信息,从而错失可能出现故障的早期预警。因此,为了提高机房电力管理的智能化水平,确保UPS电源的稳定性与可靠性,我们决定对这些UPS电源进行全面的监控。
目的
通过构建一个完整的UPS监控方案,不仅能及时发现UPS的故障或异常状态,还能够在电池电量不足等紧急情况下,提前做出预警,避免对机房设备造成不必要的影响。
监控目标
- 监控UPS状态:实时获取UPS的运行状态,如是否正常、是否有故障等。
- 监控UPS电池容量:确保电池容量健康,避免突然断电。
- 监控UPS输入电压:确保UPS接收到的电压符合标准。
- 提高运维效率:通过自动化监控,减少人工检查和干预。
操作步骤
1. 配置山特UPS客户端
为了使Zabbix能够监控山特UPS电源,我们需要从UPS系统中获取相关数据。假设山特UPS的IP为192.168.81.11
,并且它支持通过HTTP接口输出状态数据(比如通过REST API获取JSON格式的数据)。接下来,我们将编写一个Shell脚本,通过调用UPS的API接口,提取数据并交给Zabbix监控。
关于监控软件的安装:
下载软件:https://www.santak.com.cn/page/santak-downloads.html 软件名:Winpower_setup_LinuxAMD64.tar.gz
连接COM线并转为USB插入到负责监控的服务器,当前启动监控软件的服务器为192.168.81.11 安装:
|
|
配置:
|
|
|
|
配置USB接口:系统->成为系统管理员(默认没有密码,直接确认即可)->通讯口设定->输入/dev/ttyUSB1增加→输入/dev/ttyUSB2增加→确定
扫描设备:系统→自动搜索设备,完成后即可在页面显示对应的UPS状态信息
配置https端口:远程监控->Web服务器控制->停止->远程监控->Web服务器控制→修改端口为10086->开始->确定
打开网页
2. 测试数据
访问
|
|
|
|
3. 安装Zabbix Agent并配置
在监控服务器上,我们首先需要安装Zabbix Agent,Zabbix Agent是用来采集数据并将其传递给Zabbix Server的工具。假设监控服务器IP为192.168.82.12
,我们将在此服务器上进行安装并配置Zabbix Agent。
安装Zabbix Agent
如果您使用的是基于Debian/Ubuntu的操作系统,可以使用以下命令来安装Zabbix Agent:
|
|
对于RedHat/CentOS系统:
|
|
安装完成后,启动Zabbix Agent:
|
|
编写UPS监控脚本
在Zabbix Agent所在的服务器上,创建一个新的监控脚本。我们将在/etc/zabbix/zabbix_agentd.d/script/ups-monitor/ups.sh
路径下创建脚本:
|
|
此脚本根据不同的参数(status
, batCapacity
, inVolt
)来获取UPS设备的不同数据项。它通过curl
命令访问UPS的API接口,并使用jq
解析JSON格式的数据。
配置Zabbix Agent
在Zabbix Agent的配置文件中(通常位于/etc/zabbix/zabbix_agentd.conf
),我们需要添加自定义监控项,使Zabbix能够调用上面创建的脚本来获取UPS相关的数据。
在zabbix_agentd.conf
文件中,添加以下行:
自定义监控项:192.168.82.12:/etc/zabbix/zabbix_agentd.d/userparameter_ups.conf
|
|
保存配置文件并重新启动Zabbix Agent:
|
|
3. 配置Zabbix Server
接下来,我们需要在Zabbix Server中配置相应的监控项,以便能够收集和显示UPS的相关数据。
3.1 创建监控项
在Zabbix前端,进入“Configuration” -> “Hosts”,选择您的监控主机,然后点击“Items”选项卡,创建以下监控项:
- 监控UPS状态:类型选择“Zabbix agent (active)”,键值输入
ups.status
。 - 监控电池容量:类型选择“Zabbix agent (active)”,键值输入
ups.batCapacity
。 - 监控输入电压:类型选择“Zabbix agent (active)”,键值输入
ups.inVolt
。
设置合适的数据收集周期,并保存监控项。 模板文件 Template UPS.xml
|
|
监控项:
3.2 配置触发器
为了及时发现UPS故障,您可以设置触发器。例如,如果UPS的状态变为“故障”或电池容量低于某个阈值时,触发告警。根据您的需求,可以设置以下触发器:
- UPS状态故障触发器:当
ups.status
的值为“Fault”时,触发告警。 - 电池容量低触发器:当
ups.batCapacity
小于某个阈值(例如20%
)时,触发告警。
触发器:
4. 验证与测试
完成上述配置后,Zabbix Server将开始定期从Zabbix Agent中获取UPS的状态数据。您可以通过Zabbix前端查看UPS的状态、剩余电池容量和输入电压等信息,并根据设置的触发器在出现异常时收到告警。