snmp協議 及snmpwalk


推薦閱讀:

snmp及工具:https://www.jianshu.com/p/dc2dc0222940
snmp協議詳解:https://blog.csdn.net/shanzhizi/article/details/11606767

SNMP協議

snmp--簡單網絡管理協議(SNMP) 是專門設計用於在 IP 網絡管理網絡節點(服務器、工作站、路由器、交換機及HUBS等)的一種標准協議,它是一種應用層協議.

snmpwalk工具下載環境

[root@server ~]# yum install net-snmp net-snmp-utils -y
...
[root@server ~]# rpm -qa | grep snmp
net-snmp-utils-5.7.2-43.el7_7.3.x86_64  
net-snmp-agent-libs-5.7.2-43.el7_7.3.x86_64
net-snmp-libs-5.7.2-43.el7_7.3.x86_64
net-snmp-5.7.2-43.el7_7.3.x86_64      #自定義OID配置文件

使用方法

snmpwalk -v 1或2c(代表SNMP版本) -c SNMP讀團體密碼 IP地址 OID(對象標示符)
–v:指定snmp的版本, 1或者2,該參數必須有。
–c:指定連接設備SNMPSNMP讀團體密碼,該參數必須有。
IP:指定要walk的設備的IP地址,該參數必須有。
OID:代表要獲取設備的指標oid,該參數不是必須的。
..................................................................................
實例:
snmpwalk -v 2c -c public 192.168.137.145 .1.3.6.1.4.1.2021.10.1.3   #監控cpuload
snmpwalk -v 2c -c public 192.168.137.145 .1.3.6.1.2.1.25.2.2    #取得系統總內存
snmpwalk -v 2c -c public 192.168.137.145 hrSystemNumUsers    #取得系統用戶數(注意:hrSystemNumUsers與.1.3.6.1.2.1.25.1.5是等效的)
snmpwalk -v 2c -c public 192.168.137.145 .1.3.6.1.2.1.4.20    #取得IP信息
snmpwalk -v 2c -c public 10.1.1.1 system     #查看系統信息
snmpwalk -v 2c -c public 10.1.1.1 ifDescr   #獲取網卡信息

OID列表

http://www.ttlsa.com/monitor/snmp-oid/

snmpwalk -v 2c -c public .     #如果你想獲取SNMP字符串,你可以使用命令snmpwalk來實現,當然在安裝zabbix的時候你需要增加snmp的支持

報錯處理(UCD-SNMP-MIB::ssCpuIdle.0 = No more variables left in this MIB View(It is past the end of the MIB tree))

報錯場景

[root@server ~]# snmpwalk -v 2c -c public localhost hrMemory 
   #運行這個命令時候報錯提示
UCD-SNMP-MIB::ssCpuIdle.0 = No more variables left in this MIB View(It is past the end of the MIB tree)

解決方法

這時候,若要獲取主機的一些重要信息,則要修改snmp的默認配置。
配置方法:修改/etc/snmp/snmpd.conf文件

[root@server ~]# vim /etc/snmp/snmpd.conf
...
view    systemview    included  .1   #添加本行內容
...
[root@server ~]# systemctl restart snmpd    #重啟服務使文件生效

解釋原因:

TIPS:view:定義了可以查看哪些節點設備的信息。snmp默認配置只能查 看.1.3.6.1.2.1.1和.1.3.6.1.2.1.25.1.1節點下的設備信息,而主機CPU和內存等設備都不在這些節點下,所以無法獲取這 些數據。 view systemview included .1 表示可以查看.1節點下的所有設備信息。


自定義OID

https://blog.csdn.net/killerover84/article/details/17793757

#比如你需要用 CACTI 來進行監控一個游戲服務器的在線人數,那么你就可以通過自定義OID的辦法來進行部署。下面舉一個很簡單的例子:

#首先,我們需要寫一個自定義的腳本來獲取在線人數:

[root@server ~]# cat /usr/local/bin/online.sh 
#!/bin/sh
echo .1.3.6.1.4.1.102.8
GW01=`ssh GW01 "netstat -antp|grep ESTABLISHED|grep 8888|wc -l"`
GW02=`ssh GW02 "netstat -antp|grep ESTABLISHED|grep 8888|wc -l"`
GW03=`ssh GW03 "netstat -antp|grep ESTABLISHED|grep 8888|wc -l"`
ALL=$(($(($GW01+$GW02))+$GW03))
echo integer
echo $ALL

然后在snmp的配置文件里加入OID信息:
vi /etc/snmp/snmp.conf
pass .1.3.6.1.4.1.102.8 /bin/sh /usr/local/bin/online.sh

重新啟動snmp服務:
service snmpd restart

測試數據:
snmpwalk -v2c -c public 192.168.0.1 .1.3.6.1.4.1.102.8

#然后你就可以用這個OID來做圖,對人數進行監控了!
#步驟很簡單,但是注意OID不能重復


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM