SNMP 實戰1

weixin_34067049發表於2015-12-14

實戰snmp

   1,為什麼需要snmp?

         對於大部分運維人員來說監控一臺伺服器不是什麼大問題,開源方案提供了很多的解決方法,但是現在需要你監控多型別硬體,多型別系統,可能帶來很多麻煩。熟悉運維工作的人一定會想到naigos,cacti,等等。那麼它們是怎麼實現對伺服器的監控的呢?那就是snmp!!!

     2,什麼是snmp?

             簡單網路管理協議(SNMP),由一組網路管理的標準組成,包含一個應用層協議(application layer protocol)、資料庫模型(database schema),和一組資料物件。該協議能夠支援網路管理系統,用以監測連線到網路上的裝置是否有任何引起管理上關注的情況。該協議是網際網路工程工作小組(IETF,Internet Engineering Task Force)定義的internet協議簇的一部分。

      3,snmp是如何工作的?

           

 

駐留在被管裝置上的AGENT從UDP埠161接受來自網管站的報文,經解碼、團體名驗證、分析得到管理變數在MIB樹中對應的節點,從相應的模組中得到管理變數的值,再形成響應報文,編碼傳送回網管站。網管站得到響應報文後,再經同樣的處理,最終顯示結果。

詳細介紹Agent接受到報文後採取的動作: 

第一步:解碼生成用內部資料結構表示的報文,如果解碼過程中出現錯誤導致解碼失敗則丟棄該報文,不做進一步處理。

第二步:將報文中的版本號取出,如果與本Agent支援的SNMP版本不一致,則丟棄該報文,不做進一步處理。

第三步:將報文中的團體名取出,此團體名由發出請求的網管站填寫。如與本裝置認可的團體名不符,則丟棄該報文,不做進一步處理,同時產生一個陷阱報文。SNMPv1只提供了較弱的安全措施,在版本3中這一功能將大大加強。

第四步:從通過驗證的ASN.1物件中提出協議資料單元PDU,如果失敗,丟棄報文,不做進一不處理。否則處理PDU,結果將產生一個報文,該報文的傳送目的地址應同收到報文的源地址一致。 

 

        4,snmp的基本操作

 

 

       5,管理資訊庫(MIB)

    MIB 定義了可以通過網路管理協議進行訪問的管理物件的集合。MIB 可以描述為一棵樹,各個資料項構成了樹的葉結點。每個 MIB 物件都有一個唯一的物件識別符號(OID)來標識和命名,這個識別符號取決於 MIB 物件在樹中的位置,而物件的例項也有識別符號,由物件類的物件識別符號加上例項識別符號構成的。 

      物件命名樹的頂級物件有三個,即ISO、ITU-T和這兩個組織的聯合體。在ISO的下面有4個結點,其中的一個(標號3)是被標識的組織。在其下面有一個美國國防部(Department of Defense)的子樹(標號是6),再下面就是Internet(標號是1)。在Internet結點下面的第二個結點是mgmt(管理),標號是2。再下面是管理資訊庫,原先的結點名是mib。1991年定義了新的版本MIB-II,故結點名現改為mib-2,其標識為{1.3.6.1.2.1},或{Internet(1) .2.1}。這種標識為物件識別符號。

         MIB-II管理的資訊有10個類別,如下:

       

     6,如何通過snmp獲取伺服器的資訊

            上面已經介紹了MIB的結構,那麼如何在MIB中查詢自己想要伺服器的資訊呢?

            所有裝置的基本資訊會放在。1.3.6.1.2.1

            如:

               檢視系統資訊

[root@R710 ~]# snmpwalk -v 2c -c 'public' 10.11.45.70  1.3.6.1.2.1.1.1

SNMPv2-MIB::sysDescr.0 = STRING: Linux R410-70 2.6.32-71.el6.x86_64 #1 SMP Fri May 20 03:51:51 BST 2011 x86_64

              檢視主機名

 

[root@R710 ~]# snmpwalk -v 2c -c 'public' 10.11.45.70  1.3.6.1.2.1.1.5

SNMPv2-MIB::sysName.0 = STRING: R410-70

                檢視ip地址

 

[root@R710~]# snmpwalk -v 2c -c 'public' 192.168.0.1  1.3.6.1.2.1.4.20.1.1

IP-MIB::ipAdEntAddr.192.168.0.1 = IpAddress: 192.168.0.1

IP-MIB::ipAdEntAddr.x.x.x.x = IpAddress: x.x.x.x 

IP-MIB::ipAdEntAddr. x.x.x.x   = IpAddress: x.x.x.x 

IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1

 

 

             所有裝置基本資訊和cisco一樣,可以在一下網站查詢

               http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=en

例如查詢系統資訊:

 

 

        enterprises.私有MIB和OID

         如果你通過公開的MIB和OID無法採集得到監控資料,可以嘗試在企業私有的MIB和OID中查詢。 
例如H3C的私有MIB和OID沒有公開,所以只有自己動手尋找。企業的私有MIB存在於 1.3.6.1.4.1下面,H3C也不例外。查詢企業私有的MIB方法如下: 
#snmpwalk -v 2c -c xxx 10.180.20.1 1.3.6.1.4 .1 > 7502.txt 
從輸出內容來看H3C的私有MIB是:SNMPv2-SMI::enterprises.2011 使用的enterprises number為2011,跟Huawei一樣的。 
使用分支可能包括包括如下分支: 
SNMPv2-SMI::enterprises.2011.1 
SNMPv2-SMI::enterprises.2011.2 
SNMPv2-SMI::enterprises.2011.5 
SNMPv2-SMI::enterprises.2011.6 
SNMPv2-SMI::enterprises.2011.10 

SNMPv2-SMI::enterprises.2011.18

 

 

       查詢企業私有的MIB和OID網站如下

           http://www.oidview.com/mibs/detail.html

 

相關資料

         debian相關資訊 http://www.debianadmin.com/linux-snmp-oids-for-cpumemory-and-disk-statistics.html

相關文章