10 使用Zabbix监控网络交换机或路由器

介绍

本指南将引导您完成使用 Zabbix 开始对网络交换机或路由器进行基本监控所需的步骤。我们以 Cisco 路由器为例,但该流程适用于任何启用 SNMP 的网络设备。

本指南适用对象

本指南面向希望快速为网络设备启用基本监控功能的新 Zabbix 用户和网络管理员。如果您需要深度定制或高级配置选项,请参阅 Zabbix 手册中的 SNMP agent 页面或 Configuration 章节。

前提条件

在开始本指南之前,请确保您已完成以下准备:

  • 已安装 Zabbix server 和 Zabbix 前端:请根据您的操作系统安装指南进行安装(参见 Installation from packagesWeb interface installation)。
  • 已启用 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 file 包含正确的路径。

要验证系统是否识别新的 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 是否以描述性名称显示。

本指南基于以下设置:

  • Zabbix 版本:7.0(从软件包安装)
  • 操作系统发行版:Ubuntu
  • 操作系统版本:24.04.2+
  • Zabbix 组件:server、frontend,以及可选的 agent(如果监控本地网络指标)
  • 数据库:MySQL
  • Web 服务器:Apache
  • 网络设备:Cisco Catalyst 3750V2-24FS

假设您的网络设备已经物理安装并连接。

配置网络设备(Cisco路由器示例)

通过 SNMP 进行监控时,必须配置网络设备以允许 SNMP queries。以下示例适用于 SNMPv2,并未考虑现有设置。注意:应用这些命令可能会覆盖当前的 SNMP 配置。

对于 Cisco 路由器,配置通常包括以下步骤。

SNMPv2示例

1。启用 SNMP 并设置团体 string。

通过 Log in 连接到 Cisco 路由器的控制台并进入配置模式:

configure terminal

然后,通过指定只读团体 string 来 enable SNMP。例如:

snmp-server community <your_community_string> RO

<your_community_string> 替换为您的安全团体 string。注意:RO(只读)选项允许 SNMP 从设备检索数据,但防止任何配置更改。

出于安全原因,建议仅允许必要的设备访问 SNMP。有关配置访问控制列表(ACL)的更多指导,请参考 Cisco's official documentation

2。保存配置。

保存更改以确保 SNMP 设置在重启后仍然有效:

write memory

SNMPv3示例

SNMPv3 通过身份验证和加密提供了增强的安全性。其配置比 SNMPv2 更安全,应根据设备特定的文档进行验证。

1. 创建 SNMP 组。

配置启用了隐私(加密)的 SNMPv3 组:

configure terminal
       snmp-server group <your_group> v3 priv

2. 创建 SNMP 用户: 添加具有身份验证和隐私的 SNMPv3 用户。将占位符替换为所需的值:

snmp-server user <your_user> <your_group> v3 auth md5 <auth_password> priv aes 128 <priv_password>

3. 保存配置:

write memory

有关更多详细信息或特定型号的说明,您可以参考外部 Cisco SNMP configuration tutorials。不过,本指南提供了启用 SNMP 监控的基本步骤。

配置Zabbix前端

在Zabbix前端创建主机

1.登录到 Zabbix 前端。

2.添加新的 主机。

导航至 数据采集 > 主机,并点击 创建 主机

  • 主机名:为您的设备输入一个名称(例如,“Cisco 路由器”)。
  • 主机 组:选择一个现有的组或使用 create 创建一个新组,例如“网络设备”。
  • 接口:
    • 在接口下方点击 添加
    • 选择 SNMP 作为接口类型。
    • 输入您的 Cisco 路由器的 IP 地址或 DNS 名称。
    • 设置默认的 SNMP 端口(通常为 161)。
    • 使用下拉菜单选择适当的 SNMP version(例如 SNMPv2)。
    • 对于 SNMPv1/v2,在 SNMP community 字段中输入 community string。对于 SNMPv3,将提示输入额外的凭据(如 Context nameSecurity nameSecurity level 等)。

3.关联模板

模板 字段中,选择最适合您设备的 SNMP 模板。Zabbix 提供了许多预置的 设备,适用于多种设备系列。例如,如果您正在监控 Cisco 设备,请选择与设备操作系统或型号相对应的模板(如 Cisco IOS SNMP 或 Cisco Catalyst 3750<device model> SNMP)。

