解决Zabbix5、zabbix7用snmp监控网络流量不准或断图的问题
发现Zabbix用snmp监控网络流量不准的问题好久了,根据防火墙或上网行为的显示流量远远过300Mbps,但是zabbix图形上显示的差别很大。今天终于找到一篇文章http://www.linuxidc.com/Linux/2014-12/110547.htm才解决了显示异常的问题,但是暂时修改后会出现无法自动添加图形,只能手动添加图形。在zabbix中导出template snmp inter
发现Zabbix用snmp监控网络流量不准的问题好久了,根据防火墙或上网行为的显示流量远远过300Mbps,但是zabbix图形上显示的差别很大。
今天终于找到一篇文章解决Zabbix用snmp监控网络流量不准的问题_服务器应用_Linux公社-Linux系统门户网站 才解决了显示异常的问题,但是暂时修改后会出现无法自动添加图形,只能手动添加图形。
这是因为item中是使用MIB中的ifInOctets(OID:1.3.6.1.2.1.2.2.1.10)和 ifOutOctets(OID:1.3.6.1.2.1.2.2.1.16)作为获取端口流量的依据的。其表示某接口流入或流出的数据总量。
这里解释一下,因为取到的值是数据的总量,所以我们在设置item时会使用前后两次取到的差值除以时间得到一个接口速率。当zabbix得到一个小于等于0的差值时就会认为取值错误。
但是这两个OID的数据类型为32位,所能表示的最大值就是2^32Byte=4GB,这是很容易就可以超出的累加值。当设备的该值累加到4GB时就会清0,然后重新进行累加。然后由于清0以后计算的差值有误(差值是小于零的数),就会出现断图的情况。
为了解决这个问题,需要将取值使用的OID改成ifHCInOctets(1.3.6.1.2.1.31.1.1.1.6)和ifHCOutOctets( 1.3.6.1.2.1.31.1.1.1.10),这两个OID的数据类型为64位,所能表示的最大值就是2^64Byte=16777216TB,就基本不可能再发生断图的情况了。
zabbix5解决方法
在zabbix中导出template snmp interfaces模板,然后修改一下名字,重新导入。修改这个新的模板:
在“探索规则”中找到“项目原型”,点击“Incoming traffic on interface {#SNMPVALUE}”,
1.将其“键值”中的ifInOctets[{#SNMPVALUE}]修改为ifHCInOctets[{#SNMPVALUE}]
2.将“SNMP OID”中的IF-MIB::ifInOctets.{#SNMPINDEX}修改为IF-MIB::ifHCInOctets.{#SNMPINDEX}
同样:“项目原型”中的“Outgoing traffic on interface {#SNMPVALUE}”也做类似修改。
也就是将ifInOctets和ifOutOctets替换为ifHCInOctets和ifHCOutOctets。
然后把主机删除,重新添加主机,这次一切都清爽了,绘的图都是连续的,也没再出现陡增陡降的问题
zabbix7模板的名字不一样了,不能使用zabbix5的模板,网络设备模块的名字为“Network Generic Device by SNMP” 。打开菜单中数据采集-模板,找到“Network Generic Device by SNMP”克隆一个为“Network Generic Device by SNMP64”,再去改复制模板的配置。
点自动发现
点监控项原型
间隔我由3m改成30秒,还有将ifInOctets和ifOutOctets替换为ifHCInOctets和ifHCOutOctets,及更新对应oid。
为了对比我没有删除旧主机,使用重新添加一个的方式:
上图是使用新模板显示的效果,下图是同时间段旧模板显示的效果:
这里强调一下:直接更改主机里关联的模板是没有用的,一定要是新建的主机使用新模板才生效。
原理:snmp计数器的机制,如果溢出了,则清0重新记录。
另外,如果是count32,最大支持的值是2^32=4G,也就是说超过4G,交换机snmp计数器自动溢出,然后从0开始重新计数.然后,由于清零以后计算的差值有误,就会出现断图的情况。替换为count64位数据类型,基本就不可能再发生断图的问题
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)