10 使用 Zabbix 监控网络交换机或路由器
简介
本指南将引导您完成使用 Zabbix 开始对网络交换机或路由器进行基础监控所需的步骤。 本文以 Cisco 路由器为例,但该流程适用于任何启用了 SNMP 的网络设备。
本指南适用对象
本指南面向 Zabbix 新用户以及希望快速为网络设备启用基础监控的网络管理员。 如果您需要深度自定义或高级配置选项,请参阅 SNMP agent 页面或 Zabbix 手册中的 Configuration 部分。
前提条件
在继续本指南之前,请确保您已具备以下条件:
- 已安装 Zabbix 服务器和 Zabbix 前端:请根据您的操作系统安装说明进行安装(参见 Installation from packages 和 Web interface installation)。
- 如果需要监控本地网络指标,已安装 Zabbix agent。
- 已启用 SNMP 的设备:启用了 SNMP 的网络交换机或路由器(例如 Cisco 路由器)。
- 已安装 MIB files:安装 MIB 文件可使 Zabbix 将数字 OID 转换为便于阅读的名称和描述。
如果没有正确的 MIB 支持,您可能只能看到数字值,这会使监控项配置和问题排查更加困难。
在 Ubuntu 上安装 MIB 文件:
1. 安装 MIB 下载器软件包:
sudo apt-get update
sudo apt-get install snmp-mibs-downloader
如果您需要添加厂商特定的 MIB(例如来自 Cisco、Juniper 的 MIB),请将其放置到相应的 MIB 目录中:
- 对于基于 Linux 的系统,常见位置包括 /usr/share/snmp/mibs/ 或 /usr/local/share/snmp/mibs/。
- 对于 Zabbix 安装,MIB 文件可存储在 /var/lib/zabbix/mibs/。
请确保 MIBDIRS 环境变量或 snmp.conf 文件中包含正确的路径。
要验证系统是否识别了新的 MIB,请使用:
snmptranslate -IR -On <MIB-NAME>::<object>
有关详细说明,请参阅您的 SNMP 库文档:
2. 编辑 /etc/snmp/snmp.conf,并将以 mibs : 开头的行注释掉,以允许系统加载所有可用的 MIB。
3. 通过运行 snmpwalk 进行验证(例如,snmpwalk -v 2c -c <your_community_string> <device_IP>),并检查 OID 是否以描述性名称显示。
根据您的环境,本指南中的某些步骤可能会略有不同。 本指南基于 Ubuntu 环境以及被监控的 Cisco Catalyst 3750V2-24FS 网络设备编写。
假设您的网络设备已经完成物理安装并已连接。
配置网络设备(Cisco 路由器示例)
要通过 SNMP 进行监控,您必须配置网络设备以允许 SNMP 查询。
以下示例适用于 SNMPv2,且未考虑现有设置。
注意:应用这些命令可能会覆盖当前的 SNMP 配置。
对于 Cisco 路由器,配置通常包括以下步骤。
SNMPv2 示例
1. 启用 SNMP 并设置团体字串。
登录到 Cisco 路由器的控制台并进入配置模式:
configure terminal
然后,通过指定只读团体字串来启用 SNMP。 例如:
snmp-server community <your_community_string> RO
将 <your_community_string> 替换为您的安全团体字串。
注意:RO(只读)选项允许 SNMP 从设备检索数据,但会阻止任何配置更改。
出于安全原因,建议将 SNMP 访问限制为仅必要的设备。 有关配置访问控制列表(ACL)的更多指导,请参阅 Cisco 官方文档。
2. 保存配置。
保存您的更改,以确保 SNMP 设置在重启后仍然保留:
write memory
SNMPv3 示例
SNMPv3 通过身份验证和加密提供增强的安全性。
其配置比 SNMPv2 更安全,应根据设备特定的文档进行核实。
1. 创建一个 SNMP 组。
配置一个启用了 privacy(加密)的 SNMPv3 组:
configure terminal
snmp-server group <your_group> v3 priv
2. 创建一个 SNMP 用户。
添加一个启用了身份验证和 privacy 的 SNMPv3 用户。
请将占位符替换为所需的值:
snmp-server user <your_user> <your_group> v3 auth md5 <auth_password> priv aes 128 <priv_password>
3. 保存配置:
write memory
有关更多详细信息或特定型号的说明,可参考外部 Cisco SNMP 配置教程。
不过,本指南提供的是启用 SNMP 监控的基本步骤。
配置 Zabbix 前端
在 Zabbix 前端中创建主机
1. 登录 Zabbix 前端。
2. 添加新主机。
导航到 数据采集 > 主机,然后点击 创建主机。
- 主机名称:为您的设备输入一个名称(例如,“Cisco Router”)。
- 主机群组:选择一个现有群组,或创建一个新群组,例如“Network Devices”。
- 接口:
- 在“接口”下点击 添加。
- 选择 SNMP 作为接口类型。
- 输入您的 Cisco 路由器的 IP 地址或 DNS 名称。
- 设置默认的 SNMP 端口(通常为 161)。
- 使用下拉菜单选择合适的 SNMP 版本(例如 SNMPv2)。
- 对于 SNMPv1/v2,在 SNMP community 字段中输入团体字串。 对于 SNMPv3,系统会提示输入其他凭据(Context name、Security name 和 Security level 等)。
3. 关联模板
在 模板 字段中,选择与您的设备最匹配的 SNMP 模板。 Zabbix 为许多设备系列提供了一系列预构建的 SNMP 模板。 例如,如果您正在监控 Cisco 设备,请选择与设备操作系统或型号对应的模板(例如 Cisco IOS SNMP 或 Cisco Catalyst 3750<device model> SNMP)。
4. 点击 添加 以保存主机。


