如何使用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流量分開計算,公式如下:

0023u9s8zy71eZgpcZxaf
也就是前後取兩次接口的流量值相減,然後乘以8,再除以兩次取值的時間間隔(以秒爲單位),這樣得到的是bits/s

可以再除1024的平方,變爲Mbits/s。


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

0023u9s8zy71f0kHCsYc4

以上就是如何通過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



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