☰
Zabbix 监控 Juniper EX 系列交换机:Juniper EX 模板(SNMP + LLD)完全指南
2026/10/17 10:58:27 网站建设 项目流程

【免费下载链接】community-templates

Zabbix Community Templates repository

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

本文以 community-templates 仓库中的Network_Devices/Juniper/template_juniper_ex_series/6.0/README.md为骨架,结合其 6.0 YAML 导出文件(即模板的“源代码”)展开,完整讲解如何用 Zabbix 通过 SNMP 监控 Juniper EX 系列交换机的可用性、红/黄告警、CPU/内存/温度等硬件健康与接口流量指标。读完本文,你将掌握该模板的全部监控项、两条 LLD 发现规则及其正则过滤逻辑、底层 OID 与预处理机制,以及完整的触发器告警阈值体系,可直接在 Zabbix 6.0 中导入并投入使用。

模板概述:零依赖的 EX 系列交换机监控方案

Juniper EX 是 Juniper Networks 面向园区/接入层的以太网交换机产品线。Juniper EX模板(作者 Jonathan Halewood)通过 SNMP 对 EX 系列交换硬件进行监控,其核心设计理念是零额外依赖——不需要部署任何外部脚本、Agent 扩展或附加组件,只需要把模板导入 Zabbix 并链接到主机即可完成监控。模板本身同时属于Networking Hardware与Templates两个模板组(见 6.0 YAML 文件)。

模板覆盖的监控维度包括:

  • 设备可用性:ICMP ping 探测
  • 告警状态:红色(red)与黄色(yellow)系统告警
  • 5 分钟负载均值(5 min load average)
  • CPU 使用率
  • 内存使用率
  • 路由引擎(Routing Engine)温度
  • 接口统计:入/出方向丢弃报文、错误、流量

原文档声明该模板已在以下硬件上验证可用:

  • EX4600
  • EX3300
  • EX2200

此外,模板的 LLD 发现可自动识别端口与 VLAN,并支持虚拟机箱(virtual chassis)配置——即多台 EX 通过 VC 端口虚拟成一台逻辑设备时,模板依然可以正常发现与监控各成员。

从仓库结构看,同一目录下还有 template_juniper_srx_series(面向 SRX 防火墙)与 template_juniper_total(综合型模板)等,而本模板专注 EX 交换硬件,二者 OID 体系同源(均基于1.3.6.1.4.1.2636的 Juniper enterprise MIB),便于在同一环境中按设备角色选择模板。

基础监控项:可用性、系统告警与运行时间

模板中不依赖 LLD 的“静态”监控项共有 4 个,全部打上Application: Device Health标签,配置细节见 6.0 YAML 文件:

监控项名称类型Key / OID更新间隔单位说明
Ping checkSimple checkicmpping30s-ICMP 可达性探测,配合值映射(valuemap)
Red alarmSNMP agentRedAlarm/.1.3.6.1.4.1.2636.3.4.2.3.1.030salarm(s)红色告警计数
Yellow alarmSNMP agentYellowAlarm/.1.3.6.1.4.1.2636.3.4.2.2.1.060salarm(s)黄色告警计数
UptimeSNMP agentUptime/.1.3.6.1.2.1.1.3.060ss系统运行时间(sysUpTime)

几个值得注意的实现细节:

  • Uptime 预处理:sysUpTime(OID.1.3.6.1.2.1.1.3.0)的单位是 1/100 秒(百分之一秒),因此模板为其配置了MULTIPLIER预处理步骤,参数0.01,把原始值换算成秒,最终以s为单位入库(见 YAML 第 118-122 行)。
  • Ping check 值映射:模板定义了一个名为Service state的值映射,0 → Down、1 → Up(见 YAML 第 422-431 行),使 ICMP 结果以可读文本呈现。
  • 红/黄告警 OID 归属:两者均位于 Juniper 私有 MIB 的 alarm 子树(.1.3.6.1.4.1.2636.3.4.2.x.1.0),其中 red 告警轮询更频繁(30s),黄色告警 60s。

两条 LLD 发现规则:接口与硬件的自动发现

模板的核心能力来自两条基于 SNMP agent 的 Low-Level Discovery(LLD)规则,均每300 秒执行一次。原 README 的发现规则表如下:

