【免费下载链接】community-templates
Zabbix Community Templates repository
本文以 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 check | Simple check | icmpping | 30s | - | ICMP 可达性探测,配合值映射(valuemap) |
| Red alarm | SNMP agent | RedAlarm/.1.3.6.1.4.1.2636.3.4.2.3.1.0 | 30s | alarm(s) | 红色告警计数 |
| Yellow alarm | SNMP agent | YellowAlarm/.1.3.6.1.4.1.2636.3.4.2.2.1.0 | 60s | alarm(s) | 黄色告警计数 |
| Uptime | SNMP agent | Uptime/.1.3.6.1.2.1.1.3.0 | 60s | s | 系统运行时间(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 Interfaces | SNMP agent | discovery.ifDescr,Update: 300 |
| JunOS Hardware | SNMP agent | jnxRedundancyL1Index,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.N | VLAN 逻辑接口 |
由于 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 traffic | 1.3.6.1.2.1.2.2.1.10.[{#SNMPINDEX}] | ifInOctets |
| {#SNMPVALUE} - Inbound errors | 1.3.6.1.2.1.2.2.1.14.[{#SNMPINDEX}] | ifInErrors |
| {#SNMPVALUE} - Outbound traffic | 1.3.6.1.2.1.2.2.1.16.[{#SNMPINDEX}] | ifOutOctets |
| {#SNMPVALUE} - Outbound discarded packets | 1.3.6.1.2.1.2.2.1.19.[{#SNMPINDEX}] | ifOutDiscards |
| {#SNMPVALUE} - Outbound errors | 1.3.6.1.2.1.2.2.1.20.[{#SNMPINDEX}] | ifOutErrors |
这些 OID 全部来自标准 MIB-IIifTable(.1.3.6.1.2.1.2.2.1),与厂商无关,因此兼容性良好。
在 YAML 实现 中可以看到两个关键的预处理设计:
CHANGE_PER_SECOND:SNMP 计数器是单调递增的累计值,模板通过该预处理把两次采样间的差值转换为每秒速率,从而得到实时的丢包/错误/流量速率曲线。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 行):
| 原型名称 | Key | SNMP OID | 单位 |
|---|---|---|---|
| Switch {#SNMPVALUE} - 5 min load avarage | jnxOperating5MinLoadAvg.[{#SNMPVALUE}] | .1.3.6.1.4.1.2636.3.1.13.1.21.9.{#SNMPVALUE}.0.0 | 无(负载值) |
| Switch {#SNMPVALUE} - Memory usage | jnxOperatingBuffer.[{#SNMPVALUE}] | .1.3.6.1.4.1.2636.3.1.13.1.11.9.{#SNMPVALUE}.0.0 | % |
| Switch {#SNMPVALUE} - CPU usage | jnxOperatingCPU.[{#SNMPVALUE}] | .1.3.6.1.4.1.2636.3.1.13.1.8.9.{#SNMPVALUE}.0.0 | % |
| Switch {#SNMPVALUE} - Routing engine temperature | jnxOperatingTemp.[{#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 check | sum(/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)<>2 | High(高) |
| Yellow Alarm on {HOSTNAME} | last(/Juniper EX/YellowAlarm)<>2 | Average(平均) |
| {HOSTNAME} has just been restarted | last(/Juniper EX/Uptime)<600 | Info(信息) |
解释与实现细节(见 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)<300 | Average | CPU 30 秒均值在 70%~95%,且 5 分钟负载在 100~300,视为偏高 |
| {HOSTNAME} {#SNMPVALUE} - High CPU usage (95%) | last(jnxOperating5MinLoadAvg)>300 and last(jnxOperatingCPU)>95 | High | 负载 >300 且 CPU >95%,视为严重过载 |
| {HOSTNAME} {#SNMPVALUE} - High temperature | min(jnxOperatingTemp,60s)>60 | High | 60 秒平均温度超过 60°C |
| {HOSTNAME} {#SNMPVALUE} - Memory usage above 70% | last(jnxOperatingBuffer)>70 and last(jnxOperatingBuffer)<95 | Average | 内存 70%~95% |
| {HOSTNAME} {#SNMPVALUE} - Memory usage above 95% | last(jnxOperatingBuffer)>95 | High | 内存超过 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,使用方式如下:
- 导入模板:在 Zabbix 前端进入
Configuration → Templates,点击右上角Import,选择该 YAML 文件导入。模板将出现在Templates组下,名为Juniper EX。 - 准备主机:为 EX 交换机创建主机,配置好 SNMP 接口(community 或 SNMPv3 凭据),并确保 Zabbix server 与交换机之间 ICMP 可达(ping 监控项依赖)。
- 链接模板:在主机配置页的
Templates标签中链接Juniper EX,保存后等待一个轮询周期,LLD 规则(300s)执行后即可自动发现接口与硬件组件,生成全部监控项和图形。 - 验证:在
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
相关推荐
Zabbix 监控 Juniper EX 系列交换机:Template Juniper EX SNMP 模板全解析与实战指南
Zabbix 监控 Juniper EX 系列交换机:Template Juniper EX SNMP 模板全解析与实战指南 本文围绕 community te
Zabbix 监控 Juniper EX 系列交换机:Community Templates 的 SNMP 模板完整解析
Zabbix 监控 Juniper EX 系列交换机:Community Templates 的 SNMP 模板完整解析 本篇文章基于 Zabbix Commu
使用 Zabbix "Juniper by SNMP" 模板全面监控 Juniper 网络设备(JUNOS)
使用 Zabbix "Juniper by SNMP" 模板全面监控 Juniper 网络设备(JUNOS) 本文档基于当前仓库中的 Juniper by SN
指标监控可观测性告警运维
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考