一、基本概念
SNMP全稱Simple Network Management Protocol,這是一種基於Internet的標準協議。SNMP是用來管理許多不同類型的網絡設備,如服務器,路由器,交換機,打印機等。SNMP使用管理信息庫MIB(Management Information Base),它是包含管理信息的數據庫。MIB定義了被監視的設備的屬性集合。SNMP支持兩個版本:SNMPv1和SNMPv2c。SNMPv3相比前兩者加強了安全性,使用了加密和認證等機制,但SNMPv3比SNMPv1和SNMPv2c更加複雜。
二、使用snmpwalk命令獲取設備信息
snmpwalk命令是snmp協議的一個工具,主要用於獲取SNMP設備上一些可讀的信息。它通過向設備發送請求獲取所需信息,並將信息以樹形結構返回。最基本的snmpwalk命令格式為:
snmpwalk -v [version] -c [community string] [target device IP address] [OID]
[version]:SNMP版本(SNMPv1/v2c/v3)
[community string]:共同體密碼,類似於密碼,能夠訪問SNMP設備的權限
[target device IP address]:目標設備IP地址
[OID]:對象標識符,用於獲取設備信息的標識符
例如,我們可以使用以下命令獲取本地設備的系統描述信息:
snmpwalk -v 2c -c public localhost system.sysDescr.0
其中,-v 2c表示使用SNMPv2c版本,-c public表示使用默認的共同體字符串「public」,localhost表示目標設備為本地設備,system.sysDescr.0表示要獲取的是系統描述信息。
三、獲取更多設備信息
除了系統描述信息,我們還可以使用snmpwalk命令獲取更多的設備信息。以下是一些示例:
1、獲取CPU利用率信息:
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.11
其中的.1.3.6.1.4.1.2021.11是CPU利用率的OID。
2、獲取內存信息:
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.4
其中的.1.3.6.1.4.1.2021.4是內存信息的OID。
3、獲取網絡接口信息:
snmpwalk -v 2c -c public localhost .1.3.6.1.2.1.2
其中的.1.3.6.1.2.1.2是網絡接口信息的OID。
四、結合awk命令使用snmpwalk
有時候我們只需要一部分設備信息,此時可以結合awk命令來實現過濾。例如,以下命令列出了本地設備的所有進程ID和進程名稱:
snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.25.4.2.1.1 | awk -F "=" '{print $2}' && snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.25.4.2.1.2 | awk -F ":" '{print $2}' | awk -F "STRING: " '{print $2}'
其中,1.3.6.1.2.1.25.4.2.1.1表示進程ID的OID,1.3.6.1.2.1.25.4.2.1.2表示進程名稱的OID。awk -F “=” ‘{print $2}’表示以「=」為分隔符輸出第二個字段(即進程ID),awk -F “:” ‘{print $2}’表示以「:」為分隔符輸出第二個字段(即進程名稱),awk -F “STRING: ” ‘{print $2}’表示以「STRING: 」為分隔符輸出第二個字段(即進程名稱結果中的額外字符串)。
五、結合定時任務監控設備
我們可以使用定時任務結合snmpwalk命令監控設備,例如,以下定時任務每5分鐘獲取本地設備的CPU利用率信息並輸出到日誌文件中:
*/5 * * * * /usr/bin/snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.11 >> /var/log/cpu_utilization.log
其中,「*/5 * * * *」表示每5分鐘執行一次命令。將獲取到的CPU利用率信息追加到/var/log/cpu_utilization.log日誌文件中。
六、結合Zabbix監控設備
我們還可以結合Zabbix進行設備監控。Zabbix是一個開源的企業級分佈式監控系統,使用Zabbix可以進行網絡設備監控、服務監控、性能監控等。以下是使用snmpwalk和Zabbix結合監控本地設備CPU利用率的示例:
1、在Zabbix服務器上安裝SNMP MIB文件
SNMP MIB文件包含了各種設備的OID信息,安裝MIB文件後Zabbix就能夠理解並解析這些OID。MIB文件的安裝方法可以查閱相關文檔。
2、在Zabbix服務器上設置SNMP監控項
在Zabbix服務器上設置SNMP監控項,設置方法可以參考Zabbix官方文檔。在設置項時需要輸入OID,例如獲取CPU利用率信息的OID是.1.3.6.1.4.1.2021.11。設置OID時可以使用snmpwalk命令查詢。
3、在Zabbix服務器上設置觸發器
設置觸發器可以在設備達到一定的條件時觸發報警。例如,當CPU利用率超過80%時發送郵件報警。
七、小結
本文介紹了如何使用snmpwalk命令進行SNMP網絡設備的管理和監控。通過使用snmpwalk命令,我們可以獲取設備的系統信息、CPU利用率、內存信息、網絡接口信息等。我們還可以結合awk命令、定時任務、Zabbix等工具來實現設備信息的過濾、定期獲取、報警等功能。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/196246.html