名称类型Key 与附加信息
JunOS InterfacesSNMP agentdiscovery.ifDescr,Update: 300
JunOS HardwareSNMP agentjnxRedundancyL1Index,Update: 300

JunOS Interfaces:接口发现

该规则使用discovery[{#SNMPVALUE},1.3.6.1.2.1.2.2.1.2]宏形式——即遍历标准 MIB-II 接口表的ifDescr(OID.1.3.6.1.2.1.2.2.1.2)来枚举设备上所有接口描述,并写入宏{#SNMPVALUE};接口索引则对应{#SNMPINDEX}(见 YAML 第 152-164 行)。

关键点是它带有一条正则过滤条件,只保留符合 Juniper EX 接口命名规范的条目:

^(fe|ge|xe)-[0-9]+\/[0-9]+\/[0-9]+\.[0-9]+$|^(fe|ge|xe)-[0-9]+\/[0-9]+\/[0-9]+$|^(ae|reth|st)[0-9]+\.[0-9]+$|^(ae|reth|st)[0-9]$|^vcp-[0-9]+$|^vlan.[0-9]+$

该正则覆盖的接口类型可归纳为:

模式含义
(fe\|ge\|xe)-X/Y/Z与带.N的子接口形式快速以太网(fe)、千兆以太网(ge)、万兆以太网(xe)物理端口及其子接口
(ae\|reth\|st)N与(ae\|reth\|st)N.M链路聚合接口ae、冗余以太网接口reth、堆叠接口st
vcp-N虚拟机箱端口(Virtual Chassis Port),这也是模板能在 virtual chassis 下工作的原因
vlan.NVLAN 逻辑接口

由于 Juniper 设备上ifDescr还会返回内部逻辑接口(如bme、pfh等),正则过滤可以有效排除这些无实际监控意义的条目,避免 LLD 产生大量噪声监控项。

JunOS Hardware:硬件模块发现

该规则使用discovery[{#SNMPVALUE},1.3.6.1.4.1.2636.3.1.14.1.2.9]遍历 Juniper 私有 MIB 的jnxRedundancyL1Index(节点 9 对应路由引擎相关组件索引),Key 为jnxRedundancyL1Index(见 YAML 第 329-335 行)。它把发现的每个硬件组件索引写入{#SNMPVALUE},随后以此为基础生成 CPU、内存、温度、负载等硬件健康监控项——在 virtual chassis 场景下,每个成员交换机/每个路由引擎都会被独立发现并监控。

接口监控原型:六项计数器与速率换算

基于JunOS Interfaces发现规则,模板定义了 6 个接口 item 原型({#SNMPVALUE}表示接口名,{#SNMPINDEX}表示接口索引),全部归属Application: Interfaces,更新间隔 30s、历史保留 7 天。原 README 的 items 表中相关条目如下:

原型名称Key(OID + 索引)对应标准计数器
{#SNMPVALUE} - Inbound discarded packets.1.3.6.1.2.1.2.2.1.13.[{#SNMPINDEX}]ifInDiscards
{#SNMPVALUE} - Inbound traffic1.3.6.1.2.1.2.2.1.10.[{#SNMPINDEX}]ifInOctets
{#SNMPVALUE} - Inbound errors1.3.6.1.2.1.2.2.1.14.[{#SNMPINDEX}]ifInErrors
{#SNMPVALUE} - Outbound traffic1.3.6.1.2.1.2.2.1.16.[{#SNMPINDEX}]ifOutOctets
{#SNMPVALUE} - Outbound discarded packets1.3.6.1.2.1.2.2.1.19.[{#SNMPINDEX}]ifOutDiscards
{#SNMPVALUE} - Outbound errors1.3.6.1.2.1.2.2.1.20.[{#SNMPINDEX}]ifOutErrors

这些 OID 全部来自标准 MIB-IIifTable(.1.3.6.1.2.1.2.2.1),与厂商无关,因此兼容性良好。

在 YAML 实现 中可以看到两个关键的预处理设计:

  1. CHANGE_PER_SECOND:SNMP 计数器是单调递增的累计值,模板通过该预处理把两次采样间的差值转换为每秒速率,从而得到实时的丢包/错误/流量速率曲线。
  2. MULTIPLIER(参数 8):仅用于两个流量监控项。ifInOctets/ifOutOctets以字节为计数单位,乘以 8 后换算为比特,配合value_type: FLOAT与units: bps,使监控值直接以 bps 呈现(见 YAML 第 185-206 行)。

接口图形原型

模板还随发现规则定义了图形原型Interface {#SNMPVALUE},把该接口的 6 项指标绘制在一张图上,入方向曲线使用填充区域(FILLED_REGION)与蓝色系,出方向流量使用粗线(BOLD_LINE)与黄色系,具体颜色配置见 YAML 第 281-328 行。每个被发现的接口都会自动生成这样一张综合流量图。

硬件健康监控原型:CPU、内存、温度与负载

基于JunOS Hardware发现规则,模板定义了 4 个 item 原型,全部归属Application: Device Health、更新间隔 30s、历史 7 天(见 YAML 第 336-408 行):

原型名称KeySNMP OID单位
Switch {#SNMPVALUE} - 5 min load avaragejnxOperating5MinLoadAvg.[{#SNMPVALUE}].1.3.6.1.4.1.2636.3.1.13.1.21.9.{#SNMPVALUE}.0.0无(负载值)
Switch {#SNMPVALUE} - Memory usagejnxOperatingBuffer.[{#SNMPVALUE}].1.3.6.1.4.1.2636.3.1.13.1.11.9.{#SNMPVALUE}.0.0%
Switch {#SNMPVALUE} - CPU usagejnxOperatingCPU.[{#SNMPVALUE}].1.3.6.1.4.1.2636.3.1.13.1.8.9.{#SNMPVALUE}.0.0%
Switch {#SNMPVALUE} - Routing engine temperaturejnxOperatingTemp.[{#SNMPVALUE}].1.3.6.1.4.1.2636.3.1.13.1.7.9.{#SNMPVALUE}.0.0°C

这些监控项全部取自 Juniper 私有 MIBJUNIPER-OPERATING-MIB的jnxOperatingTable(.1.3.6.1.4.1.2636.3.1.13.1),其中 OID 末尾的.9.{#SNMPVALUE}.0.0即“组件类型=9(路由引擎)+ 发现索引 + 固定后缀”的拼装方式,与 LLD 规则jnxRedundancyL1Index的枚举对象一一对应。

语义要点:

  • CPU usage与Memory usage以百分比入库,可直接用于阈值告警;
  • Routing engine temperature以 °C 入库,用于热故障监控;
  • 5 min load average是 Juniper 特有的负载指标(非百分比,数值通常在数百量级),它不作为独立告警目标,而是作为 CPU 高负载触发器的辅助判别条件(见下节),用于区分“CPU 繁忙”与“真实过载”。

触发器体系:阈值、表达式与优先级

模板的告警逻辑分两类:基础触发器(挂在静态 item 上)与LLD 触发器原型(挂在 item 原型上,随发现自动生成)。

基础触发器(Device Health)

触发器表达式优先级
Ping checksum(/Juniper EX/icmpping,#3)=0 or ({TRIGGER.VALUE}=1 and sum(/Juniper EX/icmpping,#3)<>3)Disaster(灾难)
Red Alarm on {HOSTNAME}last(/Juniper EX/RedAlarm)<>2High(高)
Yellow Alarm on {HOSTNAME}last(/Juniper EX/YellowAlarm)<>2Average(平均)
{HOSTNAME} has just been restartedlast(/Juniper EX/Uptime)<600Info(信息)

解释与实现细节(见 YAML 第 81-90、103-109、127-132、145-151 行):

  • Ping check(Disaster):表达式要求最近 3 次采样全部失败(sum(#3)=0)才确认设备离线,或当触发器已处于 Problem 状态且 3 次中有失败时维持告警——这是 Zabbix 经典的“3 连 ping 失败”确认逻辑,可避免单次丢包误报;触发后提示“交换机停止响应 ICMP,可能离线”。
  • Red/Yellow Alarm:Juniper 的 alarm 计数正常值为2(表示无告警),因此last(...)<>2即表示存在告警。红色告警为 High 优先级,黄色为 Average,描述均提示登录设备 CLI 排查告警原因。
  • Uptime < 600:uptime 小于 600 秒说明设备刚刚重启,仅给出 Info 级提示。

LLD 触发器原型(硬件健康)

原 README 触发器表中完整列出的 5 组阈值(每组同时以普通条目和带(LLD)后缀条目出现),在 YAML 中实际均实现为 LLD 触发器原型,汇总如下:

触发器名称表达式优先级含义
{HOSTNAME} {#SNMPVALUE} - CPU usage above 70%min(jnxOperatingCPU,30s)>70 and min(jnxOperatingCPU,30s)<95 and last(jnxOperating5MinLoadAvg)>100 and last(jnxOperating5MinLoadAvg)<300AverageCPU 30 秒均值在 70%~95%,且 5 分钟负载在 100~300,视为偏高
{HOSTNAME} {#SNMPVALUE} - High CPU usage (95%)last(jnxOperating5MinLoadAvg)>300 and last(jnxOperatingCPU)>95High负载 >300 且 CPU >95%,视为严重过载
{HOSTNAME} {#SNMPVALUE} - High temperaturemin(jnxOperatingTemp,60s)>60High60 秒平均温度超过 60°C
{HOSTNAME} {#SNMPVALUE} - Memory usage above 70%last(jnxOperatingBuffer)>70 and last(jnxOperatingBuffer)<95Average内存 70%~95%
{HOSTNAME} {#SNMPVALUE} - Memory usage above 95%last(jnxOperatingBuffer)>95High内存超过 95%

设计逻辑要点:

  • CPU 双阈值分级:70%~95% 且结合负载条件 → Average;95% 以上且负载 >300 → High。把jnxOperatingCPU(瞬时使用率百分比)与jnxOperating5MinLoadAvg(累积负载)联合判断,能有效减少“高使用率但低负载”的误报。
  • 温度阈值 60°C:使用 60 秒min()平滑,避免瞬时尖峰误触发;告警描述明确要求立即检查风扇与环境状况。
  • 内存双阈值:70% 以上为 Average、95% 以上为 High,与 CPU 形成对称的分级体系。
  • 这些触发器原型由JunOS Hardware发现规则自动实例化到每个被发现的组件({#SNMPVALUE})上,因此 virtual chassis 中每台成员设备的每个路由引擎都会得到独立的 CPU/内存/温度告警。

安装与使用:从导入到上线

该模板的 6.0 版本以 YAML 格式提供,位于 Network_Devices/Juniper/template_juniper_ex_series/6.0/template_juniper_ex_series.yaml,使用方式如下:

  1. 导入模板:在 Zabbix 前端进入Configuration → Templates,点击右上角Import,选择该 YAML 文件导入。模板将出现在Templates组下,名为Juniper EX。
  2. 准备主机:为 EX 交换机创建主机,配置好 SNMP 接口(community 或 SNMPv3 凭据),并确保 Zabbix server 与交换机之间 ICMP 可达(ping 监控项依赖)。
  3. 链接模板:在主机配置页的Templates标签中链接Juniper EX,保存后等待一个轮询周期,LLD 规则(300s)执行后即可自动发现接口与硬件组件,生成全部监控项和图形。
  4. 验证:在Monitoring → Latest data中查看Red alarm/Yellow alarm/Uptime等基础项,并检查自动生成的Interface xxx图形与硬件健康项。

无需配置任何宏——原 README 明确指出模板未使用宏(There are no macros links in this template),也没有链接其他模板(There are no template links in this template),开箱即用。

版本适配与仓库资源

仓库为该模板维护了三个 Zabbix 版本目录,内容同源、格式随版本演进:

  • 5.0:XML 导出(旧式 XML 格式,含Device Health/Interfaces/Performance三个应用分组,表达式为{last(0)}等旧语法)
  • 5.4:YAML 导出(表达式已升级为/Juniper EX/...新语法,应用分组改为 tag 体系)
  • 6.0:本文所依据的 YAML 导出(新增 UUID 字段与history: 7d等显式配置)

各版本 README 与本文关联文档 6.0/README.md 一致。如果你同时管理 Juniper SRX 防火墙,可参考同目录下的 template_juniper_srx_series(基于相同的jnxOperating*与jnxJsSPUMonitoring*OID 体系,额外监控 PFE 与 Flow Session);需要更综合的 Juniper 监控面(BGP/OSPF/IPSec/IKE 发现)可参考 template_juniper_total。

【免费下载链接】community-templates

Zabbix Community Templates repository

项目地址:https://gitcode.com/gh_mirrors/co/community-templates
点击查看免费下载
上一篇:使用Clion阅读FFmpeg源码:VABlog的高效学习技巧分享
下一篇:Docker-Clean最佳实践:避免误删数据的7个实用技巧

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询