4.点击 添加 以保存 主机。

查看收集的指标

恭喜!Zabbix 现在已配置为监控您的网络设备。

最新数据:

  • 在 Zabbix 前端中,导航到 Monitoring > Latest data(监控 > 最新数据)。

  • 选择您的 “Cisco Router”(Cisco 路由器)主机(或已发现的 主机),以查看诸如硬件和网络运行时间、ICMP 丢包率、Ping 和响应时间等指标。

  • 图表和屏幕:

要可视化性能数据,请点击 SNMP 监控项 旁边的 Graphs(图表)以查看详细指标。

下一步您可以:

{HEADER_45292801}

一旦设置了主机,您就可以create 监控项以监控特定指标。注意:如果您使用的是模板,则此步骤是可选的,因为模板已经包含默认的监控项集合。

1. 确定 SNMP OID:

使用 snmpwalk 命令列出设备上的可用 OID。例如:

snmpwalk -v 2c -c <your_community_string> <device_IP> .

查找您希望监控的指标的 OID(例如,IF-MIB::ifHCInOctets.3 表示端口 3 的入站流量)。要get OID 的数字形式,您可以使用:

snmpget -v 2c -c <your_community_string> -On <device_IP> IF-MIB::ifHCInOctets.3

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] 用于单个值;
    • walk[1.3.6.1.2.1.31.1.1.1.6.3] 用于异步检索值的子树。

  • 预处理(如果需要):如果监控项返回的是累积计数器(如接口流量),请导航到预处理选项卡,并添加一个预处理步骤,例如“每秒变化值”以计算速率。

要在一次 SNMP 事务中检索多个值,可以使用语法 walk[OID1,OID2,...] 指定多个 OID。

在数字OID和MIB名称之间转换

在使用 SNMP 时,您可能需要在数字 OID 与其对应的 MIB 名称之间进行转换。这种转换有助于更轻松地识别和排查指标问题。

  • 将 MIB 名称转换为数字 OID:使用 snmptranslate 命令并带上 -On 选项。例如,将 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 名称:使用 snmptranslate 命令并带上 -IR(或 -m ALL)选项以执行反向转换。例如,将数字 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。导航到 User settings > Profile,切换到 媒介 标签页,然后单击 添加用户

2。按照 Receiving a problem notification 的指南进行操作。

下次当 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 部分消失。

SNMP监控故障排除

如果你注意到 Zabbix 前端中的 SNMP 图标显示为红色,或者未收集到数据,请尝试以下步骤:

  1. 检查 SNMP 连通性。

对于 SNMPv2 run,请使用来自您的 Zabbix server 的以下命令:

snmpwalk -v 2c -c <community_string> <device_IP> .

此命令验证设备是否响应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网络设备时,以下命令不得出现错误:

snmpwalk -v 2c -c <your_community_string> <device_IP> ifInOctets

这应该返回翻译后的OID而不会出现错误。

3。确认在 Zabbix 中配置的 SNMP version 和凭据与设备上设置的一致。例如,查看 Zabbix 主机 配置中的 SNMP 设置,并将其与设备的配置进行核对。在 Cisco 设备上,您可以通过运行以下命令来检查 SNMP 设置:

显示运行配置 | 包含 snmp

这确保了社区 string(针对 SNMPv2)或 SNMPv3 用户详情是正确的。

4。验证网络设备上是否已正确启用 SNMP。在 Cisco 路由器上,登录到控制台并运行以下命令:

显示运行配置 | 包含 snmp

此命令显示活动的 SNMP 配置,并帮助确认 SNMP 是否已正确配置。

5。确保没有防火墙或网络问题在Zabbix server与设备之间阻止 SNMP 流量(通常使用端口 161)。您可以使用以下命令测试连接性:

nc -zv <device_IP> 161

nc -zv 检查设备上端口 161 是否处于开放并监听状态。

此外,如果您在Ubuntu上使用UFW,请检查防火墙状态:

```bash

sudo ufw status


       或者,对于 iptables:

           sudo iptables -L -n

       6。查看 Zabbix server 日志文件中的任何与 SNMP 相关的错误,以帮助定位 问题:

           ```bash
       tail -f /tmp/zabbix_server.log

tail -f 允许您实时监控日志更新。

参见: