
指标监控可观测性告警运维【免费下载链接】zabbixReal-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.项目地址https://gitcode.com/gh_mirrors/zabbix2/zabbix点击查看免费下载本指南以 Zabbix 仓库内置的官方模板APC Smart-UPS SRT 8000 by SNMP为核心系统讲解如何通过 SNMPv2 协议接入 APC Smart-UPS SRT 8000 的网络管理卡NMC采集市电输入、电池健康、输出负载、相位参数与外部传感器数据并利用内置触发器实现电池低电量、高温、输入电压/频率越界、UPS 旁路/电池供电等关键告警。读完本文你将掌握该模板的完整部署流程、全部宏与监控项含义、自动发现机制以及底层数据预处理原理可直接落地到生产机房的 UPS 监控体系中。模板概览与适用场景APC Smart-UPS SRT 8000 是 APC 面向数据中心与关键负载的高端在线互动式Smart-UPS机型通过 AP9640 / AP9641 等网络管理卡NMC提供 SNMP 管理能力。Zabbix 为其提供开箱即用的官方模板位于仓库 templates/power/apc/apc_ups_smart_srt_8000_snmp/ 目录核心定义文件为 template_power_apc_ups_smart_srt_8000_snmp.yaml。该模板覆盖三类 MIBPowerNet-MIBAPC 私有 MIB企业子树1.3.6.1.4.1.318承载 UPS 身份、电池、输入输出等全部核心指标SNMPv2-MIB提供sysUpTime、sysName、sysLocation、sysContact等系统基础信息HOST-RESOURCES-MIB提供hrSystemUptime用于区分“硬件启动时间”与“网络管理部分启动时间”。模板 YAML 头部声明其由官方模板工具 Templator 生成wizard_ready: YES即支持通过 Zabbix 主机向导一键创建并自动链接。注意README 明确建议为保证模板正常工作请将 NMC 固件升级到最新版本。前置要求与兼容性项目要求Zabbix 版本8.0 及以上设备型号APC Smart-UPS SRT 8000模板已在该机型上验证管理协议SNMPv2需在设备 NMC 上启用并配置只读 community固件建议使用最新 NMC 固件除本机型外仓库 templates/power/apc/ 目录下还提供 Galaxy 3500、Smart 2200/3000、Smart RT 系列、Symmetra 系列等多个 APC 模板结构完全一致可参照本文思路复用。快速部署三步接入1. 创建 SNMPv2 主机在 Zabbix 前端进入Configuration → Hosts → Create host填写主机名并在 Interfaces 中添加类型为SNMP的接口SNMP version选择SNMPv2IP address / DNS填写 APC Smart-UPS SRT 8000 的管理 IPNMC 地址Port默认161Community与 NMC 上配置的只读 community 一致2. 链接模板在主机配置页的Templates字段中链接模板APC Smart-UPS SRT 8000 by SNMP。链接后模板内的 20 余个监控项、触发器、自动发现规则及仪表盘会立即生效。3. 按需定制宏模板内置了 10 个用户宏用于控制触发器的阈值与时间窗口。如果机房供电环境特殊例如电压不稳、负载长期偏高可在Macros选项卡中覆盖默认值无需修改模板本身。宏Macros详解模板定义的宏如下默认值直接取自模板定义在 template_power_apc_ups_smart_srt_8000_snmp.yaml 的macros段落中可看到其分组、优先级与正则校验宏名说明默认值{$BATTERY.TEMP.MAX.WARN}电池最高温度告警阈值℃55{$BATTERY.CAPACITY.MIN.WARN}电池最低剩余容量告警阈值%50{$UPS.OUTPUT.MAX.WARN}输出负载最高告警阈值%80{$UPS.INPUT_FREQ.MIN.WARN}输入频率下限Hz49.7{$UPS.INPUT_FREQ.MAX.WARN}输入频率上限Hz50.3{$UPS.INPUT_VOLT.MIN.WARN}输入电压下限V197{$UPS.INPUT_VOLT.MAX.WARN}输入电压上限V243{$TIME.PERIOD}触发器计算所用时间窗口15m{$SNMP.TIMEOUT}SNMP 可用性判定时间间隔5m{$SNMP.UPTIME.WARN}主机已重启问题自动恢复的 uptime 阈值10m从 YAML 的宏定义还可看到细节阈值类宏如{$BATTERY.CAPACITY.MIN.WARN}、{$UPS.OUTPUT.MAX.WARN}声明了取值范围约束0–100并带有正则校验^-?([0-9]|(([0-9])\.([0-9])))$防止在主机向导中输入非法字符宏按Thresholds阈值与Other其他两个分组组织优先级编号决定了向导中的展示顺序。监控项Items详解模板通过 SNMP agent 类型监控项采集数据并按主题分为几组。以下为完整清单含 OID 与预处理信息OID 均来自模板 YAML身份与资产信息监控项说明Key / OID预处理ModelUPS 型号名如 APC Smart-UPS 600MIB: PowerNet-MIBsystem.model[upsBasicIdentModel]/.1.1.1.1.1.1.0心跳去重 6hSerial number内部微处理器序列号8 字符注意 ≠ 机身背面序列号system.sn[upsAdvIdentSerialNumber]/.1.1.1.1.2.3.0心跳去重 6hBattery last replace date电池最后更换日期mm/dd/yy 或 yyyy更换电池后应由管理员重置battery.last_replace_date[upsBasicBatteryLastReplaceDate]/.1.1.1.2.1.3.0心跳去重 6hExternal battery packs count外接电池包数量非智能电池时返回 ERROR_NO_SUCH_NAMEbattery.external_packs_count[upsAdvBatteryNumOfBattPacks]/.1.1.1.2.2.5.0心跳去重 6h说明上表 OID 省略了 PowerNet-MIB 企业前缀1.3.6.1.4.1.318例如 Model 的完整 OID 为1.3.6.1.4.1.318.1.1.1.1.1.1.0后续各表同理。电池状态与健康监控项说明Key / OID预处理Battery status电池状态unknown1/normal2/low3/in fault condition4battery.status[upsBasicBatteryStatus]/.1.1.1.2.1.1.0值映射 心跳去重 6hBattery capacity剩余容量% of full capacitybattery.capacity[upsHighPrecBatteryCapacity]/.1.1.1.2.3.1.0乘数 0.1 心跳去重 6hBattery runtime remaining电池耗尽前剩余运行时间秒battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]/.1.1.1.2.2.3.0乘数 0.01 心跳去重 6hBattery voltage电池母线实际电压Vbattery.voltage[upsHighPrecBatteryActualVoltage]/.1.1.1.2.3.4.0乘数 0.1 心跳去重 6hBattery replace indicator电池是否需要更换no1/yes2battery.replace_indicator[upsAdvBatteryReplaceIndicator]/.1.1.1.2.2.4.0值映射 心跳去重 6hBattery temperature电池内部温度℃低于 0 读为 0battery.temperature[upsHighPrecBatteryTemperature]/.1.1.1.2.3.2.0乘数 0.1 心跳去重 6h输入侧市电监控项说明Key / OID预处理Input voltage市电线路电压VACinput.voltage[upsHighPrecInputLineVoltage]/.1.1.1.3.3.1.0乘数 0.1 心跳去重 6hInput frequencyUPS 输入频率Hzinput.frequency[upsHighPrecInputFrequency]/.1.1.1.3.3.4.0乘数 0.1 心跳去重 6hInput fail cause上次切换到电池供电的原因取值noTransfer(1)、highLineVoltage(2)、brownout(3)、blackout(4)、smallMomentarySag(5)、deepMomentarySag(6)、smallMomentarySpike(7)、largeMomentarySpike(8)、selfTest(9)、rateOfVoltageChange(10)input.fail[upsAdvInputLineFailCause]/.1.1.1.3.2.5.0值映射 心跳去重 6h输出侧负载监控项说明Key / OID预处理Output voltageUPS 输出电压VACoutput.voltage[upsHighPrecOutputVoltage]/.1.1.1.4.3.1.0乘数 0.1 心跳去重 6hOutput load当前负载占额定容量百分比output.load[upsHighPrecOutputLoad]/.1.1.1.4.3.3.0乘数 0.1 心跳去重 6hOutput current负载电流Aoutput.current[upsHighPrecOutputCurrent]/.1.1.1.4.3.4.0乘数 0.1 心跳去重 6hOutput statusUPS 当前状态unknown1…charger only26详见下文值映射output.status[upsBasicOutputStatus]/.1.1.1.4.1.1.0值映射 心跳去重 6h系统基础信息SNMPv2-MIB / HOST-RESOURCES-MIB监控项说明Key / OID预处理System location节点物理位置system.location[sysLocation.0]/1.3.6.1.2.1.1.6.0心跳去重 6h写入资产位置System contact details节点联系人信息system.contact[sysContact.0]/1.3.6.1.2.1.1.4.0心跳去重 12h写入资产联系人System object ID厂商权威标识SMI enterprises 子树system.objectid[sysObjectID.0]/1.3.6.1.2.1.1.2.0心跳去重 6hSystem name节点管理名惯例为 FQDNsystem.name[sysName.0]/1.3.6.1.2.1.1.5.0心跳去重 6h写入资产名称System description硬件/系统/软件版本描述system.descr[sysDescr.0]/1.3.6.1.2.1.1.1.0心跳去重 12hUptime (network)网络管理部分自上次重新初始化以来的时间百分之一秒system.net.uptime[sysUpTime.0]/1.3.6.1.2.1.1.3.0乘数 0.01单位 uptimeUptime (hardware)主机自上次初始化以来的时间区别于 sysUpTimesystem.hw.uptime[hrSystemUptime.0]/1.3.6.1.2.1.25.1.1.0支持性检查 失败置 0 乘数 0.01SNMP agent availabilitySNMP 轮询可用性0不可用/1可用/2未知zabbix[host,snmp,available]内部监控项SNMP traps (fallback)收集未被其他 snmptrap 项匹配的 SNMP 陷阱snmptrap.fallbackSNMP trap 类型值得注意的细节system.hw.uptime设置了CHECK_NOT_SUPPORTED预处理当设备不支持该 OID返回any error时将值置为0并继续采集避免整条链路因单个 OID 不支持而失败snmptrap.fallback使用日志格式hh:mm:sszyyyy/MM/dd用于兜底接收未匹配的陷阱报文。资产类监控项名称、位置、联系人通过inventory_link自动回填主机资产字段。触发器Triggers与告警策略模板内置触发器分为“固定监控项触发器”与“LLD 原型触发器”两类完整清单如下固定触发器触发器名称表达式要点严重级别Battery has an internal error conditionlast(battery.status)4AverageBattery is Lowlast(battery.status)3AverageBattery has low capacitylast(battery.capacity) {$BATTERY.CAPACITY.MIN.WARN}HighBattery needs replacementlast(battery.replace_indicator)2HighBattery has high temperaturemin(battery.temperature,{$TIME.PERIOD}) {$BATTERY.TEMP.MAX.WARN}HighUnacceptable input voltagemin(input.voltage)0 and (min {$UPS.INPUT_VOLT.MAX.WARN} or max {$UPS.INPUT_VOLT.MIN.WARN})HighUnacceptable input frequencymin(input.frequency)0 and (min {$UPS.INPUT_FREQ.MAX.WARN} or max {$UPS.INPUT_FREQ.MIN.WARN})HighOutput load is highmin(output.load,{$TIME.PERIOD}) {$UPS.OUTPUT.MAX.WARN}HighUPS is Timed Sleepinglast(output.status)5AverageUPS is Switched Bypasslast(output.status)9AverageUPS is Software Bypasslast(output.status)6AverageUPS is Sleeping Until Power Returnlast(output.status)11AverageUPS is Rebootinglast(output.status)8AverageUPS is On Smart Trimlast(output.status)12AverageUPS is on Smart Boostlast(output.status)4AverageUPS is on batterylast(output.status)3AverageUPS is Offlast(output.status)7AverageUPS is Emergency Static Bypasslast(output.status)16AverageUPS is Hardware Failure Bypasslast(output.status)10AverageHost has been restarted硬件或网络 uptime 计数回退含 32 位计数器回绕判断重启后 uptime 超过 {$SNMP.UPTIME.WARN} 自动恢复WarningSystem name has changed前后两次 sysName 不同且非空Info需手动确认No SNMP data collectionmax(zabbix[host,snmp,available],{$SNMP.TIMEOUT})0Warning几个关键设计点电压/频率触发器采用“先排除 0 值再比较”的模式min(...)0 and (...)避免设备在初始化瞬间上报 0 值造成误报同时用min/max在{$TIME.PERIOD}默认 15 分钟窗口内分别捕捉越上界与越下界两种情形。Host has been restarted触发器是模板中最复杂的表达式它同时检测硬件 uptime 与网络 uptime当探测到计数回退且前一值未接近 32 位计数器上限约 497 天时触发并设置了恢复表达式——uptime 超过{$SNMP.UPTIME.WARN}即自动关闭。它还依赖 No SNMP data collection依赖关系防止 SNMP 中断时误判重启。部分触发器设置了event_name与opdata事件名与操作数据中直接携带当前值与阈值如Current temperature: {ITEM.LASTVALUE1}便于告警通知中直接看到实测数据。自动发现LLD与原型监控针对可插拔、数量可变的组件模板使用 6 条 LLD 规则动态生成监控项轮询周期均为 1 小时输入/输出相位发现规则Key发现 OID生成的原型监控项Input phases discoveryinput.phases.discovery1.3.6.1.4.1.318.1.1.1.9.2.3.1.2.1.1{#PHASEINDEX}: Phase input voltageV、{#PHASEINDEX}: Phase input current乘数 0.1AOutput phases discoveryoutput.phases.discovery1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1{#PHASEINDEX}: Phase output voltageV、Phase output current乘数 0.1A、Phase output load, %相位电压均附带原型触发器Unacceptable phase {#PHASEINDEX} input/output voltageHigh 级别复用{$UPS.INPUT_VOLT.MIN.WARN}/{$UPS.INPUT_VOLT.MAX.WARN}阈值对三相输入的每一相独立告警。外部电池包发现规则Key说明External battery packs discoverybattery.packs.discovery遍历1.3.6.1.4.1.318.1.1.1.2.3.10.2.1表过滤空状态生成{#BATTERY_PACK}.{#CARTRIDGE_INDEX}系列External bad battery packs discoverybattery.packs.bad.discovery发现缺陷电池包数量1.3.6.1.4.1.318.1.1.1.2.2.6过滤值-1每个电池包/电池芯原型生成 5 个监控项Battery status、Battery temperature乘数 0.1、Serial number、Battery estimated replace date、Battery pack cartridge health。其中两个状态型监控项以 16 位比特串形式上报原型触发器用正则判断find(...,regexp,^(0{16})$)0→Battery status is not okayWarning只要 16 位状态串非全 0 即告警。比特位含义bit 0 Disconnected、bit 1 Overvoltage、bit 2 NeedsReplacement、bit 3 OvertemperatureCritical、bit 4 Charger、bit 5 TemperatureSensor、bit 6 BusSoftStart、bit 7 OvertemperatureWarning、bit 8 GeneralError、bit 9 Communication、bit 10 DisconnectedFrame、bit 11 FirmwareMismatch。find(...,regexp,^(0)[0|1]{15}$)1→Battery lifetime is not okayWarning当健康度首比特为 0 且后续 15 位存在置位即寿命异常位被标记时告警。健康位含义bit 0 寿命正常、bit 1 寿命接近终点请订购、bit 2 寿命已超期请更换、bit 3/4 已确认的对应状态、bit 5/6 实测寿命相关状态。另有Battery has high temperature原型触发器High 级别复用{$BATTERY.TEMP.MAX.WARN}。外部传感器发现规则Key说明External sensor port 1 discoveryexternal.sensor1.discovery遍历1.3.6.1.4.1.318.1.1.25.1.2.1表uioSensorStatusTableExternal sensor port 2 discoveryexternal.sensor2.discovery遍历1.3.6.1.4.1.318.1.1.25.1.2.2表每个已发现的外部传感器如温湿度探头生成 3 个监控项{#EXTERNAL_SENSORx_NAME}: Temperature sensor℃-1 表示通信丢失导致的无效读数{#EXTERNAL_SENSORx_NAME}: Humidity sensor相对湿度 %-1 表示不支持湿度或通信丢失{#EXTERNAL_SENSORx_NAME}: Sensor alarm statusNormal1/Warning2/Critical3/Not applicable4对应 3 个原型触发器Sensor has status CriticalHigh、WarningAverage、Not ApplicableInfo表示传感器未工作或未连接。模板还针对传感器端口设置了 LLD override当发现宏{#EXTERNAL_SENSORx_NAME}包含 Temp 时跳过名称含 Humidity 的项NO_DISCOVER避免纯温度探头产生无意义的湿度监控项。数据预处理原理模板大量使用两种预处理步骤理解其原理有助于调优Custom multiplier自定义倍数PowerNet-MIB 中upsHighPrec*系列 OID 为保留一位小数的定点数如电压上报2428表示 242.8V因此乘数0.1upsAdvBatteryRunTimeRemaining以百分之一秒计乘数0.01换算为秒。该步骤在 Zabbix Server 端预处理流水线中由ZBX_PREPROC_MULTIPLIER分支执行见 src/libs/zbxpreproc/pp_execute.c经过宏展开后调用乘法实现得到真实物理量后按监控项声明的单位V/Hz/A/%/℃/s展示。Discard unchanged with heartbeat心跳去重对变化缓慢的指标如型号、序列号、位置、输出状态设置6h/12h心跳值不变时不写入历史数据库显著降低存储开销而快速变化的电压、频率、负载等指标不启用该步骤保证曲线完整。此外Uptime (hardware)使用Check for not supported value失败时自定义值为0预处理将不支持的 OID 优雅降级为 0这是模板健壮性的体现。值映射与可读性模板在 YAML 的valuemaps段定义了 6 张值映射表把原始数字转换为可读文本PowerNet-MIB::upsBasicBatteryStatus1Unknown、2Normal、3Low、4In Fault ConditionPowerNet-MIB::upsBasicOutputStatus1Unknown、2Online、3On Battery、4On Smart Boost、5Timed Sleeping、6Software Bypass、7Off、8Rebooting、9Switched Bypass、10Hardware Failure Bypass、11Sleeping Until Power Return、12On Smart Trim、13Eco Mode、14Hot Standby、15On Battery Test、16Emergency Static Bypass、17Static Bypass Standby、18Power Saving Mode、19Spot Mode、20E-Conversion、21Charger Spotmode、22Inverter Spotmode、23Active Load、24Battery Discharge Spotmode、25Inverter Standby、26Charger OnlyPowerNet-MIB::upsAdvBatteryReplaceIndicator1no Battery Needs Replacing、2battery Needs ReplacingPowerNet-MIB::upsAdvInputLineFailCauseno Transfer / High Line Voltage / Brownout / Blackout / Small/Deep Momentary Sag / Small/Large Momentary Spike / Self Test / Rate of Voltage ChangePowerNet-MIB::uioSensorStatusAlarmStatusNormal / Warning / Critical / Not applicablezabbix.host.availablenot available / available / unknown正是由于值映射的存在input.fail这类枚举型监控项才能直接看到 Blackout、Brownout 等语义化结果配合 Host has been restarted、No SNMP data collection 触发器可以快速还原市电跌落事件的全貌。内置仪表盘与图形模板附带一个名为APC Smart-UPS SRT 8000: General的仪表盘YAMLdashboards段包含三张预定义图形Voltage电压叠加input.voltage与output.voltage两条线直观对比市电输入与 UPS 稳压输出Capacity of the UPS batteries电池容量饼图展示battery.capacity当前占比Output输出叠加output.current与output.load观察负载电流与负载百分比的关系。链接模板后这些图形会自动出现在主机的 Dashboards 中无需手工创建。部署验证与排障接入完成后建议按以下顺序验证打开Latest data确认Model、Serial number、Battery status等资产/状态项已返回非空值若出现 Not supported先用snmpwalk -v2c -c community IP 1.3.6.1.4.1.318.1.1.1在命令行验证 OID 可达性。观察Uptime (hardware)与Uptime (network)是否持续增长若硬件 uptime 不支持被预处理置 0不影响其余指标。检查Problems中是否出现 No SNMP data collection该触发器由内部监控项zabbix[host,snmp,available]驱动在{$SNMP.TIMEOUT}默认 5 分钟内连续不可用即告警。人为断开市电测试应依次看到 UPS is on batteryAverage→ 若持续停电则 Battery is LowAverage→ 容量跌破阈值触发 Battery has low capacityHigh同时Input fail cause值映射显示为 Blackout 或 Brownout。确认相位发现是否生效进入Discovery rules查看 Input/Output phases discovery 的执行结果三相设备应生成 3 组{#PHASEINDEX}原型项。若模板行为与预期不符优先核对 NMC 固件版本README 明确要求使用最新固件与 SNMP community 权限。同时仓库中的同族模板如 apc_ups_smart_srt_5000_snmp可作为对比参考帮助定位是设备能力差异还是配置问题。赞分享指标监控可观测性告警运维【免费下载链接】zabbixReal-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.项目地址https://gitcode.com/gh_mirrors/zabbix2/zabbix点击查看免费下载相关推荐Zabbix 8.0 实战用官方模板通过 SNMP 全面监控 APC Smart-UPS 3000 XLM 不间断电源Zabbix 8.0 实战用官方模板通过 SNMP 全面监控 APC Smart UPS 3000 XLM 不间断电源 本指南以 Zabbix 官方模板 AP指标监控可观测性告警运维Zabbix 模板实战用 SNMP 全面监控 APC UPS Symmetra RM 不间断电源Zabbix 模板实战用 SNMP 全面监控 APC UPS Symmetra RM 不间断电源 本篇技术指南围绕 Zabbix 官方仓库中 template指标监控可观测性告警运维Zabbix 8.0 官方模板详解APC Smart-UPS RT 1000 XL by SNMP 监控方案Zabbix 8.0 官方模板详解APC Smart UPS RT 1000 XL by SNMP 监控方案 本指南围绕 Zabbix 官方开源模板「APC指标监控可观测性告警运维上一篇Browsersync文件监听机制揭秘实时刷新和CSS注入的终极指南下一篇推荐开源项目Docup - 简单易用的Markdown文档渲染工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考