snmp协议 及snmpwalk
2024-09-01 20:00:18
推荐阅读:
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不能重复
最新文章
- swift项目导入OC框架
- 折半查找(java)(边学习边更新)
- 高效率http页面优化法则一【JS对DOM的操作】
- hadoop 1.2.1 eclipse 插件编译
- Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程
- 使用PHP CURL的POST数据
- 飘逸的python - 两种with语句实现方法
- BZOJ 1739: [Usaco2005 mar]Space Elevator 太空电梯
- Java中ArrayList的使用
- Word Press使用
- Java开发利器--Lombok,IDEA端安装教程
- Silverlight界面设计
- Django中模板语音变量forloop
- cordova启动页面和图标的设置
- python 通过 pip 更新所有已安装的包
- APP-7-百度地图移动轨迹
- PAT 1038 统计同成绩学生(20)(代码)
- JavaScript.how-to-debug-javascript
- 查看Tensorflow版本
- 「WC2016」挑战NPC
热门文章
- [新手教程]申请https泛域名解析
- LeetCode739 每日温度
- 【Flutter】可滚动组件简介
- MongoDB导出导入功能
- Java 用java GUI写一个贪吃蛇小游戏
- 通过trace分析优化其如何选择执行计划
- 【EXPDP】Oracle expdp中并行问题
- 【ORACLE错误】SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
- 负载均衡和故障转换(Failover)的连接RAC方法
- [从源码学设计]蚂蚁金服SOFARegistry之配置信息