Zabbix下通过SNMP监控流量数据不准确的解决方案

生产项目,故不配图

开始

依旧是一个生产项目,这个机房用zabbix作为自己的资源监控平台,该机房监控接入交换机,汇聚交换机以及核心交换机的流量情况,其中核心交换机流量超过了10Gbps/s,但该机房的zabbix显示只有400Mbps-300Mbps的流量。

排错

刚接手,我首先怀疑是交换机是不是出问题了,我调出zabbix的汇聚图形后,发现接入层交换机大多数都是没问题的,流量准确,但是汇聚和核心的流量统计都不准,会出现大起大落的情况,而且一些接入交换机也会有大起大落的情况。
后以为是内网攻击,抓包后没发现异常流量。
经过比对发现,流量正常的交换机,带宽占用都比较少,峰值基本都在150Mbps以内,并且出问题的交换机,流量负载都很大,且出问题的交换机,在交换机内查看端口流量情况都是正常的。

经过如上排查,怀疑到zabbix平台上,在笔记本上临时自建了一个zabbix,经过测试后,和机房自己的zabbix平台有着同样的问题,那么应该是zabbix平台本身的问题。
后在zabbix论坛上搜索,搜索出了 [Graphs not working over 400MB of traffic?] (https://www.zabbix.com/forum/zabbix-help/39403-graphs-not-working-over-400mb-of-traffic) 这个问题大概意思是,你需要把zabbix的SNMP模板的默认32位计数器改为64位的计数器,不然在大于400M-500M的网络上运行,显示会不准确。

在笔记本的zabbix上测试后,发现的确可以,但这篇文章并没有讲出为什么(但当时看到32位64位心里能猜出大概是什么问题了)
后续在百度上看到比较完整的解释 [使用counter64解决通过SNMP获取网络流量数据不准问题] (https://www.bilibili.com/read/cv13932601/) 和心里猜的大差不差。

操作

因为这个生产项目较大,为了防范可能的风险,故不配图。
具体操作如下:

  1. 点击 配置 > 模板 > Template SNMP Interfaces 选择全克隆
  2. 编辑一下新模板名称,比如 Template SNMP Interfaces 64bit
  3. 点击 自动发现规则(Discovery Rules)(我发现这里的翻译好像不太统一,注意比对) > Network interfaces > 监控项原型(有译项目原型)
  4. 分别编辑 Incoming traffic on interface { #SNMPVALUE}Outgoing traffic on interface { #SNMPVALUE}
  5. 键值 从原先的 ifOutOctets[{ #SNMPVALUE}] 改为 ifHCOutOctets[{ #SNMPVALUE}];SNMP OID 从原先的 IF-MIB::ifOutOctets.{ #SNMPINDEX} 改为 IF-MIB::ifHCOutOctets.{ #SNMPINDEX},另一边同理。
  6. 重新添加主机

完事


Zabbix下通过SNMP监控流量数据不准确的解决方案
http://www.evec.cc/2022/10/27/zabbix_snmp_traffic_not_showing_correct_value/
作者
前夕
发布于
2022年10月27日
许可协议