查看已收集的指标
恭喜!Zabbix 现已设置为监控您的网络设备。
最新数据:
- 在 Zabbix 前端中,导航到 Monitoring > Latest data。

- 选择您的“Cisco Router”主机(或已发现的主机),以查看硬件和网络运行时间、ICMP 丢包、ping 和响应时间等指标。

- 图形和屏幕:
要将性能数据可视化,请点击 SNMP 监控项旁边的 Graphs 以查看详细指标。
接下来,您可以:
- 添加自定义 SNMP 监控项 以监控更多指标。
- 设置问题告警 以接收有关潜在问题的通知。
创建 SNMP 监控项
主机设置完成后,您可以创建监控项来监控特定指标。
注意:如果您使用的是模板,则此步骤是可选的,因为模板已包含默认的一组监控项。
1. 确定 SNMP OID:
使用 snmpwalk 命令列出设备上可用的 OID。
例如:
snmpwalk -v 2c -c <your_community_string> <device_IP> .
找到您希望监控的指标对应的 OID(例如,IF-MIB::ifHCInOctets.3 表示 3 号端口的入站流量)。
如需获取数字形式的 OID,可以使用:
snmpget -v 2c -c <your_community_string> -On <device_IP> IF-MIB::ifHCInOctets.3
2. 创建 SNMP 监控项:
- 导航到 Data collection > Hosts,为您的 SNMP 主机点击 Items 标签页,然后点击 Create item。
- Name:输入一个描述性名称(例如“3 号端口入站流量”)。
- Type:选择 SNMP agent。
- Key:提供一个有意义的键值(例如
cisco.ifHCInOctets.3)。 - Host interface:确保已选择 SNMP 接口。
- SNMP OID:使用支持的格式之一输入 OID,例如:
get[1.3.6.1.2.1.31.1.1.1.6.3]用于获取单个值;walk[1.3.6.1.2.1.31.1.1.1.6.3]用于异步检索一个子树中的值。

- Preprocessing(如有需要):如果监控项返回的是累积计数器(例如接口流量),请导航到 Preprocessing 标签页,并添加一个诸如“每秒变化量”的预处理步骤来计算速率。

要在一次 SNMP 事务中获取多个值,您可以使用语法 walk[OID1,OID2,...] 指定多个 OID。
在数字 OID 与 MIB 名称之间进行转换
使用 SNMP 时,您可能需要在数字 OID 与其对应的 MIB 名称之间进行转换。 这种转换有助于更轻松地识别和排查指标。
- 将 MIB 名称转换为数字 OID:使用带有
-On选项的snmptranslate命令。 例如,要将 MIB 名称IF-MIB::ifHCInOctets.3转换为其数字 OID,请运行:
snmptranslate -On IF-MIB::ifHCInOctets.3
此命令可能输出:
.1.3.6.1.2.1.31.1.1.1.6.3
- 将数字 OID 转换为 MIB 名称:使用带有
-IR(或-m ALL)选项的snmptranslate命令进行反向转换。 例如,要将数字 OID.1.3.6.1.2.1.31.1.1.1.6.3转换回其 MIB 名称,请运行:
snmptranslate -IR -On .1.3.6.1.2.1.31.1.1.1.6.3
此命令可能输出:
IF-MIB::ifHCInOctets.3
设置问题告警
本指南提供了发送电子邮件告警的基本配置步骤。
1. 导航到 用户设置 > 个人资料,切换到 介质 选项卡并添加您的电子邮件。

