ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Zabbix 监控 A10 AX 系列应用交付控制器:Template_A10_AX_Series 模板全解析与实战部署

Zabbix 监控 A10 AX 系列应用交付控制器:Template_A10_AX_Series 模板全解析与实战部署

【免费下载链接】community-templates

Zabbix Community Templates repository

项目地址:https://gitcode.com/gh_mirrors/co/community-templates
点击查看免费下载

导读:本文围绕 Zabbix 社区模板仓库(community-templates)中的Template_A10_AX_Series模板,系统讲解如何通过 SNMP agent 对 A10 Networks AX 系列应用交付控制器(ADC / 负载均衡设备)进行硬件健康与系统资源监控。你将掌握该模板的自动发现(LLD)机制、全部监控项与触发器设计、OID 与单位换算细节,以及从导入、绑定到告警调优的完整实战方法。

模板背景:A10 AX 系列与 A10-AX-MIB

A10 AX 系列是 A10 Networks 推出的应用交付控制器(ADC)产品线,广泛用于数据中心的应用负载均衡、SSL 卸载与应用加速场景。此类设备通常承担关键业务入口流量,其 CPU、内存、磁盘、风扇、电源等硬件健康状态直接影响业务可用性,因此需要 7×24 小时监控。

Template_A10_AX_Series正是为此设计的一款 Zabbix 原生模板:它完全基于SNMP agent(type: SNMP_AGENT)轮询设备上的A10-AX-MIB(企业私有 MIB,企业号22610,所有监控 OID 均以.1.3.6.1.4.1.22610为前缀),无需在被监控设备上安装任何额外代理。模板定义在 Zabbix 官方模板分组Templates SNMP Devices下(见 5.4 模板 YAML),包含 15 个基础监控项、3 条自动发现规则、若干触发器原型与 4 张预置图形。

该模板在仓库中提供 3 个 Zabbix 大版本适配文件:

Zabbix 版本文件格式仓库相对路径
5.0XML(含 applications 应用集)template_a10_ax_series.xml
5.4YAML(使用 tags 标签体系)template_a10_ax_series.yaml
6.0YAML(使用 tags 标签体系)template_a10_ax_series.yaml

其中 5.0 版本对应 5.0 README,5.4 / 6.0 版本对应 5.4 README 与 6.0 README。5.4 与 6.0 的模板内容完全一致,仅在导出格式版本号上不同。

快速部署:导入模板并关联主机

第一步:导入模板。在 Zabbix Web 界面进入「数据采集 → 模板 → 导入」,选择与你 Zabbix 版本匹配的template_a10_ax_series.yaml(5.4/6.0)或.xml(5.0)文件上传。导入成功后,可在「模板」列表中看到名为A10_AX_Series(模板技术名)的模板。

第二步:绑定主机。为 A10 AX 设备创建主机,在「主机 → 模板」中链接A10_AX_Series,并确保主机已启用 SNMP 接口(IP 与端口 161)。

第三步:配置 SNMP 凭据。该模板没有定义任何用户宏(README 明确标注 "There are no macros links in this template",见 5.4 README),也不存在模板链接(template links)。这意味着模板的 SNMP 轮询凭据完全依赖 Zabbix 主机层面的标准宏:默认使用全局宏{$SNMP_COMMUNITY}作为只读 community string,SNMP 版本通常为 v2c。如需为不同设备设置不同 community,请在主机级覆盖该宏。

第四步:等待 LLD 生效。三条发现规则按 300 秒间隔运行(见下文),首次发现后会自动创建对应的原型监控项。之后即可在「监测 → 最新数据」中看到采集结果,并自动获得 4 张预置图形。

自动发现规则(Discovery Rules):风扇、电源与电压

模板的核心亮点是使用 Zabbix 的低级别发现(LLD)机制,通过 SNMP 遍历 A10-AX-MIB 中的表对象,动态识别设备上实际存在的风扇、电源模块和电压传感器——这些硬件数量因机型/配置而异,无法用固定监控项覆盖。三条发现规则均在 5.4 模板 YAML 中定义:

