本文目录导读:

Zabbix 监控网络流量主要通过两种方式:SNMP(简单网络管理协议) 监控网络设备的接口流量(如交换机、路由器、防火墙),以及 Zabbix Agent 监控服务器或主机的网络接口流量。
以下是具体的方法和配置步骤:
通过 SNMP 监控网络设备流量(最常用)
适用于监控路由器、交换机、防火墙等网络硬件设备的端口带宽。
步骤 1:启用设备 SNMP
- 登录到网络设备(如 Cisco、Huawei、H3C)的 Web 界面或 CLI。
- 配置 SNMP v2c 或 v3 的团体字(Community String),
public或自定义。 - (可选)限制 SNMP 访问的源 IP 为 Zabbix 服务器 IP。
步骤 2:在 Zabbix 前端添加主机
- 进入 配置 -> 主机 -> 创建主机。
- 填写信息:
- 主机名称:
核心交换机-1。 - 可见名称:可自定义。
- 群组:选择(或创建)“网络设备”群组。
- 接口:添加 SNMP 接口,填写设备的 IP 地址,端口默认 161。
- 主机名称:
- 启用主机:确保状态为“启用”。
步骤 3:关联模板
- 推荐模板:搜索
Template Module ICMP Ping(监控存活状态)和Template Net Network Generic(通用网络接口监控)。 - 更详细的模板(对于华为、Cisco 等):Zabbix 内置模板不匹配,可以在市场下载第三方模板。
- 点击“更新”:Zabbix 会自动发现设备上的所有网络接口。
步骤 4:查看流量数据
- 进入 监测 -> 主机 -> 点击目标主机的 最新数据。
- 筛选器搜索
traffic、bits或ifInOctets、ifOutOctets。 - 你会看到类似
Incoming traffic on interface GigabitEthernet0/1和Outgoing traffic on interface GigabitEthernet0/1的数据。 - 关键理解:Zabbix 监控的是 bits per second(每秒比特数),而不是简单的字节数。
通过 Zabbix Agent 监控服务器网卡流量
适用于 Windows 或 Linux 服务器本身的网络接口。
步骤 1:安装并配置 Zabbix Agent
- 在目标服务器上安装 Zabbix Agent(确保版本与 Server 兼容)。
- 配置
zabbix_agentd.conf:Server=(指向 Zabbix Server IP)Hostname=(与前端主机名一致)。
步骤 2:在 Zabbix 前端添加主机
- 创建主机:
- 填写主机名、群组。
- 接口选择 Agent 接口,填写服务器 IP,端口默认 10050。
- 关联模板:
- 对于 Linux 服务器:关联
Template OS Linux by Zabbix agent。 - 对于 Windows 服务器:关联
Template OS Windows by Zabbix agent。 - 这些模板已内置网卡流量监控项。
- 对于 Linux 服务器:关联
步骤 3:查看数据
- 同样在 监测 -> 最新数据 中,搜索
net.if.in和net.if.out。 - 你会看到每个网卡(eth0, ens33, em1 等)的入站和出站流量。
自定义监控项(高级)
如果内置模板无法满足需求(例如监控特定端口的流量并限制触发告警的带宽阈值),可以手动创建监控项。
示例:手动创建一个监控 Cisco 交换机端口 GigabitEthernet1/0/1 入站流量的监控项
- 进入主机 -> 监控项 -> 创建监控项。
- 配置:
- 名称:Port G1/0/1 Incoming Traffic
- 键值:
ifInOctets["GigabitEthernet1/0/1"](注意 OID 或 SNMP 名称要正确) - 类型:SNMP v2 agent(或 v3)
- SNMP OID:
3.6.1.2.1.2.2.1.10.1(需要将最后的.1替换为端口 ifIndex) - 信息类型:数字(无符号)
- 单位:bps
- 数据获取方式:
速度(Zabbix 会自动计算差值并转换单位) - 更新间隔:60s(或更高)
常见问题与调优
-
流量单位显示为 Mbps 还是 bps?
- Zabbix 默认将单位显示为
bps(比特/秒),如果你看到数值很大(如 50000000),表示大约 50Mbps,可以使用触发器或图形来显示为Mbps(除以1000000)。
- Zabbix 默认将单位显示为
-
为什么监控到的流量是 0?
- 确认 SNMP 团体字(Community)是否正确。
- 确认 Zabbix 服务器到网络设备的 网络可达性(包括防火墙放行 SNMP 端口 161)。
- 确认设备上的 接口状态 是 up/up(协议和物理都正常)。
- 检查 ifIndex 是否正确。
ifIndex是端口在设备上的数字标识,通常可以从设备的show snmp mib ifmib ifindex(华为)或show interface(Cisco)中获取。
-
如何设置告警?
- 创建 触发器:
{HOSTNAME:net.if.in[eth0].avg(5m)} > 500M(入站流量过去5分钟平均值超过 500Mbps)
- 或者使用 网络端口发现(LLD, Low-Level Discovery) 自动生成的触发器,设置特定端口的带宽阈值。
- 创建 触发器:
-
性能优化:批量获取数据
- 如果设备拥有上百个端口,建议使用 SNMP Bulk Get(在主机宏中设置
{$SNMP_BULK}为yes)来提高数据获取效率。
- 如果设备拥有上百个端口,建议使用 SNMP Bulk Get(在主机宏中设置
| 场景 | 推荐方法 | 关键配置 |
|---|---|---|
| 网络设备 (交换机/路由器) | SNMP 监控 | 启用设备 SNMP → 添加 SNMP 接口 → 关联网络模板 |
| 服务器 (Linux/Windows) | Agent 监控 | 安装 Agent → 添加 Agent 接口 → 关联 OS 模板 |
| 特定端口或自定义阈值 | 自定义监控项 | 手动创建监控项,指定 OID 或键值,并设置触发器 |
最简单快速入门的方式是:
- 确保你的网络设备开启了 SNMP。
- 在 Zabbix 中添加该设备(选择 SNMP 接口)。
- 关联模板
Template Net Network Generic。 - 等待几分钟看数据。
如果你能告诉我你具体想监控的设备类型(如 Cisco 交换机、Linux 服务器、华为防火墙),我可以提供更针对性的配置建议。
标签: zabbix监控