SNMP協議介紹
1、SNMP 協議介紹
SNMP是英文“Simple Network Management Protocol”的縮寫,中文意思是“簡單網絡管理協議,SNMP是一種簡單網絡管理協議,它屬於TCP/IP五層協議中的應用層協議,用於網絡管理的協議,SNMP主要用於網絡設備的管理。
SNMP的基本思想:為不同種類的設備、不同廠家生產的設備、不同型號的設備,定義為一個統一的接口和協議,使得管理員可以是使用統一的外觀面對這些需要管理的網絡設備進行管理。通過網絡,管理員可以管理位於不同物理空間的設備,從而大大提高網絡管理的效率,簡化網絡管理員的工作。
SNMP協議是TCP/IP協議簇的一個應用層協議,在1988年被制定,並被Internet體系結構委員會(IAB)采納作為一個短期的網絡管理解決方案,由於SNMP的簡單性,在Internet時代得到了蓬勃的發展,1992年發布了SNMPv2版本,以增強SNMPv1的安全性和功能,SNMP的協議版本目前有SNMP v1、SNMP v2c和SNMP v3三種版本,其具體差別如下:
- SNMP v1采用團體名(Community Name)認證,團體名用來定義SNMP NMS和SNMP Agent的關系,如果SNMP報文攜帶的團體名沒有得到設備的認可,該報文將被丟棄,團體名起到了類似於密碼的作用,用來限制SNMP NMS對SNMP Agent的訪問。
- SNMP v2c也采用團體名認證,它在兼容SNMP v1的同時又擴充了SNMP v1的功能,它提供了更多的操作類型(GetBulk和InformRequest)、支持更多的數據類型(Counter64等)、提供了更豐富的錯誤代碼且能夠更細致地區分錯誤。
- SNMP v3提供了基於用戶的安全模型(USM,User-Based Security Model)的認證機制,用戶可以設置認證和加密功能,認證用於驗證報文發送方的合法性,避免非法用戶的訪問,加密則是對NMS和Agent之間的傳輸報文進行加密,以免被竊聽。通過有無認證和有無加密等功能組合,可以為SNMP NMS和SNMP Agent之間的通信提供更高的安全性。
2、SNMP 工作機制
SNMP的工作機制SNMP網絡元素分為NMS和Agent兩種:
- NMS(Network Management Station,網絡管理站)是運行SNMP客戶端程序的工作站,能夠提供非常友好的人機交互界面,方便網絡管理員完成絕大多數的網絡管理工作。
- Agent是駐留在設備上的一個進程,負責接收、處理來自NMS的請求報文。在一些緊急情況下,如接口狀態發生改變等,Agent也會主動通知NMS。
- NMS是SNMP網絡的管理者,Agent是SNMP網絡的被管理者。NMS和Agent之間通過SNMP協議來交互管理信息。
3、SNMP數據交互
SNMP管理進程與代理進程之前為了交互信息,定義了5種報文: get -request操作:從代理進程處提取一個或多個參數值。 get -next -request操作:從代理進程處提取一個或多個參數的下一個參數值。 set -request操作:設置代理進程的一個或多個參數值。 get -response操作:返回的一個或多個參數值。這個操作是由代理進程發出的。 trap操作:代理進程主動發出的報文,通知管理進程有某些事情發生。
4、SNMP 組織結構
一套完整的SNMP系統主要包括以下幾個方面:
- SNMP報文協議。
- 管理信息結構(SMI,Structure ofManagementInformation),一套公用的結構和表示符號。
- 管理信息庫(MIB,Management Information Base),管理信息庫包含所有代理進程的所有可被查詢和修改的參數。
- OID(Object Identifiers),一個OID是一個唯一的鍵值對,用於標識具體某一個設備的某個具體信息(對象標識),如端口信息、設備名稱等。
5、SNMP MIB
所謂(MIB)管理信息庫,就是所有代理進程包含的、並且能夠被管理進程進行查詢和設置的信息的集合。MIB是基於對象標識樹的,對象標識是一個整數序列,中間以"."分割,這些整數構成一個樹型結構,類似於D N S或U n ix的文件系統,M I B被划分為若干個組,如s y s t e m、in t e r f aces、at(地址轉換)和ip組等。iso . org . dod . internet .private . enterp r is e s(1 . 3 . 6 . 1 . 4 . 1)這個標識,是給廠家自定義而預留的,比如華為的為1.3.6.1.4.1.2011,華三的為1.3.6.1.4.1.25506。
實戰:Zabbix監控SNMP設備
1、安裝並配置SNMP包
[root@node1 ~]# yum install net-snmp -y # 安裝SNMP包
2、配置SNMP
[root@node1 ~]# vim /etc/snmp/snmpd.conf # 配置SNMP # sec.name source community com2sec notConfigUser default public # SNMP默認密碼public,設置團體認證,登陸的SNMP密碼可以修改。 # name incl/excl subtree mask(optional) view systemview included .1.3.6.1.2.1.1 # 默認有此地址 view systemview included .1.3.6.1.2.1.25.1.1 # 默認有此地址 view systemview included .1.3.6. # 添加一個可以訪問的主機地址 access notConfigGroup "" any noauth exact systemview none none # 允許notConfigUser組名訪問以上的IP地址信息。
3、SNMP配置文件的詳細信息。
4、啟動SNMP服務,設置為開機啟動,此時由於SNMP是UDP協議,需要查看UDP監聽端口:161
[root@node1 ~]# systemctl start snmpd [root@node1 ~]# systemctl enable snmpd
5、在客戶端進行測試SNMP OID
[root@node1 ~]# yum -y install net-snmp-utils [root@node1 ~]# snmpwalk-h USAGE: snmpwalk[OPTIONS] AGENT [OID] –h:顯示幫助。 –v:指定snmp的版本, 1或者2c或者3。 –c:指定連接設備SNMP密碼。 –V:顯示當前snmpwalk命令行版本。 –r:指定重試次數,默認為0次。 –t:指定每次請求的等待超時時間,單為秒,默認為3秒。 –l:指定安全級別:noAuthNoPriv|authNoPriv|authPriv。 –a:驗證協議:MD5|SHA。只有-l指定為authNoPriv或authPriv時才需要。 –A:驗證字符串。只有-l指定為authNoPriv或authPriv時才需要。 –x:加密協議:DES。只有-l指定為authPriv時才需要。 –X:加密字符串。只有-l指定為authPriv時才需要。
6、用客戶端測試驗證常用的OID,是否能夠正常獲取數據
[root@node1 ~]# snmpwalk -v 2c -c 123456 192.168.7.101 .1.3.6.1.4.1.2021.10.1.3.1 UCD-SNMP-MIB::laLoad.1 = STRING: 0.00 [root@node1 ~]# snmpwalk -v 2c -c 123456 192.168.7.101 .1.3.6.1.4.1.2021.10.1.3.2 UCD-SNMP-MIB::laLoad.2 = STRING: 0.03
Centos 部分常用的OID:
CPU 負載:
1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1
5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2
15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3
CPU信息:
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0
內存使用:
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
硬盤使用:
Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1
Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1
Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1
Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1
Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1
2、在zabbix網頁上添加SNMP主機
1、驗證OID成功后,在zabbix網頁上添加SNMP主機。
2、配置SNMP主機,添加一個主機到一個群組
3、將主機關聯到SNMP模板上
4、如果上面的SNMP登陸密碼更改后,就需要修改此Template OS Linux SNMPv2模板,將密碼進行修改,默認密碼是public
5、修改宏里邊登陸SNMP密碼
6、修改Template OS Linux SNMPv2模板的監控項間隔時間,全部選中后,點擊最下面的批量更新即可
7、修改自動發現規則里邊的間隔時間,不修改就會需要到一定的時間才會收集到數據,這里就演示修改幾個配置項,生產中需要全部進行修改。
將監控項原型1的監控時間改為5s,生產中改為5m。
將監控項原型3的時間更新改為5s,生產中改為5m。
8、查看配置好的SNMP監控網絡信息,已經變綠了,說明SNMP驗證成功
9、查看此時的網絡信息,已經采集到數據了