Zabbix监控山特UPS电源:实现高效监控与告警

背景

近期,随着机房迁移的进行,为了提升电力保障并确保设备的持续运行,我们在原有基础上新增了多台山特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
安装:

tar zxf Winpower_setup_LinuxAMD64.tar.gz
cd Winpower_setup_LinuxAMD64/LinuxAMD64/
./setup_console.bin # 一路回车即可
# 启动agent
cd /opt/MonitorSoftware/
./agent start

配置:

# 需要安装图形化界面
startx

在这里插入图片描述

# 启动管理软件
cd /opt/MonitorSoftware/
./monitor

配置USB接口:系统->成为系统管理员(默认没有密码,直接确认即可)->通讯口设定->输入/dev/ttyUSB1增加→输入/dev/ttyUSB2增加→确定

扫描设备:系统→自动搜索设备,完成后即可在页面显示对应的UPS状态信息
在这里插入图片描述
配置https端口:远程监控->Web服务器控制->停止->远程监控->Web服务器控制→修改端口为10086->开始->确定

在这里插入图片描述
打开网页
在这里插入图片描述
在这里插入图片描述

2. 测试数据

访问

0 代表ups的位置,假如有三台,则是:0 1 2
地址:https://192.168.96.200:8888/0/json
{
"key": "COM3/C6K",
"version": "",
-"device": {
"key": "COM3/C6K",
"id": 0,
"protocol": 18,
"portIndex": 1,
"ip": null,
"status": "",
"upsIndex": 0,
"statusIcon": "online",
"hasWarn": false
},
"status": "正常",
"model": "C6K",
"loadPercentMax": 16,
"loadSegment2State": "",
"loadSegment1State": "",
"redundantNumber": "",
"inVolt": "231.6V",
"bypassFreq": "",
"workMode": 3,
"loadPercent": "16%",
"lsCounter": -1,
"extStatus": 0,
"oidType": 0,
"outFreq": "50.0Hz",
"warning": "",
"noModule": false,
"batCapacity": "100%",
"batTimeRemain": "",
"bypassVolt": "",
"inFreq": "50.0Hz",
"iStatus": 0,
"outVolt": "219.5V",
"abmState": "",
"emdAlarm1": "",
"cfgBatNumber": "",
"cfgKVA": "",
"emdAlarm2": "",
"batTemp": "",
"emdHumidity": "",
"emdTemp": "",
"lastEvent1": "",
"statusColor": 0,
"supportTest": true,
"upsTemp": "27.2C",
"lastEvent2": "2025/01/15 17:34:54 Agent启动",
"batV": "201.9V",
"outVA": "0.9KVA",
"ls1": -1,
"outW": "0.6KW",
"ls2": -1,
"outA": ""
}

3. 安装Zabbix Agent并配置

在监控服务器上,我们首先需要安装Zabbix Agent,Zabbix Agent是用来采集数据并将其传递给Zabbix Server的工具。假设监控服务器IP为192.168.82.12,我们将在此服务器上进行安装并配置Zabbix Agent。

安装Zabbix Agent

如果您使用的是基于Debian/Ubuntu的操作系统,可以使用以下命令来安装Zabbix Agent:

sudo apt update
sudo apt install zabbix-agent

对于RedHat/CentOS系统:

sudo yum install zabbix-agent

安装完成后,启动Zabbix Agent:

sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent
编写UPS监控脚本

在Zabbix Agent所在的服务器上,创建一个新的监控脚本。我们将在/etc/zabbix/zabbix_agentd.d/script/ups-monitor/ups.sh路径下创建脚本:

#!/bin/bashnum=$2
if [ "$num" = "0" ];thendata=$(curl --connect-timeout 3 -k -s https://192.168.81.11:10086/1/json -w "|%{http_code}")
elif [ "$num" = "1" ];thendata=$(curl --connect-timeout 3 -k -s https://192.168.81.11:10086/0/json -w "|%{http_code}")
elif [ "$num" = "2" ];thendata=$(curl --connect-timeout 3 -k -s https://192.168.81.10:10086/0/json -w "|%{http_code}")
ficase $1 instatus)echo "$data"|awk -F'|' '{print $1}'|jq '.["status"]'|sed 's/"//g';;batCapacity)echo "$data"|awk -F'|' '{print $1}'|jq '.["batCapacity"]'|sed 's/"//g;s/%//g';;inVolt)echo "$data"|awk -F'|' '{print $1}'|jq '.["inVolt"]'|sed 's/"//g;s/V//g';;apiStatus)echo "$data"|awk -F'|' '{print $2}';;*)
esac

