侧边栏壁纸
博主头像
学海无涯博主等级

有疑问可发邮件zp@wlzs.cn。

  • 累计撰写 346 篇文章
  • 累计创建 94 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

使用zabbix监控网络带宽并实现阈值告警

利刃
2026-06-30 / 0 评论 / 0 点赞 / 4 阅读 / 5139 字
温馨提示:
本文最后更新于 2026-06-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

概述

在网络运维工作中,经常遇到由于外网带宽超出,导致上网速度慢,没有监控系统时,遇到问题只能一摸黑,无法快速直观的定位问题。

过程

获取oid

根据官方查询,有以下4个OID可以查询到接口流量信息,其中含HC的对象数据位数为62位,不含HC的对象为32位。32位计数最大值约为 42.9亿(2^32 - 1)。在千兆网络中,仅需约34秒就会计满并归零(翻转)。如果采集周期大于这个时间,就会漏掉翻转数据,导致流量计算严重错误,而64位最大值约为 1.84×10^19(2^64 - 1)。在千兆网络中,需要数百年才会翻转。即使万兆网络,也需要数百年,因此基本不存在翻转问题,数据绝对准确。因此在能够使用HC对象的情况下,优先使用HC对象。

对象名称 OID 对象含义 MIB文件
ifInOctets 1.3.6.1.2.1.2.2.1.10 该接口入方向通过的总字节数,包括分桢的数据。在管理系统的重新初始化和ifCounterDiscontinuityTime项指定的时间内,该节点的值将出现不连续的情况。 IF-MIB
ifOutOctets 1.3.6.1.2.1.2.2.1.16 该接口出方向通过的总字节数,包括分桢的数据。在管理系统的重新初始化和ifCounterDiscontinuityTime项指定的时间内,该节点的值将出现不连续的情况。 IF-MIB
ifHCInOctets 1.3.6.1.2.1.31.1.1.1.6 接口上接收到的字节总数,包括成帧的字符。该节点有64 bit,是ifInOctets的扩充。 当管理系统重新初始化或其他一些时间,该计数器的取值可能出现不连续,这也可以通过观察ifCounterDiscontinuityTime的值了解。 IF-MIB
ifHCOutOctets 1.3.6.1.2.1.31.1.1.1.10 接口发送的字节总数,包括成帧字符。该节点是ifOutOctets的扩充,有64 bit。 当管理系统重新初始化或其他一些时间,该计数器的取值可能出现不连续,这也可以通过观察ifCounterDiscontinuityTime的值了解。 IF-MIB

创建监控项

获取监控端口所对应的index值,用于确认端口最终oid。

对象名称 OID 对象含义 MIB文件
ifName 1.3.6.1.2.1.31.1.1.1.1 由本地设备分配的接口名。该接口名可以通过设备终端命令行输入。该值可能是一个文本形式的名字,如“le0”,也可能是一个简单的端口号,如“1”。这取决于设备上对接口名的定义。 如果ifTable中的几条记录共同描述一个接口,那么这几条记录中的ifName的节点值是相同的。 注意:如果代理响应的是SNMP关于其他设备接口的查询,那么该节点的值是代理设备的本地名。如果代理设备没有本地名或者这个节点不可用,该节点没有值。 IF-MIB

在zabbix服务器上,通过snmpwalk获取

[root@localhost ~]# snmpwalk -Cc -v 2c -c xiaola.local 192.168.241.1 1.3.6.1.2.1.31.1.1.1.1
IF-MIB::ifName.1 = STRING: NULL0
IF-MIB::ifName.2 = STRING: InLoopBack0
IF-MIB::ifName.3 = STRING: Virtual-if0
IF-MIB::ifName.4 = STRING: 10GE0/0/0
IF-MIB::ifName.5 = STRING: 10GE0/0/1
IF-MIB::ifName.6 = STRING: GE0/0/0
IF-MIB::ifName.7 = STRING: GE0/0/1
IF-MIB::ifName.8 = STRING: GE0/0/2
IF-MIB::ifName.9 = STRING: GE0/0/3
IF-MIB::ifName.10 = STRING: GE0/0/4
IF-MIB::ifName.11 = STRING: GE0/0/5
IF-MIB::ifName.12 = STRING: GE0/0/6
IF-MIB::ifName.13 = STRING: GE0/0/7
IF-MIB::ifName.14 = STRING: GE0/0/8
IF-MIB::ifName.15 = STRING: GE0/0/9
IF-MIB::ifName.16 = STRING: Vlanif1

通过以上信息,可以得到G0/0/9口对应的索引值为15,也就可以得到具体的9口的ifHCInOctets、ifHCOutOctets对应的最终oid为以下
ifHCInOctets

1.3.6.1.2.1.31.1.1.1.6.15

ifHCOutOctets

1.3.6.1.2.1.31.1.1.1.10.15

image.png
创建预处理
“每秒更改”:(当前采集到的值 - 上一次采集到的值) ÷ (当前采集时间 - 上一次采集时间)
“自定义倍数”:对采集到的原始数据进行单位换算,具体来说,就是将 SNMP 设备上报的字节(Bytes) 数据,转换成监控中常用的比特(Bits)
image.png
设置标记
interface标记为GE0/0/9可以将端口进行按标记汇总。
image.png
在最新数据中,可以看到具体的数值

image.png
image.png
根据以上步骤,创建ifHCOutOctets的监控
image.png

创建图表

image.png

image.png

创建触发器

使用变量BANDWIDTH来定义设置阈值,方便进行调控。也可以分别定义上行和下行带宽的变量。
image.png
image.png
image.png
设置变量值BANDWIDTH为85,当带宽超过85M后就会告警,低于85M就会恢复。
image.png

告警测试

image.png

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区