2. 按照接收问题通知指南进行操作。
下次当 Zabbix 检测到问题时,您应该会通过电子邮件收到告警。
测试您的配置
为确保 Zabbix 能正确检测网络性能问题,可通过提高 ICMP ping 响应时间阈值来模拟一个真实问题。
1. 在 Zabbix 中打开您的“Cisco Router”主机配置。
2. 导航到 Macros 选项卡,并选择 Inherited and host macros。
3. 找到 {$ICMP_RESPONSE_TIME_WARN} 宏(或类似的响应时间阈值宏)。
4. 将其设置为一个非常低的值(例如 0.001),以便在 ping 响应超过该值时触发告警。
5. 单击 Update 以应用更改。
6. 稍等片刻,让 Zabbix 检测到这个模拟的问题。
7. 导航到 Monitoring > Problems,确认是否出现告警(例如“High ICMP ping response time”)。

如果已配置告警,您还应收到一条问题告警。
8. 将宏值恢复为原始设置,然后单击 Update 保存更改。
9. 确认问题已解决,并从 Problems 部分中消失。
SNMP 监控故障排查
如果您发现 Zabbix 前端中的 SNMP 图标显示为红色,或者未采集到任何数据,请尝试以下步骤:
1. 检查 SNMP 连通性。
对于 SNMPv2,请在您的 Zabbix 服务器上运行以下命令:
snmpwalk -v 2c -c <community_string> <device_IP> .
此命令用于验证设备是否响应 SNMP 查询。
对于 SNMPv3,请包含相应的 SNMPv3 凭据:
snmpwalk -v3 -u <your_user> -l authPriv -a MD5 -A <auth_password> -x AES -X <priv_password> <device_IP> .
这可验证 SNMPv3 凭据是否正确,以及设备是否正在安全地响应。
2. 确保已按照前提条件中的说明安装并启用 MIB 文件。
为确保这一点,在查询网络设备时,以下命令不应报错:
snmpwalk -v 2c -c <your_community_string> <device_IP> ifInOctets
这应返回已翻译的 OID,且不出现错误。
3. 确认 Zabbix 中配置的 SNMP 版本和凭据与设备上设置的一致。
例如,检查 Zabbix 主机配置中的 SNMP 设置,并将其与您设备上的配置进行核对。
在 Cisco 设备上,您可以通过运行以下命令检查 SNMP 设置:
show running-config | include snmp
这可确保 community string(对于 SNMPv2)或 SNMPv3 用户详细信息正确无误。
4. 验证您的网络设备上是否已正确启用 SNMP。
在 Cisco 路由器上,登录控制台并运行:
show running-config | include snmp
此命令会显示当前生效的 SNMP 配置,并帮助确认 SNMP 是否已正确配置。
5. 确保 Zabbix 服务器与设备之间没有防火墙或网络问题阻止 SNMP 流量(通常使用 161 端口)。
您可以使用以下命令测试连通性:
nc -zv <device_IP> 161
nc -zv 用于检查设备上的 161 端口是否已开放并处于监听状态。
此外,如果您在 Ubuntu 上使用 UFW,请检查防火墙状态:
sudo ufw status
或者,对于 iptables:
sudo iptables -L -n
6. 查看 Zabbix 服务器日志文件中与 SNMP 相关的错误,以帮助定位问题:
tail -f /tmp/zabbix_server.log
tail -f 可让您实时监控日志更新。
另请参阅:
- 创建监控项 - 了解如何添加额外的指标。
- SNMP agent - 有关使用 Zabbix 进行 SNMP 监控的更多信息。
- 网络设备的标准化模板 - 有关可用 SNMP 模板的信息。
- 发现 SNMP OID - 有关在交换机上进行 SNMP 发现的更多信息。
- 配置网络发现规则 - 有关如何配置 Zabbix 用于发现主机和服务的网络发现规则的更多信息。