【免费下载链接】community-templates
Zabbix Community Templates repository
本篇技术指南围绕 Zabbix Community Templates 仓库中的Alcatel-Lucent Enterprise OmniSwitch AOS 6.x监控模板展开,系统讲解如何通过 SNMPv3 实现对 ALE OmniSwitch(运行 AOS Release 6.x)堆叠/单机设备的全维度监控:槽位级 CPU、内存、RX/TX 负载、温度、Flash 剩余空间、PoE 端口供电以及所有以太网接口的流量。读完本文,你将掌握该模板的导入方式、三个 SNMPv3 宏的配置方法、底层四条 LLD 发现规则与全部采集项的 OID 映射,并理解其触发器阈值与图形体系的设计思路。
模板概览与功能清单
该模板由社区作者 Benny Eggerstedt(@BennyE_HH)维护,用于监控运行Alcatel-Lucent Enterprise(ALE)OmniSwitch AOS Release 6.x的交换机。模板通过 SNMPv3 采集数据;作者在 README 中说明,模板理论上也可能兼容 SNMPv1/v2c,但未投入精力测试——在有 SNMPv3 可用的情况下,没有理由不使用更安全的 v3 协议。
模板覆盖的监控维度(对应 5.4 README 的 Features 清单)包括:
- 堆叠元素自动发现:自动发现交换机堆叠(Stack)中的所有成员槽位(Slot),单机与堆叠均适用;
- CPU:采集 1 分钟平均值与 1 小时最大值,为每个槽位生成图形与触发器;
- 内存(Memory):同样提供 1 Min avg / 1 Hr max 两个指标,每个槽位对应图形与触发器;
- RX/TX 负载:1 Min avg / 1 Hr max,每个槽位生成图形与触发器;
- 交换机温度:每个槽位采集温度并触发告警;
- PoE 端口:采集每个端口的最大可用功率与实际功耗,生成图形;
- 系统信息:设备联系人、描述、位置、名称、运行时长(Uptime)、每个槽位的设备型号、序列号、Flash 剩余空间(含图形与触发器);
- 自动发现:全部以太网端口(无论 up/down 状态)、全部 IP 接口、基于端口描述(ifDescription / IP-Interface name)的 In/OutOctets 流量图形,以及 PoE 端口的最大功率与实际功耗。
AOS 6.x 交换机端 SNMPv3 配置
在监控之前,需要先在 OmniSwitch 上创建只读的 SNMPv3 用户。README 给出了 AOS 6.x 上的命令行配置示例:
-> user snmpv3 password snmpv3password sha+aes read-only all该命令的含义是:创建名为snmpv3的用户,认证密码为snmpv3password,认证协议与加密协议分别采用SHA + AES,权限为只读(read-only),可访问全部 MIB 树(all)。实际部署时应将snmpv3与snmpv3password替换为你自己的用户名和强密码,并确保该用户与后续 Zabbix 宏中配置的认证/私密口令一致。
模板导入与宏(Macros)配置
模板定义文件位于仓库的5.4与6.0两个版本目录中:
- Zabbix 5.4 YAML 模板(
zabbix_export版本为5.4) - Zabbix 6.0 YAML 模板
- 另附 Zabbix 5.0 XML 模板,供 5.0 版本使用
在 Zabbix Web 界面中依次进入Configuration → Templates,导入与你的 Zabbix Server 主版本匹配的模板文件,然后将模板关联到对应的 OmniSwitch 主机(Host)上。
导入后需要完成最关键的一步——配置 SNMPv3 凭据宏。按 README 的指引:Configuration → Templates → Template "Alcatel-Lucent Enterprise OmniSwitch AOS 6.x" → Macros,设置以下三个条目:
| 宏名称 | 描述 | 默认值 | 类型 |
|---|---|---|---|
{$SNMP_V3_AUTHPASSPHRASE} | SNMPv3 认证口令(Auth passphrase) | password_auth | 文本宏 |
{$SNMP_V3_PRIVPASSPHRASE} | SNMPv3 加密口令(Priv passphrase) | password_priv | 文本宏 |
{$SNMP_V3_USER} | SNMPv3 用户名 | user | 文本宏 |
提示:默认值(
user/password_auth/password_priv)只是占位符。生产环境务必在主机或模板层覆盖这三个宏,使其与交换机上创建的实际 SNMPv3 用户保持一致;若在主机层配置,可以避免不同设备共用同一套凭据带来的安全隐患。
模板本身没有引用任何其他模板(Template links 为空),不过在仓库的后续整合版本 6-8.x 7.4 模板 中,作者额外链接了ICMP Ping模板用于连通性监控,可以作为 7.4 环境下的升级参考。
四条 LLD 发现规则及其 OID 映射
模板的全部槽位级与端口级监控都建立在**低层发现(LLD)**之上,这是它能够同时适配堆叠与单机设备的关键。四条发现规则均每 3600 秒(1 小时)执行一次:
| 发现规则名称 | 描述 | 类型 | Key |
|---|---|---|---|
| Discover ALE OmniSwitch AOS Release 6.x PoE Slot/Port | AlcatelIND1InLinePowerEthernet::alaPethPsePortPowerMaximum.X.Y,X 为槽位号(堆叠成员),Y 为端口号 | SNMP agent | poeSlotPortNumber |
| Discover Ethernet Interfaces | 基于 ifTable 枚举全部以太网接口 | SNMP agent | ifDescription |
| Discover ALE OmniSwitch Entity AOS Release 6.x | ENTITY-MIB::entPhysicalContainedIn.X,X 为槽位号,VALUE 为实体值 | SNMP agent | slotindex |
| Discover ALE OmniSwitch AOS Release 6.x | ALCATEL-IND1-PORT-MIB::esmSlotNumber.X,X 为槽位号(堆叠成员) | SNMP agent | esmSlotNumber |
结合 YAML 定义,可以还原每条规则底层的具体 OID:
- 槽位发现(esmSlotNumber):
discovery[{#SNMPVALUE},.1.3.6.1.4.1.6486.800.1.2.1.5.1.1.2.12.1.1]——遍历 ALE 私有 MIB(厂商企业号 6486)下的esmSlotNumber表,将堆叠中每个成员槽位编号写入{#SNMPVALUE}; - 以太网接口发现(ifDescription):
discovery[{#SNMPVALUE},.1.3.6.1.2.1.2.2.1.2]——遍历标准 MIB-IIifTable的ifDescr列,无论端口 up/down 都会被枚举,{#SNMPVALUE}为接口描述; - PoE 槽位/端口发现(poeSlotPortNumber):
discovery[{#SNMPVALUE},.1.3.6.1.4.1.6486.800.1.2.1.27.1.1.1.1.1]——遍历AlcatelIND1InLinePowerEthernet的alaPethPsePortPowerMaximum表,索引形如X.Y(槽位.端口),后续通过regsub函数转换为槽位/端口的可读形式; - 实体发现(slotindex):
discovery[{#SNMPVALUE},.1.3.6.1.2.1.47.1.1.1.1.4]——基于 ENTITY-MIB 的entPhysicalContainedIn表发现物理实体,并带有过滤器(filter):{#SNMPINDEX}必须匹配正则^([1-8]?)$,即只保留槽位 1~8 范围内的实体,避免发现无关的机箱子部件。
从源码结构看,作者在 2018-04-14 的 Changelog 中提到“将模板改为动态发现大部分元素(现已兼容堆叠与单机 OmniSwitch 单元)”,上述四条 LLD 正是这一设计的具体体现:单机只有一个槽位,堆叠则有多个槽位,全部通过发现规则自动展开,无需手工为每个成员建监控项。
采集项(Items)详解
模板的采集项分为两类:系统级固定采集项(直接定义在模板上)与LLD 原型采集项(随发现规则自动生成)。
系统级采集项
| 名称 | 底层 OID(来自 YAML) | Key | 更新周期 | 预处理 / 单位 |
|---|---|---|---|---|
| Device description | .1.3.6.1.2.1.1.1.0(SNMPv2-MIB::sysDescr.0) | sysDescr | 300s | 字符型,关联资产 HARDWARE |
| Device location | .1.3.6.1.2.1.1.6.0(sysLocation.0) | sysLocation | 300s | 字符型,关联资产 LOCATION |
| Device name | .1.3.6.1.2.1.1.5.0(sysName.0) | sysName | 300s | 字符型,关联资产 NAME |
| Device contact details | .1.3.6.1.2.1.1.4.0(sysContact.0) | sysContact | 300s | 字符型,关联资产 CONTACT |
| SysUptime | .1.3.6.1.2.1.1.3.0(DISMAN-EVENT-MIB::sysUpTimeInstance) | SysUptime | 60s | 预处理乘 0.01,单位uptime(100 timeticks = 1 秒) |
这些系统项直接从标准 SNMPv2-MIB 读取,描述均引用了 RFC 语义。值得注意的两点实现细节:
- SysUptime 的单位换算:SNMP 返回的是 TimeTicks(每 100 个 timeticks 等于 1 秒),YAML 中通过
MULTIPLIER预处理参数0.01将其换算为秒,并设置units: uptime让 Zabbix 自动格式化; - 资产自动关联:
sysDescr、sysName、sysLocation、sysContact分别通过inventory_link关联到 HARDWARE、NAME、LOCATION、CONTACT 资产字段,无需手工填写资产信息即可在资产清单中看到设备详情。
此外,SysUptime 还内置了一个重启检测触发器:last(/Alcatel-Lucent Enterprise OmniSwitch AOS 6.x/SysUptime)<10000,名称{HOSTNAME} has been restarted,优先级 INFO——当 uptime 低于 10000 秒(约 2.8 小时)时判定设备发生过重启。
LLD 原型采集项
以下采集项由发现规则自动生成(LLD标记),Key 中的{#SNMPVALUE}/{#SNMPINDEX}为发现规则输出的宏:
| 名称 | Key | 更新周期 | 单位 / 预处理 |
|---|---|---|---|
| CPU usage 1 min avg slot {#SNMPVALUE} | cpu1minavg.slot.[{#SNMPVALUE}] | 60s | % |
| CPU usage 1 hr max slot {#SNMPVALUE} | cpu1hrmax.slot.[{#SNMPVALUE}] | 60s | % |
| Memory usage 1 min avg slot {#SNMPVALUE} | memory1minavg.slot.[{#SNMPVALUE}] | 60s | % |
| Memory usage 1 hr max slot {#SNMPVALUE} | memory1hrmax.slot.[{#SNMPVALUE}] | 60s | % |
| RXTX usage 1 min avg slot {#SNMPVALUE} | rxtx1minavg.slot.[{#SNMPVALUE}] | 60s | % |
| RXTX usage 1 hr max slot {#SNMPVALUE} | rxtx1hrmax.slot.[{#SNMPVALUE}] | 60s | % |
| Freespace /flash slot {#SNMPVALUE} | flashfreespace.slot.[{#SNMPVALUE}] | 60s | Byte |
| Temperature on slot {#SNMPINDEX} | temperature.slot.[{#SNMPINDEX}] | 60s | °C |
| Device type of slot {#SNMPINDEX} | devicemodel.slot.[{#SNMPINDEX}] | 300s | 文本 |
| Device serial number of slot {#SNMPINDEX} | serialnumber.slot.[{#SNMPINDEX}] | 300s | 文本 |
| InOctets {#SNMPVALUE} | inoctets.[{#SNMPVALUE}] | 60s | bps(Change per second × 8) |
| OutOctets {#SNMPVALUE} | outoctets.[{#SNMPVALUE}] | 60s | bps(Change per second × 8) |
| PoE Power Actual {slot/port} | poepoweractual.[{#SNMPINDEX}] | 30s | W(乘 0.001) |
| PoE Power Maximum {slot/port} | poepowermax.[{#SNMPINDEX}] | 30s | W(乘 0.001) |
这些原型对应的底层 OID(来自 YAML,厂商私有 MIB 前缀.1.3.6.1.4.1.6486.800):
- CPU:1 min avg 为
.1.3.6.1.4.1.6486.800.1.2.1.16.1.1.2.1.1.15.{#SNMPVALUE},1 hr max 为同表.1.1.17.{#SNMPVALUE}; - 内存:1 min avg 为
.1.2.1.16.1.1.2.1.1.11.{#SNMPVALUE},1 hr max 为.1.1.13.{#SNMPVALUE}; - RX/TX 负载:1 min avg 为
.1.2.1.16.1.1.2.1.1.7.{#SNMPVALUE},1 hr max 为.1.1.9.{#SNMPVALUE}; - Flash 剩余空间:
.1.1.1.3.1.1.9.1.3.{#SNMPVALUE}; - 温度:
.1.1.1.3.1.1.3.1.4.{#SNMPVALUE}; - 设备型号 / 序列号:ENT-PHYSICAL-MIB 的
.1.3.6.1.2.1.47.1.1.1.1.13.{#SNMPINDEX}/.1.1.11.{#SNMPINDEX}; - In/OutOctets:标准 ifTable 的
.1.3.6.1.2.1.2.2.1.10.{#SNMPINDEX}/.1.1.16.{#SNMPINDEX}; - PoE 实际/最大功率:
.1.4.1.6486.800.1.2.1.27.1.1.1.1.2.{#SNMPINDEX}/.1.1.1.{#SNMPINDEX}。
几个值得深入理解的预处理细节:
- 流量速率换算:In/OutOctets 原始值是计数器(counter),YAML 中先做
CHANGE_PER_SECOND差值换算得到每秒字节数,再乘 8 得到bps,单位设置为bps,图形上直接呈现端口实时带宽; - PoE 功率单位换算:
alaPethPsePortPowerActual/Maximum原始单位为毫瓦(mW),预处理MULTIPLIER 0.001后以W为单位展示; - PoE 可读名称:PoE 监控项名称使用
{{#SNMPINDEX}.regsub("([0-9]+)\.([0-9]+)", \1/\2)}将X.Y形式的索引重写为X/Y(如1/24),这正是 2019-04-28 Changelog 中提到的“因使用 regsub 函数”而实现逐端口 PoE 功耗监控的由来; - 槽位维度宏的差异:CPU/内存/RX-TX/Flash 使用
{#SNMPVALUE}作为 Key 后缀,而温度、型号、序列号使用{#SNMPINDEX},两类宏分别来自不同的发现规则,读者在排查监控项命名时需注意区分。
触发器与阈值体系
模板内置了针对每个槽位的告警触发器,全部为warning优先级,且绝大多数以 LLD 原型触发器((LLD)后缀)形式存在,会随发现规则为每个槽位自动生成:
| 触发器名称 | 表达式 | 优先级 |
|---|---|---|
| CPU usage on slot [{#SNMPVALUE}] > 80% | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 6.x/cpu1minavg.slot.[{#SNMPVALUE}])>80 | warning |
| Memory usage on slot [{#SNMPVALUE}] > 80% | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 6.x/memory1minavg.slot.[{#SNMPVALUE}])>80 | warning |
| RXTX load on slot [{#SNMPVALUE}] > 80 % | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 6.x/rxtx1minavg.slot.[{#SNMPVALUE}])>80 | warning |
| Flash freespace on slot [{#SNMPVALUE}] < 32 MB | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 6.x/flashfreespace.slot.[{#SNMPVALUE}])<33554432 | warning |
| Temperature on slot {#SNMPINDEX} > 55 °C | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 6.x/temperature.slot.[{#SNMPVALUE}])>55 | warning |
| {HOSTNAME} has been restarted | last(/Alcatel-Lucent Enterprise OmniSwitch AOS 6.x/SysUptime)<10000 | info |
阈值设计的几个要点:
- CPU / 内存 / RX-TX 均以 80% 为告警线,且基于1 分钟平均值(
cpu1minavg/memory1minavg/rxtx1minavg)判断,避免瞬时尖峰误报;而 1 小时最大值(1hrmax)仅用于图形观察长周期趋势; - Flash 剩余空间阈值 33554432 字节 = 32 MB,告警条件为低于该值(单位在采集项上已定义为 Byte,表达式直接与字节数比较);
- 温度阈值 55°C,触发后提示机房/风扇异常风险;
- README 还记录了一个 Zabbix 平台层面的限制(见 ZBXNEXT-927):当时 LLD 尚无法生成包含多个子元素(如所有槽位的 CPU/内存)的单一图形,因此本模板的图形是按槽位分别生成的。
图形(Graphs)设计
模板为每个槽位和端口都准备了图形原型(graph prototypes),配合触发器和趋势数据形成完整可视化:
| 图形名称 | 包含监控项 |
|---|---|
| CPU usage slot {#SNMPVALUE} | cpu1minavg(绿色 1A7C11)+cpu1hrmax(青色 00CCCC),Y 轴固定 0~100 |
| Memory usage slot {#SNMPVALUE} | memory1minavg+memory1hrmax,Y 轴固定 |
| RXTX usage slot {#SNMPVALUE} | rxtx1minavg+rxtx1hrmax,Y 轴固定 |
| Freespace /flash slot {#SNMPVALUE} | flashfreespace(渐变线 00AA00) |
| Temperature on slot {#SNMPINDEX} | temperature,Y 轴固定 |
| Interface {#SNMPVALUE} in/out | inoctets(00AA00)+outoctets(3333FF),渐变线绘制实时带宽 |
| PoE Power {slot/port} | poepoweractual(1A7C11)+poepowermax(F63100),对比每端口实际功耗与上限 |
所有采集项与原型均带有Application标签(System / CPU / Memory / RXTX Load / Ports / Power over Ethernet),便于在 Zabbix 的监测与筛选视图中按应用归类。
版本演进与相关模板
模板在仓库内保留了多个 Zabbix 主版本的历史快照,便于对照演进:
| 目录 | 内容 | 说明 |
|---|---|---|
| 5.0 | README + XML | 适用于 Zabbix 5.0,触发器表达式为旧式{host:key.last()}语法 |
| 5.4 | README + YAML | 适用于 Zabbix 5.4,表达式为last(/host/key)新语法 |
| 6.0 | README + YAML | 适用于 Zabbix 6.0 |
Changelog 记录了模板的迭代脉络:
- 2018-04-09:初始版本发布;
- 2018-04-14:改为动态发现大部分元素,兼容堆叠与单机 OmniSwitch;
- 2019-04-28:应社区需求增加逐端口 PoE 实际功耗采集(借助 regsub 函数实现可读的端口命名)。
如果你管理的是更新型号的设备,仓库还提供两个姊妹模板可以对照:面向AOS 8.x(Virtual Chassis)的 template_alcatel-lucent_enterprise_omniswitch_aos_release_8.x(将槽位扩展为 VC 成员,并补充 1 Day avg 指标),以及同时覆盖 6.x/8.x 的 7.4 整合版模板(额外链接ICMP Ping模板)。
部署检查清单
最后,将整个部署流程浓缩为一份可执行的检查清单:
- 交换机侧:在 OmniSwitch AOS 6.x 上执行
-> user <user> password <auth-pass> sha+aes read-only all,记录用户名、认证口令与加密口令; - Zabbix 侧:按主版本导入对应的 YAML/XML 模板,在模板或主机上覆盖
{$SNMP_V3_USER}、{$SNMP_V3_AUTHPASSPHRASE}、{$SNMP_V3_PRIVPASSPHRASE}三个宏; - 主机侧:创建 OmniSwitch 主机并关联模板,主机 SNMP 接口协议选择SNMPv3,安全级别与交换机配置一致(SHA + AES);
- 验证:等待 1 小时内的发现周期(LLD 每 3600s 执行一次)完成槽位与端口枚举,检查
Latest data中esmSlotNumber、poeSlotPortNumber、slotindex等发现规则是否正常产出数据,随后确认各槽位 CPU/内存/温度图形与 PoE 功耗图形开始出值; - 告警验证:可临时调低某槽位阈值(如温度)或观察重启触发器的行为,确认告警路径(含恢复)按预期工作。
至此,你已经掌握了从交换机配置、模板导入、宏设置到 LLD 原理与监控项/触发器解读的完整链路,可以据此将 ALE OmniSwitch AOS 6.x 设备稳定纳入 Zabbix 监控体系。
【免费下载链接】community-templates
Zabbix Community Templates repository
相关推荐
Zabbix 监控 Alcatel-Lucent Enterprise OmniSwitch AOS 6.x:基于 SNMPv3 与 LLD 的堆叠交换机全栈监控模板解析
Zabbix 监控 Alcatel Lucent Enterprise OmniSwitch AOS 6.x:基于 SNMPv3 与 LLD 的堆叠交换机全栈监
Zabbix 模板实战:通过 SNMPv3 监控 Alcatel-Lucent Enterprise OmniSwitch AOS 8.x 虚拟堆叠交换机
Zabbix 模板实战:通过 SNMPv3 监控 Alcatel Lucent Enterprise OmniSwitch AOS 8.x 虚拟堆叠交换机 本指
使用 Zabbix 监控 Alcatel-Lucent Enterprise OmniSwitch AOS 8.x:基于 SNMPv3 的虚拟化机箱全栈监控模板实战
使用 Zabbix 监控 Alcatel Lucent Enterprise OmniSwitch AOS 8.x:基于 SNMPv3 的虚拟化机箱全栈监控模板
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考