解決zabbix用snmp監控網絡流量不許的問題

公司新上了一個新的數據中心,須要用zabbix監控華三交換機的網絡流量。網絡

配好snmp協議以後,正常都能識別,但慢慢的發現一個問題,電信的接口常常出現少數據的狀況,但聯通和鐵通都沒有什麼問題。ide

zabbix繪的圖斷斷續續的,有時更神奇的是,流量忽然降低,降低的還很離譜,從500多Mbps一下掉到40多Mbps,一度覺得是交換機返回的數據有問題了。spa

後來在zabbix機器上抓包,發現數據包沒有丟,數據也沒有什麼異常,不過抓的包裏面,有個counter32引發注意。接口

而後仔細閱讀snmp的文檔,發現snmp協議返回的ifInOctets和ifOutOctets都是流量的總量,而咱們都是取兩次的差值,而後除以取樣的間隔時間,得出的平均值。ci

而counter32的數據類型計數的最大值是2的32次方減1,當超過4G的時候,計數器就會清零。文檔

後來分析zabbix的snmp interface的模板,發現zabbix取樣時間是1分鐘,在咱們因爲流量大,很快就清零了,而且有時計數清零以後新增的數值,比上一次的計數還要大,zabbix還覺得沒清過零,直接相減除以了時間間隔,就形成了「網絡流量陡降的假象」。原型


找到緣由以後,剩下的就好辦了,咱們須要的是,使用counter64的oid數據。it


在zabbix中導出template snmp interfaces模板,而後修改一下名字,從新導入。修改這個新的模板:模板

在「探索規則」中找到「項目原型」,點擊「Incoming traffic on interface {#SNMPVALUE}」,class

  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。


而後把主機刪除,從新添加主機,此次一切都清爽了,繪的圖都是連續的,也沒再出現陡增陡降的問題。

相關文章
相關標籤/搜索