本指南将引导您完成使用Zabbix对网络交换机或路由器进行基础监控所需的步骤。 示例采用思科路由器,但该流程适用于任何支持SNMP的网络设备。
目标读者
本指南面向需要快速启用网络设备基础监控的Zabbix新用户和网络管理员。 如需深度定制或高级配置选项,请参阅SNMP agent页面或Zabbix手册中的Configuration章节。
先决条件
开始前请确保已具备:
Ubuntu系统安装MIB文件:
1. 安装MIB下载工具包:
如需添加厂商特定MIB(如思科、Juniper),将其放置到对应目录:
确保MIBDIRS环境变量或snmp.conf的file包含正确路径
验证系统是否识别新MIB:
详细说明请参考SNMP库文档:
2. 编辑/etc/snmp/snmp.conf并注释以mibs :开头的行以加载所有可用MIB
3. 通过运行snmpwalk(例如snmpwalk -v 2c -c <your_community_string> <device_IP>)验证OID是否显示描述性名称
本指南基于以下环境:
假设您的网络设备已完成物理安装和连接
要通过SNMP进行监控,您必须配置网络设备以允许SNMP queries。 以下示例适用于SNMPv2且不考虑现有设置。 注意:应用这些命令可能会覆盖当前的SNMP配置。
对于Cisco路由器,配置通常涉及以下步骤。
1. 启用SNMP并设置团体字符串string.
Log in 连接到您的Cisco路由器控制台并进入配置模式:
然后,enable SNMP 通过指定只读团体字符串string. 例如:
将<your_community_string>替换为您安全的团体字符串string. 注意: RO(只读)选项允许SNMP从设备检索数据但阻止任何配置更改.
出于安全考虑,建议将SNMP访问限制在仅必要的设备上. 有关配置访问控制列表(ACLs)的更多指导,请参阅Cisco's official documentation.
2. 保存配置.
保存您的更改以确保SNMP设置在重启后仍然有效:
SNMPv3通过认证和加密提供增强的安全性。 其配置比SNMPv2更安全,应参照设备特定文档进行验证。
1. 创建SNMP组。
配置启用隐私(加密)的SNMPv3组:
2. 创建SNMP用户。
添加具有认证和隐私功能的SNMPv3用户。 将占位符替换为您需要的值:
3. 保存配置:
如需更多详情或型号特定说明,可参考外部Cisco SNMP configuration tutorials。 本指南仅提供启用SNMP监控的基本步骤。
1. 登录Zabbix前端界面.
2. 添加一个新的主机.
导航至数据采集 > 主机并点击创建主机.
主机名: 输入设备名称(例如"Cisco路由器").
主机组: 选择现有组或create新组如"网络设备".
接口:
3. 链接模板
在模板字段中, 选择最匹配您设备的SNMP模板. Zabbix为多种设备系列提供了预建的设备. 例如, 如果您正在监控Cisco设备, 请选择与设备操作系统或型号对应的模板(如Cisco IOS SNMP或Cisco Catalyst 3750<设备型号> SNMP).
4. 点击添加保存主机.


恭喜!Zabbix 现在已配置为监控您的网络设备。
最新数据:


要可视化性能数据,请点击 SNMP 监控项 旁边的 Graphs(图表)以查看详细指标。
下一步您可以:
当主机设置完成后,您可以create监控项来监控特定指标。 注意:如果使用模板,此步骤为可选,因为模板已包含默认的监控项集合。
1. 识别SNMP OID:
使用snmpwalk命令列出设备上可用的OID。 例如:
找到您希望监控的指标对应的OID(例如,IF-MIB::ifHCInOctets.3表示端口3的入站流量)。 要get数字OID,可以使用:
2. 创建SNMP 监控项:
导航至数据采集 > 主机,点击您的SNMP 主机的监控项选项卡,然后点击创建监控项。
名称:输入描述性名称(例如“端口3入站流量”)。
类型:选择SNMP agent。
键:提供有意义的键(例如cisco.ifHCInOctets.3)。
主机接口:确保已选择SNMP接口。
SNMP OID:使用支持的格式输入OID,例如:
get[1.3.6.1.2.1.31.1.1.1.6.3] for a single value;walk[1.3.6.1.2.1.31.1.1.1.6.3] to retrieve a subtree of values asynchronously.`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]``用于异步获取子树值。


要在单个SNMP事务中获取多个值,可以使用语法walk[OID1,OID2,...]指定多个OID。
在使用SNMP时,您可能需要在数字OID与其对应的MIB名称之间进行转换。 这种转换有助于更轻松地识别和排查指标问题。
-On选项的snmptranslate命令。 例如,要将MIB名称IF-MIB::ifHCInOctets.3转换为其数字OID,run:该命令可能输出:
-IR(或-m ALL)选项的snmptranslate命令进行反向转换。 例如,要将数字OID.1.3.6.1.2.1.31.1.1.1.6.3转换回其MIB名称,run:该命令可能输出:
本指南提供了发送电子邮件警报的基本配置步骤。

下次当 Zabbix 检测到问题时,您应该会通过电子邮件接收到警报。
为确保 Zabbix 能正确检测网络性能 问题,可通过增加 ICMP ping 响应时间阈值来模拟真实问题。
1. 在 Zabbix 中打开你的 "Cisco Router" 主机 配置。
2. 转到 Macros 标签页,并选择 Inherited and 主机宏。
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 部分消失。
如果您发现Zabbix前端中的SNMP图标显示为红色或未收集到数据,请尝试以下步骤:
1. 检查SNMP连通性。
对于SNMPv2 run,从您的Zabbix server执行以下命令:
该命令验证设备是否响应SNMP queries。
对于SNMPv3,需包含正确的SNMPv3凭据:
snmpwalk -v3 -u <your_user> -l authPriv -a MD5 -A <auth_password> -x AES -X <priv_password> <device_IP> .这将验证SNMPv3凭据是否正确以及设备是否安全响应。
2. 确保MIB文件已安装并启用,如前提条件所述。 要确认这一点,当您query网络设备时,以下命令不应报错:
该命令应返回翻译后的OID且无错误。
3. 确认Zabbix中配置的SNMP version和凭据与设备设置匹配。 例如,检查Zabbix 主机配置中的SNMP设置,并与设备配置进行比对。 在Cisco设备上,您可以通过运行以下命令查看SNMP设置:
这确保团体字string(对于SNMPv2)或SNMPv3用户详细信息正确。
4. 验证网络设备上是否正确启用了SNMP。 在Cisco路由器上,登录控制台并run:
该命令显示活动的SNMP配置,帮助确认SNMP是否正确配置。
5. 确保没有防火墙或网络问题阻止Zabbix server与设备之间的SNMP流量(通常在端口161)。 您可以使用以下命令测试连通性:
nc -zv <设备IP> 161
nc -zv检查设备上的161端口是否开放并监听。
此外,如果您在Ubuntu上使用UFW,检查防火墙状态:
或对于iptables:
6. 查看Zabbix server日志文件中任何与SNMP相关的错误,以帮助定位问题:
tail -f允许您实时监控日志更新。
参见: