【免费下载链接】community-templates
Zabbix Community Templates repository
导读
本文基于 Zabbix Community Templates 仓库中的Alcatel-Lucent Enterprise OmniSwitch AOS 8.x模板,系统讲解如何通过 SNMPv3 对运行 AOS Release 8.x 的 ALE OmniSwitch 交换机实施监控。读完本文,你将掌握:在交换机上配置 SNMPv3 用户、在 Zabbix 中导入模板并配置宏、理解模板内置的三大 LLD(低级别自动发现)规则如何自动发现 Virtual Chassis(虚拟化机箱,VC)成员、全部以太网端口与 IP 接口,以及 CPU/内存/收发负载/温度/Flash 空间等指标的采集项、图形与触发器完整清单,并了解底层 OID 与数据预处理逻辑,可直接落地部署。
模板概览与监控能力
该模板由 Benny Eggerstedt 编写(2018-04-15 首发),目标设备是运行AOS Release 8.x的 Alcatel-Lucent Enterprise OmniSwitch,监控方式为SNMPv3。作者明确说明模板"可能也兼容 SNMPv1/v2c",但没有投入精力去测试,理由是没有充分理由不使用更安全的 SNMPv3——因此本文以 SNMPv3 为主展开。模板归属Templates/Switches模板组,在仓库中同时提供 Zabbix 5.0(XML)、5.4(YAML)与 6.0(YAML)三个版本的定义文件,三个版本的 README 与监控内容保持一致。
核心监控能力如下(原文 Features 完整继承):
- 自动发现全部 Virtual Chassis(VC)元素:无需手动逐个添加成员机箱,LLD 自动枚举堆叠中的每个成员;
- CPU:1 分钟均值、1 小时均值、1 天均值,为每个 VC 元素生成图形与触发器;
- 内存:1 分钟均值、1 小时均值、1 天均值,为每个 VC 元素生成图形与触发器;
- RX/TX 负载:1 分钟均值、1 小时均值、1 天均值,为每个 VC 元素生成图形与触发器;
- 机箱温度:最新读数,为每个 VC 元素生成图形与触发器;
- 系统信息:设备联系人、设备描述、设备位置、设备名称、设备运行时长(Uptime),以及每个 VC 元素的设备型号、序列号、Flash 剩余空间(含图形与触发器);
- 端口与接口发现:发现全部以太网端口(无论 up/down 状态)与全部 IP 接口,自动创建基于端口描述(ifDescription)/ IP 接口名的 In/OutOctets 流量采集项与图形。
第一步:在 ALE OmniSwitch AOS 8.x 上配置 SNMPv3
在交换机 CLI 中执行以下命令创建只读 SNMPv3 用户(密码与安全级别可按需调整,示例默认使用 SHA 认证 + AES 加密):
-> user snmpv3 password snmpv3password sha+aes read-only all这条命令的含义是:创建用户snmpv3,密码snmpv3password,认证协议 SHA、加密协议 AES,访问权限为只读,作用于全部视图(all)。命令中的->是 ALE OmniSwitch 的 CLI 提示符。生产环境务必替换为强密码,并将snmpv3/snmpv3password与 Zabbix 端宏保持一致。
第二步:导入模板并配置宏
按照 Zabbix 标准流程导入模板文件(Data collection → Templates → Import),随后进行宏配置:
- 进入
Configuration → Templates → Template Alcatel-Lucent Enterprise OmniSwitch AOS 8.x → Macros; - 设置以下三个宏(README 原文要求设置三个条目),值为交换机上刚创建的 SNMPv3 用户信息。
| 宏名称 | 说明 | 默认值 | 类型 |
|---|---|---|---|
{$SNMP_V3_AUTHPASSPHRASE} | SNMPv3 认证口令(Authentication passphrase) | 空 | Text macro |
{$SNMP_V3_PRIVPASSPHRASE} | SNMPv3 加密口令(Privacy passphrase) | 空 | Text macro |
{$SNMP_V3_USER} | SNMPv3 用户名 | 空 | Text macro |
宏可以定义在模板级,也可以按主机单独覆盖。之后为主机配置 SNMP 接口时选择 SNMPv3 类型,并将认证协议(SHA)、加密协议(AES)、用户名、认证口令与加密口令分别引用上述三个宏,实现凭据的统一管理与安全传递。三个宏在模板定义文件的末尾统一声明(见 5.4 YAML 宏定义)。
三大发现规则:LLD 自动发现机制
模板没有模板链接(Template links 为空),所有监控对象均由三条 SNMP LLD 规则动态生成,更新间隔均为3600 秒(每小时一次)。下表对照 README 与 YAML 定义整理:
| 发现规则名称 | 底层 MIB / OID | Key | 说明 |
|---|---|---|---|
| Discover Ethernet Interfaces | IF-MIB::ifDescr.1.3.6.1.2.1.2.2.1.2 | ifDescription | 枚举全部以太网接口(含 down 状态),{#SNMPVALUE}携带接口描述 |
| Discover ALE OmniSwitch Entity AOS Release 8.x | ENTITY-MIB::entPhysicalContainedIn.1.3.6.1.2.1.47.1.1.1.1.4 | slotindex | X 为槽位号(堆叠成员),VALUE 为 Entity 值,用于发现每个 VC 元素的实体信息 |
| Discover ALE OmniSwitch AOS Release 8.x | ALE 私有 MIB.1.3.6.1.4.1.6486.801.1.2.1.16.1.1.1.1.1.14 | vchassisnbr | 枚举 Virtual Chassis 成员编号,用于发现每个机箱的 CPU/内存/负载 |
三条规则均使用discovery[{#SNMPVALUE},<OID>]形式做 SNMP 遍历,并带有正则过滤器(见 5.4 YAML 发现规则):
- Entity 发现过滤器:对
{#SNMPINDEX}应用正则^([1-8]?)$,即只接受空值或 1~8 的槽位号,过滤掉其他无关实体(如电源、风扇等非 1~8 槽位对象); - VC 发现过滤器:对
{#SNMPINDEX}应用正则^([^0]|[1-9][0-9]*)$,即只接受非零的正整数编号,避免把编号 0(通常是机框本身)当作可监控的 VC 成员。
从实现上看,VC 成员相关的 CPU/内存/负载指标 OID 都落在 ALE 企业私有 MIB 树.1.3.6.1.4.1.6486.801.1.2.1.16.1.1.1.1.1下,且索引与{#SNMPINDEX}一一对应;实体信息(型号、序列号)则来自标准 ENTITY-MIB,这也是该模板"自动发现 VC 全部元素"的底层原理。
采集项详解:系统级、VC 元素级与端口级
系统级采集项(每 60~300 秒)
以下 5 个采集项直接挂在主机上,与 LLD 无关(见 5.4 YAML 系统采集项):
| 采集项名称 | Key | SNMP OID | 更新间隔 | 单位/类型 | 备注 |
|---|---|---|---|---|---|
| SysUptime | SysUptime | .1.3.6.1.2.1.1.3.0 | 60s | uptime(FLOAT) | 预处理 MULTIPLIER 0.01,把 TimeTicks 换算为秒(100 timeticks == 1 秒);另有重启告警触发器 |
| Device name | sysName | .1.3.6.1.2.1.1.5.0 | 300s | CHAR | 映射到资产清单 NAME 字段 |
| Device description | sysDescr | .1.3.6.1.2.1.1.1.0 | 300s | CHAR | 含硬件类型、OS 与网络软件版本,映射到 HARDWARE 字段 |
| Device contact details | sysContact | .1.3.6.1.2.1.1.4.0 | 300s | CHAR | 联系人信息,映射到 CONTACT 字段 |
| Device location | sysLocation | .1.3.6.1.2.1.1.6.0 | 300s | CHAR | 物理位置,映射到 LOCATION 字段 |
上述 OID 均来自标准 SNMPv2-MIB / DISMAN-EVENT-MIB,采集间隔 5 分钟、不保留趋势(trends=0),适合作为静态资产信息;SysUptime 为 1 分钟间隔并保留 60 天趋势,用于重启检测。
VC 元素级采集项(Entity 发现派生)
由Discover ALE OmniSwitch Entity AOS Release 8.x规则派生,索引{#SNMPINDEX}为堆叠槽位号:
| 采集项名称 | Key | SNMP OID | 更新间隔 | 单位 | 触发器 |
|---|---|---|---|---|---|
| Device type of slot {#SNMPINDEX} | devicemodel.slot.[{#SNMPINDEX}] | .1.3.6.1.2.1.47.1.1.1.1.13(entPhysicalModelName) | 300s | TEXT | 无 |
| Device serial number of slot {#SNMPINDEX} | serialnumber.slot.[{#SNMPINDEX}] | .1.3.6.1.2.1.47.1.1.1.1.11(entPhysicalSerialNum) | 300s | TEXT | 无 |
| Freespace /flash chassis {#SNMPINDEX} | freespace.slot.[{#SNMPINDEX}] | .1.3.6.1.4.1.6486.801.1.1.1.3.1.1.8.1.2.{#SNMPINDEX}(ALE 私有 MIB) | 300s | Byte | Flash 剩余 < 256 MB |
| Temperature chassis {#SNMPINDEX} | temperature.slot.[{#SNMPINDEX}] | .1.3.6.1.4.1.6486.801.1.1.1.3.1.1.3.1.16.{#SNMPVALUE}(ALE 私有 MIB) | 60s | °C | 温度 > 55 °C |
其中型号、序列号来自标准 ENTITY-MIB(entPhysicalModelName/entPhysicalSerialNum),Flash 剩余空间与温度来自 ALE 企业私有 MIB(企业号 6486),两者都以{#SNMPINDEX}槽位号为索引,因此能为堆叠中的每个成员分别出图、分别告警。
VC 元素级采集项(vchassisnbr 发现派生)
由Discover ALE OmniSwitch AOS Release 8.x规则派生,每个 VC 成员生成 CPU、内存、RX/TX 负载三组指标,每组包含 1 分钟/1 小时/1 天三个均值,索引{#SNMPVALUE}为机箱编号:
| 采集项名称 | Key | SNMP OID(ALE 私有 MIB 树.1.3.6.1.4.1.6486.801.1.2.1.16.1.1.1.1.1) | 更新间隔 | 单位 | 触发器 |
|---|---|---|---|---|---|
| CPU usage 1 min/1 hr/1 day avg chassis {#SNMPVALUE} | cpu1minavg.slot.[{#SNMPVALUE}]/cpu1hravg.../cpu1dayavg... | ....11/.12/.13 | 60s | % | 1 分钟均值 > 80% |
| Memory usage 1 min/1 hr/1 day avg chassis {#SNMPVALUE} | memory1minavg.slot.[{#SNMPVALUE}]/memory1hravg.../memory1dayavg... | ....8/.9/.10 | 60s | % | 1 分钟均值 > 80% |
| RXTX usage 1 min/1 hr/1 day avg chassis {#SNMPVALUE} | rxtx1minavg.slot.[{#SNMPVALUE}]/rxtx1hravg.../rxtx1dayavg... | ....5/.6/.7 | 60s | % | 1 分钟均值 > 80% |
三个时间窗口的均值由设备侧直接提供(对应 ALE MIB 中不同的叶子节点),Zabbix 侧无需自行聚合;1 分钟均值同时承担告警职责,1 小时与 1 天均值用于趋势观察。
端口级采集项(ifDescr 发现派生)
由Discover Ethernet Interfaces规则派生,为每个发现到的端口创建收发流量两个采集项,并以{#SNMPVALUE}(端口描述)区分:
| 采集项名称 | Key | SNMP OID | 更新间隔 | 单位 | 预处理 |
|---|---|---|---|---|---|
| InOctets {#SNMPVALUE} | inoctets.[{#SNMPVALUE}] | .1.3.6.1.2.1.2.2.1.10.{#SNMPINDEX}(ifHCInOctets 对应表项) | 60s | bps | CHANGE_PER_SECOND → MULTIPLIER 8 |
| OutOctets {#SNMPVALUE} | outoctets.[{#SNMPVALUE}] | .1.3.6.1.2.1.2.2.1.16.{#SNMPINDEX} | 60s | bps | CHANGE_PER_SECOND → MULTIPLIER 8 |
流量预处理是理解模板的关键:先做CHANGE_PER_SECOND(把计数器差值换算为每秒增量,即字节/秒),再MULTIPLIER 8把字节换算为比特(bps),单位统一为bps,从而直接得到端口实时速率。发现范围覆盖全部以太网端口(无论 up/down),避免因端口临时 down 而丢失监控对象。
触发器与告警阈值
模板内所有触发器优先级均为warning,告警对象覆盖每个 VC 成员(LLD 触发器的名称带(LLD)后缀,与 README 原文一一对应):
| 触发器名称 | 表达式(5.4/6.0 语法) | 优先级 | 含义 |
|---|---|---|---|
| {HOSTNAME} has been restarted | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 8.x/SysUptime)<1000 | INFO | Uptime 小于 1000 秒即判定设备重启(1 秒 == 100 timeticks) |
| CPU usage on chassis [{#SNMPVALUE}] > 80% | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 8.x/cpu1minavg.slot.[{#SNMPVALUE}])>80 | warning | 某 VC 成员 CPU 1 分钟均值超 80% |
| Memory usage on chassis [{#SNMPVALUE}] > 80% | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 8.x/memory1minavg.slot.[{#SNMPVALUE}])>80 | warning | 某 VC 成员内存 1 分钟均值超 80% |
| RXTX load on chassis [{#SNMPVALUE}] > 80 % | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 8.x/rxtx1minavg.slot.[{#SNMPVALUE}])>80 | warning | 某 VC 成员收发负载 1 分钟均值超 80% |
| Temperature on chassis {#SNMPINDEX} > 55 °C | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 8.x/temperature.slot.[{#SNMPINDEX}])>55 | warning | 某槽位温度超 55°C |
| Flash freespace on chassis {#SNMPINDEX} < 256 MB | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 8.x/freespace.slot.[{#SNMPINDEX}])<268435456 | warning | 某槽位 Flash 剩余空间低于 256 MB(268435456 字节) |
值得说明的是,5.0 版 XML 中的触发器表达式使用{Alcatel-Lucent Enterprise OmniSwitch AOS 8.x:key.last()}<阈值的旧式语法,5.4/6.0 版 YAML 使用last(/模板名/key)<阈值的新式函数语法,两者语义等价(详见 5.0 XML 触发器)。所有触发器均未定义恢复表达式(Recovery expression 为空),恢复依赖指标值回落。
图形原型:开箱即用的可视化
模板为上述指标预先定义了图形原型(LLD 派生,ymin/ymax固定),每个 VC 成员与端口在发现后自动获得对应图形:
- CPU usage chassis {#SNMPVALUE}:同图叠加 1 分钟(绿)、1 小时(青)、1 天(深绿)三条均值曲线;
- Memory usage chassis {#SNMPVALUE}:同样叠加三个时间窗口的内存均值曲线;
- RXTX usage chassis {#SNMPVALUE}:叠加三个时间窗口的收发负载曲线;
- Interface {#SNMPVALUE} in/out:同一张图中以渐变线绘制该端口的 InOctets(绿色)与 OutOctets(蓝色);
- Freespace /flash on chassis {#SNMPINDEX}、Temperature on chassis {#SNMPINDEX}:分别为每个槽位的 Flash 空间与温度出图。
由于图形原型挂靠在 LLD 规则下,新增 VC 成员或新端口接入时图形会自动跟随创建,无需人工干预。
使用注意与已知限制
- 测试环境:截至 README 记录(2018-04-15),模板已在2 台 OS6860 组成的 VC上实测通过;作者以个人业余时间维护,欢迎反馈但请保持合理预期;
- LLD 图形的限制:按作者说明,当时的 Zabbix 尚不支持通过 LLD 生成包含多个子元素(例如把所有槽位的 CPU/内存叠加到同一张图)的图形(详见 ZBXNEXT-927),因此本模板的图形按"每个 VC 成员一张"的方式组织;若你的 Zabbix 版本已支持聚合图形,可在此基础上自行扩展;
- SNMP 版本:官方验证路径是 SNMPv3;SNMPv1/v2c 未经测试,如需使用请自行验证;
- 版本目录:仓库按 Zabbix 版本分目录存放(5.0、5.4、6.0),导入时请选择与你的 Zabbix 版本匹配的定义文件(5.4/6.0 为 YAML,5.0 为 XML)。
相关资源
- 关联文档:5.4 版 README(本文主要依据,5.0/6.0 版 README 内容相同)
- 模板定义:5.4 YAML / 6.0 YAML / 5.0 XML
- 同系列模板:仓库中还提供了针对更早系统的 AOS 6.x 模板,以及面向 Zabbix 7.4、覆盖 6.x~8.x 的 合并版模板,可按设备实际运行的 AOS 版本选择使用。
【免费下载链接】community-templates
Zabbix Community Templates repository
相关推荐
Zabbix 8.0 监控 Apache Zookeeper 实战:基于 HTTP AdminServer 的开箱即用模板全解析
Zabbix 8.0 监控 Apache Zookeeper 实战:基于 HTTP AdminServer 的开箱即用模板全解析 导读 本指南围绕 Zabbix
CLI开发工具音视频Zabbix「Windows by Zabbix agent active」模板实战指南:基于主动式 Agent 的 Windows 全栈监控
Zabbix「Windows by Zabbix agent active」模板实战指南:基于主动式 Agent 的 Windows 全栈监控 导读 本文以 Z
指标监控可观测性告警运维Zabbix 官方 MySQL 监控模板实战:基于 Zabbix agent active 的免脚本 MySQL 监控方案
Zabbix 官方 MySQL 监控模板实战:基于 Zabbix agent active 的免脚本 MySQL 监控方案 本篇文章以 Zabbix 官方仓库中
指标监控可观测性告警运维
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考