发现规则采集键(key)SNMP OID(发现用)更新间隔
FAN DiscoveryaxFanNamediscovery[{#SNMPVALUE},.1.3.6.1.4.1.22610.2.4.1.5.9.1.2]300s
Power Supply DiscoveryaxPowerSupplyNamediscovery[{#SNMPVALUE},.1.3.6.1.4.1.22610.2.4.1.5.12.1.2]300s
Power Supply Voltage DiscoveryaxPowerSupplyVoltageDescriptiondiscovery[{#SNMPVALUE},.1.3.6.1.4.1.22610.2.4.1.5.11.1.3]300s

三者均使用 SNMP agent 类型的discovery[{#SNMPVALUE},<OID>]语法:Zabbix 会对目标 OID 对应的 MIB 表进行遍历,将每个表条目的值(通常是名称/描述字符串)写入宏{#SNMPVALUE},同时把表索引写入宏{#SNMPINDEX},随后由各原型(item prototypes)基于这两个宏展开成具体监控项。

FAN Discovery:风扇转速与状态

FAN Discovery 依据 A10-AX-MIB 的axFanName(风扇名称表)发现风扇,并自动创建两类原型监控项:

原型监控项键原型 OID更新间隔单位
Speed of FAN "$1"axFanSpeed["{#SNMPVALUE}"].1.3.6.1.4.1.22610.2.4.1.5.9.1.4.{#SNMPINDEX}300sRPM
Status of "$1" FANaxFanStatus["{#SNMPVALUE}"].1.3.6.1.4.1.22610.2.4.1.5.9.1.3.{#SNMPINDEX}60s—(FLOAT)

风扇状态axFanStatus的取值语义在模板描述中完整给出(见 5.4 模板 YAML):

状态值含义
0Failed(故障)
4OK-fixed/high(正常-固定/高速)
5OK-low/med(正常-低速/中速)
6OK-med/med(正常-中速/中速)
7OK-med/high(正常-中速/高速)
-2not ready(未就绪)
-1unknown(未知)

Power Supply Discovery:电源模块状态

Power Supply Discovery 依据axPowerSupplyName表发现电源模块,自动创建原型:

原型监控项键原型 OID更新间隔备注
Status of Power Supply "$1"axPowerSupplyStatus["{#SNMPVALUE}"].1.3.6.1.4.1.22610.2.4.1.5.12.1.3.{#SNMPINDEX}30s默认DISABLED(需手动启用)

值得注意:该原型在模板中默认处于禁用状态(status: DISABLED,见 5.4 模板 YAML),且更新间隔仅 30 秒,是所有监控项中最频繁的。启用后,它对发现出的每个电源模块进行状态轮询,触发"电源缺失"与"电源关闭"两级告警。

Power Supply Voltage Discovery:电源电压状态

Power Supply Voltage Discovery 依据axPowerSupplyVoltageDescription表发现电压传感器,自动创建原型:

原型监控项键原型 OID更新间隔
Status of Power Supply Voltage "$1"axPowerSupplyVoltageStatus["{#SNMPVALUE}"].1.3.6.1.4.1.22610.2.4.1.5.11.1.2.{#SNMPINDEX}60s

模板描述特别注明:该电压状态监控仅在硬件平台提供传感器数据时受支持("This is only supported for the platform where the sensor data is available",见 5.4 模板 YAML)。对于没有电压传感器输出的机型,这条原型对应的发现结果为空,属于正常现象。

基础监控项(Items):系统资源与硬件健康

除 LLD 原型外,模板还直接定义了 15 个固定监控项,覆盖系统资源(CPU/内存/磁盘)、硬件健康(温度/风扇/电源)与设备身份(固件/序列号)。下表汇总了全部监控项及其 OID(OID 均来自 5.4 模板 YAML):

CPU(更新间隔 60s,单位 %)

监控项键OID
Control CPU Usage (5 sec)axSysAverageControlCpuUsage.1.3.6.1.4.1.22610.2.4.1.3.4.0
CPU Usage (5 sec)axSysAverageCpuUsage.1.3.6.1.4.1.22610.2.4.1.3.3.0
Data CPU Usage (5 sec)axSysAverageDataCpuUsage.1.3.6.1.4.1.22610.2.4.1.3.5.0

三个 CPU 项分别对应"总 CPU"、"控制平面 CPU"(Control)与"数据平面 CPU"(Data),反映 A10 ADC 控制/转发分离架构的负载特征,均表示最近 5 秒的平均使用率。

内存(单位 B)

监控项键OID更新间隔预处理
Total memoryaxSysMemoryTotal.1.3.6.1.4.1.22610.2.4.1.2.1.03600sMULTIPLIER × 1024
Used memoryaxSysMemoryUsage.1.3.6.1.4.1.22610.2.4.1.2.2.0300sMULTIPLIER × 1024

磁盘(单位 B)

监控项键OID更新间隔预处理
Total Disk SpaceaxSysDiskTotalSpace.1.3.6.1.4.1.22610.2.4.1.4.1.03600sMULTIPLIER × 1048576
Free Disk SpaceaxSysDiskFreeSpace.1.3.6.1.4.1.22610.2.4.1.4.2.0300sMULTIPLIER × 1048576

硬件健康(风扇 / 温度 / 电源)

监控项键OID更新间隔单位
Speed of FAN #1axSysHwFan1Speed.1.3.6.1.4.1.22610.2.4.1.5.2.0300sRPM
Speed of FAN #2axSysHwFan2Speed.1.3.6.1.4.1.22610.2.4.1.5.3.0300sRPM
Speed of FAN #3axSysHwFan3Speed.1.3.6.1.4.1.22610.2.4.1.5.4.0300sRPM
System TemperatureaxSysHwPhySystemTemp.1.3.6.1.4.1.22610.2.4.1.5.1.060s°C
Status of Left or Lower Power SupplyaxSysLowerOrLeftPowerSupplyStatus.1.3.6.1.4.1.22610.2.4.1.5.7.060s—
Status of Right or Upper Power SupplyaxSysUpperOrRightPowerSupplyStatus.1.3.6.1.4.1.22610.2.4.1.5.8.060s—

固定风扇项(FAN #1/#2/#3)用于覆盖常见三风扇机型的固定槽位,而 LLD 风扇项用于覆盖任意数量/命名风扇的机型,二者互为补充。左右/上下电源状态项则按设备安装朝向命名,适配不同机架的电源布局。

设备身份(更新间隔 86400s,即每天一次)

监控项键OID值类型
Firmware VersionaxSysFirmwareVersion.1.3.6.1.4.1.22610.2.4.1.6.3.0CHAR(不存储趋势)
Serial NumberaxSysSerialNumber.1.3.6.1.4.1.22610.2.4.1.6.2.0CHAR(不存储趋势)

固件与序列号用于资产管理,模板为它们设置了trends: '0',即不保存趋势数据、只保留最新值(见 5.4 模板 YAML),可显著降低数据库存储开销。

单位换算:MULTIPLIER 预处理详解

A10-AX-MIB 原始返回值的单位与展示单位不一致,模板通过 Zabbix 预处理步骤MULTIPLIER(乘法)统一换算(见 5.4 模板 YAML):

  • 磁盘:MIB 返回单位为MB,乘数1048576(即 1024²),换算为字节后使用B作为显示单位;
  • 内存:MIB 返回单位为KB,乘数1024,换算为字节后使用B作为显示单位。

换算后的监控项单位为字节,便于与触发器中的阈值(如"剩余磁盘小于 20%"、"内存使用 ≥ 90%")进行一致的数学比较,同时 Zabbix 前端会自动按 B/KB/MB/GB 人性化显示。需要说明的是,README 中描述的是 MIB 层的原始单位(MB/KB),而模板最终存储与展示的是预处理后的字节值,理解这一差异对解读数据至关重要。

触发器体系(Triggers):分层告警策略

模板的触发器分为三类:基础监控项直接挂载的触发器、发现规则下的触发器原型、以及模板级全局触发器。

基础监控项触发器(资源类,优先级 average)

触发器名称表达式说明
High Control CPU Usage [{ITEM.LASTVALUE1}]min(/A10_AX_Series/axSysAverageControlCpuUsage,5m)>90控制平面 CPU 5 分钟均值超 90%
High CPU Usage [{ITEM.LASTVALUE1}]min(/A10_AX_Series/axSysAverageCpuUsage,5m)>90总 CPU 5 分钟均值超 90%
High Data CPU Usage [{ITEM.LASTVALUE1}]min(/A10_AX_Series/axSysAverageDataCpuUsage,5m)>90数据平面 CPU 5 分钟均值超 90%
Lower/Left Power Supply is offlast(/A10_AX_Series/axSysLowerOrLeftPowerSupplyStatus)=0左/下电源关闭(类型 MULTIPLE)
Upper/Right Power Supply is offlast(/A10_AX_Series/axSysUpperOrRightPowerSupplyStatus)=0右/上电源关闭(类型 MULTIPLE)

CPU 触发器采用min(...,5m)>90的形式,即连续 5 分钟窗口内的最小值都超过 90% 才告警,可有效过滤瞬时尖峰误报(见 5.4 模板 YAML)。两个固定电源状态触发器类型为MULTIPLE(多状态触发,见 5.4 模板 YAML)。

模板级全局触发器(跨项比较,优先级 average)

定义于模板根级triggers段(见 5.4 模板 YAML):

触发器名称表达式逻辑
Free disk space is less than 20%max(/A10_AX_Series/axSysDiskFreeSpace,1d)<last(/A10_AX_Series/axSysDiskTotalSpace)*0.2过去 1 天剩余磁盘最大值仍小于总磁盘的 20%,即持续低水位
High memory usagelast(/A10_AX_Series/axSysMemoryUsage)>=last(/A10_AX_Series/axSysMemoryTotal)*0.9已用内存 ≥ 总内存的 90%

触发器原型(LLD 生成,硬件类)

触发器原型表达式优先级所属发现
FAN "{#SNMPVALUE}" is failedlast(/A10_AX_Series/axFanStatus["{#SNMPVALUE}"])=0highFAN Discovery
Power Supply "{#SNMPVALUE}" is absentlast(/A10_AX_Series/axPowerSupplyStatus["{#SNMPVALUE}"])=2warningPower Supply Discovery
Power Supply "{#SNMPVALUE}" is offlast(/A10_AX_Series/axPowerSupplyStatus["{#SNMPVALUE}"])=0warningPower Supply Discovery
Power Supply Voltage "{#SNMPVALUE}" is invalidlast(/A10_AX_Series/axPowerSupplyVoltageStatus["{#SNMPVALUE}"])=0averagePower Supply Voltage Discovery

告警优先级设计体现出清晰的分级策略:风扇故障为最高级(high)——风扇失效会迅速导致设备过热宕机;电源缺失/关闭为 warning——ADC 通常为双电源冗余设计,单个电源失效仍可运行,但冗余能力下降;电压异常为 average——电压异常可能预示电源老化或输入不稳。这些触发器的完整列表同时记录在 5.4 README 的 Triggers 章节。注意 README 中出现的带 "(LLD)" 后缀的重复条目,是 Zabbix 文档导出工具对原型触发器的冗余呈现,并非模板中实际存在两份告警。

预置图形(Graphs):开箱即用的可视化

模板内置 4 张图形(见 5.4 模板 YAML):

图形名称包含监控项特点
CPU UsageControl CPU / CPU / Data CPUY 轴固定(0–100%),三线对比
Disk Space UsageFree Disk Space / Total Disk SpaceGRADIENT_LINE 渐变线
Memory UsageUsed memory / Total memoryGRADIENT_LINE 渐变线
Speed of FANsFAN #1 / #2 / #3 转速三线对比

其中 CPU Usage 图形将 Y 轴最小值/最大值设为固定(FIXED),确保三条 CPU 曲线始终以 0–100% 的统一比例尺展示,避免因自动缩放造成视觉误导。挂载模板后这些图形会自动出现在主机的「图形」菜单中,无需额外配置。

5.0 与 5.4/6.0 的差异说明

对比 5.0 XML 与 5.4/6.0 版本,可以观察到两个主要演进:

  1. 应用集 → 标签:5.0 使用 8 个 applications(CPU、Disk、FAN、General、Memory、Power Supplies、Temperature、Voltage,见 5.0 XML);5.4/6.0 改为等价的Application: CPU/Disk/...标签体系,便于新版 Zabbix 的标签过滤与权限控制。
  2. 触发器表达式语法:5.0 使用旧式简写(如{min(5m)}>90、{last()}=0,见 5.0 XML);5.4/6.0 使用新式完整路径语法(如min(/A10_AX_Series/axSysAverageCpuUsage,5m)>90)。监控项 OID、键名、发现规则与图形定义则完全一致。

运维建议与注意事项

  1. 电源状态原型默认禁用:axPowerSupplyStatus原型及其"absent/off"告警在导入后处于禁用状态,需在「模板 → 发现规则 → Power Supply Discovery → 项目原型」中手动启用(YAML 中的status: DISABLED字段,见 5.4 模板 YAML),否则电源告警不会生效。
  2. 电压监控依赖硬件能力:若机型无电压传感器,Power Supply Voltage Discovery 的发现结果可能为空或长期无数据,这不是模板故障,可忽略或停用该发现规则。
  3. SNMP 版本与凭据:模板未内置宏,请确认主机级{$SNMP_COMMUNITY}宏与设备的只读 community 一致,且设备管理口允许 Zabbix server/proxy 的 SNMP 访问(建议同时验证 UDP 161 可达性)。
  4. 更新间隔设计参考:高频项(CPU/温度/电源状态 60s)用于实时告警;低频项(磁盘总量/内存总量 3600s、固件/序列号 86400s)用于容量与资产管理,整体 SNMP 负载适中,适合大规模部署。
  5. 从源码核对配置:所有 OID、预处理、触发器与图形定义均可在 5.4 模板 YAML 中逐条核对,若需在导入前定制阈值(如将 CPU 告警阈值从 90% 调整),建议直接编辑 YAML 后导入,或导入后在 Zabbix 界面修改并导出保存。

【免费下载链接】community-templates

Zabbix Community Templates repository

项目地址:https://gitcode.com/gh_mirrors/co/community-templates
点击查看免费下载
上一篇:终极指南:如何使用react-app-rewired实现HTTP请求拦截与Mock服务
下一篇:gpt-tokenizer贡献指南:如何为这个开源项目提交代码

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进