一、SNMP v1、v2、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之間的通信提供更高的安全性。
二、組織結構
SNMP網絡元素分為NMS和Agent兩種。
NMS(Network Management Station,網絡管理站)是運作SNMP用戶端管理程式的工作站,能夠提供非常友好的人機互動界面,友善網絡管理者完成絕大多數的網絡管理工作。
Agent是駐留在裝置上的一個程序,負責接收、處理來自NMS的請求封包。在一些緊急情況下,如接口狀态發生改變等, Agent也會主動通知NMS。
NMS是SNMP網絡的管理者,Agent是SNMP網絡的被管理者。NMS和Agent之間通過SNMP協定來互動管理資訊。
三、SNMP資料互動
SNMP管理程序與代理程序之前為了互動資訊,定義了5種封包:
get-request操作:從代理程序處提取一個或多個參數值。
get-response操作:傳回的一個或多個參數值。這個操作是由代理程序發出的。
trap操作:代理程序主動發出的封包,通知管理程序有某些事情發生。
get-next-request操作:從代理程序處提取一個或多個參數的下一個參數值。
set-request操作:設定代理程序的一個或多個參數值。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SOiNzY5cTM0YWOxgDMxcjZ4ETO5MGMzQzMxYmMycTYx8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
四、SNMP組織結構
一套完整的SNMP系統主要包括以下幾個方面:
SNMP封包協定。
管理資訊結構(SMI, Structure of Management Information),一套公用的結構和表示符号。
管理資訊庫(MIB,Management Information Base),管理資訊庫包含所有代理程序的所有可被查詢和修改的參數。
OID(Object Identifiers),一個OID是一個唯一的鍵值對,用于辨別具體某一個裝置的某個具體資訊(對象辨別), 如端口資訊、裝置名稱等。
五、SNMP MIB
所謂(MIB)管理資訊庫,就是所有代理程序包含的、并且能夠被管理程序進行查詢和設定的資訊的集合。MIB是基于對象辨別樹的,對象辨別是一個整數序列,中間以"."分割,這些整數構成一個樹型結構,類似于 DNS或Unix的檔案系統,MIB被劃分為若幹個組,如system、 interfaces、 a t(位址轉換)和ip組等。iso . org . dod . internet . private . enterprises(1.3 .6 .1.4.1)這個辨別,是給廠家自定義而預留的,比如華為的為1.3.6.1.4.1.2011,華三的為1.3.6.1.4.1.25506。
六、Centos安裝SNMP
#centos
yum install -y net-snmp
#Ubuntu
apt-get install snmpd
vim /etc/snmp/snmpd.conf
# sec.name source community
com2sec notConfigUser default 123456 #第一步:設定團體認密碼,預設為public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser #第二步:将團體名稱notConfigUser 關聯至 組notConfigGroup
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1 #建立一個view,并對其授權可通路的OID範圍
view systemview included .1. #自定義授權,否則zabbix server無法擷取資料
access notConfigGroup “” any noauth exact systemview none none #将組 notConfigGroup關聯至systemview 進而完成對組的授權
systemctl restart snmpd
七、測試SNMP資料采集
snmpwalk -v 2c -c 123456 172.18.200.106 .1.3.6.1.4.1.2021.10.1.3.1
UCD-SNMP-MIB::laLoad.1 = STRING: 0.00
snmpwalk -v 2c -c 123456 172.18.200.106 .1.3.6.1.4.1.2021.4.3.0
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1048572 kB
八、Centos SNMP 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
記憶體使用:
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
Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1
Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1
系統資訊:
sysDescr 1.3.6.1.2.1.1.1
sysObjectID 1.3.6.1.2.1.1.2
sysUpTime 1.3.6.1.2.1.1.3
sysContact 1.3.6.1.2.1.1.4
sysName 1.3.6.1.2.1.1.5
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
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.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