如何使用snmp計算接口帶寬

providing an example is a good idea.
time= 60 seconds
Diff. Inoctets = 1427697887 - 1427402450 = 295437 octets received in 60 seconds
1 octet = 8 bits
average bit rate = Diff.InOcoctets*8/60 =
39391,6 bps
so the usage is :
39391,6 / 1544000 = 2,55 % usage of BW inbound direction
you can perform a similar calculation for outbound direction
Hope to help
Giuseppe

作爲運維的日常工作,看監控是我們每天都做的事情。突然有點好奇,zabbix,cacti這類軟件通過snmp監控流量計算的方法依據是什麼呢?於是google一番,得到一些結論。

首先 ,交換機提供的snmp信息中並沒有直接的端口帶寬,而只有端口上的流量數據。

以下是Cisco在其IF-MIB文件中對於端口接收(IN)流量的定義:
ifHCInOctets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of octets received on the interface,
            including framing characters.  This object is a 64-bit
            version of ifInOctets.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { ifXEntry 6 }

可以看到,這個ifHCInOctets取到的值是"端口收到的octets的總數"。

那麼RFC中的Octet這量詞是什麼呢?繼續google,發現octet是指8個二進制位(bit),那麼8bits不就是一個Byte嗎?爲啥不用Byte這個大衆化量詞呢?

區別是:
Octet 總是表達8個bit,就像他名字所說的。
Byte 通常情況下也表示8個bit,但是準確的說,Byte表示的是CPU可以獨立的尋址的最小內存單位(不過通過移位和邏輯運算,CPU也可以尋址到某一個單獨的bit)。
曾幾何時,有些電腦的尋址單位不是8Bit的。當然,當前來說大多數情況下byte可以和octet等價,但是如果你想要強調準確的8bit時,你就應該使用octet而不是byte。

另外,還有一個量詞 nibble用來形容一個字節的一半 (通常是4bit)不過這個詞基本上沒人用就是了。

然後又google到了Cisco的一篇文檔,說明了如何通過端口的流量來計算帶寬。
具體可以看參考文檔,直接說結論,對於全雙工網絡建議將IN和OUT流量分開計算,公式如下:
如何使用snmp計算接口帶寬
也就是前後取兩次接口的流量值相減,然後乘以8,再除以兩次取值的時間間隔(以秒爲單位),這樣得到的是bits/s
可以再除1024的平方,變爲Mbits/s。

但是上邊的公式並不完善,爲什麼呢?因爲ifHCInOctets是個64bits的計數器,儘管這個數字已經很大了,但在長期使用以後還是會達到最大值,接着計數器會迴環,直接清零。那麼問題來了,如果剛好前一次和後一次取值的中間,遇到了計數器清零了呢?後一次減一次的值就會是負數。那麼這種問題應該怎麼處理呢?請參考如下代碼:
如何使用snmp計算接口帶寬

以上就是如何通過snmp計算接口帶寬的方法啦,打完收工。

參考文檔:
1.http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/8141-calculate-bandwidth-snmp.html
2.http://blog.chasefox.net/calculating-ifinoctets/
3.ftp://ftp.cisco.com/pub/mibs/v2/IF-MIB.my
4.http://blog.icybear.net/2009/09/octets-vs-bytes.html

5.http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/26007-faq-snmpcounter.html






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章