此脚本根据不同的参数(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

UserParameter=ups.status[*],/usr/bin/bash /etc/zabbix/zabbix_agentd.d/script/ups-monitor/ups.sh status $1
UserParameter=ups.batCapacity[*],/usr/bin/bash /etc/zabbix/zabbix_agentd.d/script/ups-monitor/ups.sh batCapacity $1
UserParameter=ups.inVolt[*],/usr/bin/bash /etc/zabbix/zabbix_agentd.d/script/ups-monitor/ups.sh inVolt $1
UserParameter=ups.apiStatus[*],/usr/bin/bash /etc/zabbix/zabbix_agentd.d/script/ups-monitor/ups.sh apiStatus $1

保存配置文件并重新启动Zabbix Agent:

sudo systemctl restart 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

<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export><version>4.0</version><date>2022-03-31T10:04:22Z</date><groups><group><name>FJF Dev VM UPS</name></group></groups><templates><template><template>Template UPS</template><name>Template UPS</name><description/><groups><group><name>FJF Dev VM UPS</name></group></groups><applications><application><name>UPS</name></application></applications><items><item><name>UPS[0]接口状态</name><type>0</type><snmp_community/><snmp_oid/><key>ups.apiStatus[0]</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[1]接口状态</name><type>0</type><snmp_community/><snmp_oid/><key>ups.apiStatus[1]</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[2]接口状态</name><type>0</type><snmp_community/><snmp_oid/><key>ups.apiStatus[2]</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[0]电池剩余电量</name><type>0</type><snmp_community/><snmp_oid/><key>ups.batCapacity[0]</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units>%</units><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[1]电池剩余电量</name><type>0</type><snmp_community/><snmp_oid/><key>ups.batCapacity[1]</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units>%</units><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[2]电池剩余电量</name><type>0</type><snmp_community/><snmp_oid/><key>ups.batCapacity[2]</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units>%</units><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[0]电源输入电压</name><type>0</type><snmp_community/><snmp_oid/><key>ups.inVolt[0]</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>0</value_type><allowed_hosts/><units>V</units><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[1]电源输入电压</name><type>0</type><snmp_community/><snmp_oid/><key>ups.inVolt[1]</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>0</value_type><allowed_hosts/><units>V</units><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[2]电源输入电压</name><type>0</type><snmp_community/><snmp_oid/><key>ups.inVolt[2]</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>0</value_type><allowed_hosts/><units>V</units><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[0]电源状态</name><type>0</type><snmp_community/><snmp_oid/><key>ups.status[0]</key><delay>30s</delay><history>90d</history><trends>0</trends><status>0</status><value_type>4</value_type><allowed_hosts/><units/><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[1]电源状态</name><type>0</type><snmp_community/><snmp_oid/><key>ups.status[1]</key><delay>30s</delay><history>90d</history><trends>0</trends><status>0</status><value_type>4</value_type><allowed_hosts/><units/><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item><item><name>UPS[2]电源状态</name><type>0</type><snmp_community/><snmp_oid/><key>ups.status[2]</key><delay>30s</delay><history>90d</history><trends>0</trends><status>0</status><value_type>4</value_type><allowed_hosts/><units/><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>UPS</name></application></applications><valuemap/><logtimefmt/><preprocessing/><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>0</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item></items><discovery_rules/><httptests/><macros/><templates/><screens/></template></templates><triggers><trigger><expression>{Template UPS:ups.apiStatus[0].last()}&lt;&gt;200</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.apiStatus[0].last()}=200</recovery_expression><name>UPS-API[0]接口异常</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.apiStatus[1].last()}&lt;&gt;200</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.apiStatus[1].last()}=200</recovery_expression><name>UPS-API[1]接口异常</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.apiStatus[2].last()}&lt;&gt;200</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.apiStatus[2].last()}=200</recovery_expression><name>UPS-API[2]接口异常</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.status[0].str(零火线接反)}=0 and {Template UPS:ups.status[0].str(正常)}=0</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.status[0].str(零火线接反)}=1 or {Template UPS:ups.status[0].str(正常)}=1</recovery_expression><name>UPS[0]状态异常</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.batCapacity[0].last()}&lt;90</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.batCapacity[0].last()}&gt;90</recovery_expression><name>UPS[0]电池剩余电量小于90%</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.inVolt[0].avg(#3)}&lt;200</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.inVolt[0].avg(#3)}&gt;200</recovery_expression><name>UPS[0]输入电压异常</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.status[1].str(正常)}=0</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.status[1].str(正常)}=1</recovery_expression><name>UPS[1]状态异常</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.batCapacity[1].last()}&lt;90</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.batCapacity[1].last()}&gt;90</recovery_expression><name>UPS[1]电池剩余电量小于90%</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.inVolt[1].avg(#3)}&lt;200</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.inVolt[1].avg(#3)}&gt;200</recovery_expression><name>UPS[1]输入电压异常</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.status[2].str(正常)}=0</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.status[2].str(正常)}=1</recovery_expression><name>UPS[2]状态异常</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.batCapacity[2].last()}&lt;90</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.batCapacity[2].last()}&gt;90</recovery_expression><name>UPS[2]电池剩余电量小于90%</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template UPS:ups.inVolt[2].avg(#3)}&lt;200</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template UPS:ups.inVolt[2].avg(#3)}&gt;200</recovery_expression><name>UPS[2]输入电压异常</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger></triggers>
</zabbix_export>

监控项:
在这里插入图片描述

3.2 配置触发器

为了及时发现UPS故障,您可以设置触发器。例如,如果UPS的状态变为“故障”或电池容量低于某个阈值时,触发告警。根据您的需求,可以设置以下触发器:

  • UPS状态故障触发器:当ups.status的值为“Fault”时,触发告警。
  • 电池容量低触发器:当ups.batCapacity小于某个阈值(例如20%)时,触发告警。

触发器:
在这里插入图片描述

4. 验证与测试

完成上述配置后,Zabbix Server将开始定期从Zabbix Agent中获取UPS的状态数据。您可以通过Zabbix前端查看UPS的状态、剩余电池容量和输入电压等信息,并根据设置的触发器在出现异常时收到告警。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4774.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机系统原理:一些断言

0 虚拟机和解释器 在Java中&#xff0c;JVM既充当了一个虚拟机的角色&#xff0c;也包含了用于执行字节码的解释器。同样地&#xff0c;Python的CPython实现也是先将源代码编译成字节码&#xff0c;然后由Python虚拟机执行。 1 从源代码中提取token的过程就是词法分析 词法分…

【正则表达式】从0开始学习正则表达式

正则表达式&#xff08;英语&#xff1a;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09; 一、推荐学习网站 正则表达式 – 语法 | 菜鸟教程 正则表达式30分钟入门教程 | 菜鸟教程 编程胶囊-打造学习编程的最好系统 二、必知必记 2.1 元字符…

mysql之基本常用的语法

mysql之基本常用的语法 1.增加数据2.删除数据3.更新/修改数据4.查询数据 4.1.where子句4.2.order by4.3.limit与offset4.4.分组与having4.5.连接 5.创建表 1.增加数据 insert into 1.指定列插入 语法&#xff1a;insert into table_name(列名1,列名2,....,列名n) values (值…

Jenkins 启动

废话 这一阵子感觉空虚&#xff0c;心里空捞捞的&#xff0c;总想找点事情做&#xff0c;即使这是一件微小的事情&#xff0c;空余时间除了骑车、打球&#xff0c;偶尔朋友聚会 … 还能干什么呢&#xff1f; 当独自一人时&#xff0c;究竟可以做点什么&#xff0c;填补这空虚…

阳振坤:AI 大模型的基础是数据,AI越发达,数据库价值越大

2024年1月12日&#xff0c;第四届OceanBase数据库大赛决赛在北京圆满落幕。在大赛的颁奖典礼上&#xff0c;OceanBase 首席科学家阳振坤老师为同学们献上了一场主题为“爱上数据库”的公开课&#xff0c;他不仅分享了个人的成长历程&#xff0c;还阐述了对数据库行业现状与未来…

麦田物语学习笔记:场景切换淡入淡出和动态UI显示

基本流程 人物在切换场景有些僵硬,所以增加淡入淡出效果 1.代码思路 (1)核心原理是控制Fade Panel中的CanvasGroup中的Alpha值的大小来实现淡入淡出的效果 (2)用协程去表示变黑或变透明 (3)人物输入被阻拦的情况下,人物却还在移动,这个问题需要解决 2.代码实现 在TransitionM…

一次理清楚Java中的日期和时间

Java中的日期和时间 概述 学习最大的问题困难在于沉下心&#xff0c;现实社会纷乱复杂&#xff0c;充满诱惑&#xff0c;同时随着成家立业年岁增长更无当年之志&#xff0c;顿感无力。回想公瑾当年之言&#xff1a;“日抚谣琴听音&#xff0c;夜有娇妻伴读&#xff0c;此生足矣…

Linux探秘坊-------3.开发工具详解(2)

1.动静态库和动静态链接&#xff08;操作&#xff09; 静态库是指编译链接时,把库⽂件的代码全部加⼊到可执⾏⽂件中,因此⽣成的⽂件 ⽐较⼤,但在运⾏时也就不再需要库⽂件了。其后缀名⼀般为“.a” 动态库与之相反,在编译链接时并 没有把库⽂件的代码加⼊到可执⾏⽂件中 ,⽽…

亲测有效!如何快速实现 PostgreSQL 数据迁移到 时序数据库TDengine

小T导读&#xff1a;本篇文章是“2024&#xff0c;我想和 TDengine 谈谈”征文活动的优秀投稿之一&#xff0c;作者从数据库运维的角度出发&#xff0c;分享了利用 TDengine Cloud 提供的迁移工具&#xff0c;从 PostgreSQL 数据库到 TDengine 进行数据迁移的完整实践过程。文章…

C语言:位段

位段的内存分配: 1. 位段的成员可以是 int unsigned int signed int 或者是char &#xff08;属于整形家族&#xff09;类型 2. 位段的空间上是按照需要以4个字节&#xff08; 类型 int &#xff09;或者1个字节&#xff08; char &#xff09;的方式来开辟的。 3. 位段涉及…

多级缓存 JVM进程缓存

目录 多级缓存 1.什么是多级缓存 2.JVM进程缓存 2.1 导入案例 2.2 初识Caffeine 2.3 实现JVM进程缓存 2.3.1 需求 2.3.2 实现 3.Lua语法入门 3.1 初识Lua 3.1 HelloWorld 3.2.变量和循环 3.2.1 Lua的数据类型 3.2.3 循环 3.3 条件控制、函数 3.3.1 函数 3.3.2 条件控制 3.3.3 案…

记录一下OpenCV Contrib 编译踩的坑

最近有需要采用OpenCV Contrib 里面的函数做一下处理&#xff0c;要重新编译&#xff0c;一路编译两三个小时了&#xff0c;记录一下备忘吧。 1、编译前先准备好如下环境 ①visual studio已安装&#xff0c;具体版本和型号根据需求经验来&#xff0c;我看常用的是VS2015、VS201…

每日一刷——1.20——准备蓝桥杯

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目一 请统计某个给定范围[L, R]的所有整数中&#xff0c;数字2出现的次数。 比如给定范围[2, 22]&#xff0c;数字2在数2中出现了1次&#xff0c;在数12中出现1次&#xff0c;在数20中出现1次&a…

整数的分离与合成

整数的分离与合成 一、整数的分离1.1 整数拆成数字的方法1.1.1 取尾法1.1.2 取头法 1.2 任意整数的分离 二、整数的合成 整数是由数字和数位组成的&#xff0c;比如327是一个三位数&#xff0c;它的数字是3、2、7,数位是个数、十位、百位。 经常有些题目考查将一个整数拆分成各…

动态规划(多状态)

面试题 17.16. 按摩师 面试题 17.16. 按摩师 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int massage(vector<int>& nums) {int n nums.size();//特殊情况&#xff1a;空数组if(n0)return 0;vector<int> f(n);vector<int> g(n);…

【json_object】mysql中json_object函数过长,显示不全

问题&#xff1a;json只显示部分 解决&#xff1a; SET GLOBAL group_concat_max_len 1000000; -- 设置为1MB&#xff0c;根据需要调整如果当前在navicat上修改&#xff0c;只有效本次连接和后续会话&#xff0c;重新连接还是会恢复默认值1024 在my.ini配置文件中新增或者修…

ElasticSearch DSL查询之高亮显示

什么是高亮显示&#xff1f; 高亮显示是指在搜索结果中&#xff0c;将用户搜索的关键字突出显示&#xff0c;使其更为醒目。以百度搜索为例&#xff0c;当用户搜索“JAVA”时&#xff0c;搜索结果中的标题或概述部分会将“JAVA”高亮显示&#xff0c;通常以红色标出&#xff0…

WGAN - 瓦萨斯坦生成对抗网络

1. 背景与问题 生成对抗网络&#xff08;Generative Adversarial Networks, GANs&#xff09;是由Ian Goodfellow等人于2014年提出的一种深度学习模型。它包括两个主要部分&#xff1a;生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;…

低代码系统-产品架构案例介绍(五)

接上篇&#xff0c;某搭介绍。 某搭以低代码为核心驱动&#xff0c;利用AI能力强势推动应用深度体验&#xff0c;打通钉钉对接&#xff0c;且集成外部系统。 可以看出&#xff0c;某搭在未来的规划上&#xff0c;着重在于AI 也就说明&#xff0c;低代码产品在未来的竞争上&…

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础 目录 1.NAND FLASH 和NOR FLASH异同 ? 2.CPU,MPU,MCU,SOC,SOPC联系与差别? 3.什么是交叉编译&#xff1f; 4.为什么要交叉编译&#xff1f; 5.描述一下嵌入式基于ROM的运行方式和基于RAM的运行方式有什么区别? 1…