一. 環境介紹
系統版本:Centos7.4
zabbix-agent 版本:zabbix-agent 3.4.7
二. 問題現象
在使用zabbix的snmp方式的監控端口流量時,某一個圖總是斷斷續續的(被監控設備有較大的端口流量),經常會出現幾分鍾內沒有圖像的問題。

原因分析
這是因為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,就基本不可能再發生斷圖的情況了。




修改 Interface {#IFDESCR}: Bits received
- 鍵值 net.if.in[ifHCInOctets.{#SNMPINDEX}]
- SNMP OID ifHCInOctets.{#SNMPINDEX}
- SNMP community {$SNMP_COMMUNITY}

修改 Interface {#IFDESCR}: Bits sent
- 鍵值 net.if.out[ifHCOutOctets.{#SNMPINDEX}]
- SNMP OID ifHCOutOctets.{#SNMPINDEX}
- SNMP community {$SNMP_COMMUNITY}
修改后的參數


注意
修改完成過后,在半小時內流量的峰值會很大,過了這個時間段就好了。多觀察測試。