烂泥:使用snmpwalk采集设备的OID信息
打算开始学习有关监控方面的知识,但是现在很多监控系统都是根据SNMP进行的。而SNMP监控的性能指标很多都是通过snmpwalk采集设备的OID信息得到的,所以今天就来先介绍下,如何通过snmpwalk来采集设备的OID信息。
要使用snmpwalk采集设备的OID信息,需要以下几个步骤:
1、 理解snmpwalk的原理
2、 安装snmpwalk
3、 snmpwalk参数说明
4、 snmpwalk的使用方法
5、 使用snmpwalk采集设备OID信息
6、 生产环境中设备OID信息注意事项
一、理解snmpwalk的原理
snmpwalk是SNMP的一个工具,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户。通过snmpwalk也可以查看支持SNMP协议(可网管)的设备的一些其他信息,比如cisco交换机或路由器IP地址、内存使用率等,也可用来协助开发SNMP功能。
二、安装snmpwalk
要使用snmpwalk,我们首先要安装snmpwalk。snmpwalk没有单独的安装包,它被包含在net-snmp软件包中的,所以我们只需要安装net-snmp软件包就可以得到snmpwalk。而net-snmp的安装又分为linux环境和windows环境,下面我们来一一进行介绍。
2.1 linux下安装net-snmp
在linux下使用snmpwalk工具,我们必须要安装net-snmp-utils这个软件包。
注意:如果linux只安装net-snmp的话,则不包含snmpwalk工具,如下:
yum -y install net-snmp-utils
snmpwalk -h


2.2 windows安装下net-snmp
windows下安装net-snmp,我们可以去net-snmp官网进行下载。
现在我们安装的是net-snmp-5.6.1.1-1.x86.exe这个软件包。如下:


以上是一种方法,还有另外一种方法就是直接使用,已经制作好的免安装包。
免安装包的制作很简单,就是先在本地安装net-snmp软件包,然后把安装目录下的bin目录复制到其他服务器就可以正常了。如下:

这样就可以把bin目录,复制到其他机器上使用。注意在使用的过程中为了更方便的使用snmpwalk工具,我们可以把该目录所在的路径加入系统的环境变量中,如下:




这样我们就把net-snmp安装完毕。关于snmpwalk免安装包可以在这个地址下载《烂泥snmpwalk5.6.1.1免安装包》。
三、snmpwalk参数说明
snmpwalk的用法,我们可以通过帮助信息进行查看,如下:
snmpwalk -h

通过上图,我们可以看到snmpwalk的参数比较多,但是我们比较常用的就只有-v和-c参数。如下:
–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时才需要。
四、snmpwalk的使用方法及实例
snmpwalk使用方法很简单,如下:
snmpwalk -v 1或2c(代表SNMP版本) -c SNMP密码 IP地址 OID(对象标示符)
–v:指定snmp的版本, 1或者2,该参数必须有。
–c:指定连接设备SNMP读密码,该参数必须有。
IP:指定要walk的设备的IP地址,该参数必须有。
OID:代表要获取设备的指标oid,该参数不是必须的。
五、使用snmpwalk获取设备OID信息
下面我们开始使用snmpwalk开始获取设备的一些OID信息,注意现在获取的都是windows系统,没有涉及到linux系统。
注意:在此我们还使用了iReasoning MIB Browser这个MIB浏览软件以配合我们的实验。
5.1获取windows系统进程数
snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.1.6
这条命令的意思是:使用v1版本,共同体为public,来对192.168.1.200的.1.3.6.1.2.1.25.1.6分支进行walk。

5.2获取windows系统用户数
snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.1.5

我们也可以通过以下命令获得:
snmpwalk -v 1 -c public 192.168.1.200 hrSystemNumUsers

注意:hrSystemNumUsers与.1.3.6.1.2.1.25.1.5是等效的。
5.1和5.2其实我们完全可以通过一条命令获得,如下:
snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.1

获取的信息中包含系统的运行时间、系统的用户数、系统的进程数、系统当前的时间。
5.3获取windows系统总内存
snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.2.2

5.4获取windows系统的IP地址
snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.4.20.1.1

5.5获取windows系统信息
snmpwalk -v 1 -c public 192.168.1.200 system

5.6获取windows系统的网卡信息
snmpwalk -v 1 192.168.1.200 -c public ifDescr

六、生产环境中设备OID信息注意事项
6.1获取的目标与保存说明
针对研发需要设备MIB信息进行调试的情况,一般需要设备的完整MIB(包含公有OID和私有OID),因此在进行设备的MIB获取时,使用使用.1作为目标mib分支(即完整mib文件)。并且一般需要将输出使用>重定向符,输出到一个指定的文件中,以方便传输。
6.2参数选项说明
一般需要使用-Cc,来指定允许OID不重复。
如果设备较容易超时,需要使用-t与-r参数,来指定超时时间与重试次数。
6.3 MIB信息的完整性
完整walk到一个MIB,在MIB末尾,都会输出“End Of Mib”的字样。否则可能为Response timeout等错误,此时请根据错误消息及时调整参数。

一般来说使用snmpwalk -v 1/2c -c community IP .1>IP.mib命令采集设备MIB信息后,文件IP.mib应该包含该设备的所有MIB信息。
但是从实际反应的情况来看,某些设备产商由于SNMP实现支持不是很标准,故存在只能获取到公有MIB信息(即1.3.6.1.2.1开头的信息)的情况,此时请再使用命令snmpwalk -v 1/2c -c community IP .1.3.6.1.4.1>IP.private.mib采集设备私有MIB信息,并和前面采集到的IP.mib一同发给研发。
小结:所谓MIB信息的完整性,即判断snmpwalk命令输出的文件信息中是否包含iso.3.6.1.2.1开头的OID信息(公有MIB信息),又是否包含iso.3.6.1.4.1开头的OID信息(私有MIB信息),甚至还可能包含iso.3.6.1.6.1开头的OID信息(该部分信息可有可无,目前暂时未用到)。
烂泥:使用snmpwalk采集设备的OID信息的更多相关文章
- 下载华为交换机MIB参考文件并使用snmpwalk获取OID信息
1.下载交换机MIB参考文件访问 https://support.huawei.com/enterprise/zh/index.html,搜索交换机型号 点击案例库,选择MIB参考 下载文件 打开文件 ...
- 让OMCS支持更多的视频采集设备
有些OMCS用户在他的系统使用了特殊的视频采集卡作为视频源(如AV-878采集卡),虽然这些采集卡可以虚拟为一个摄像头,但有些视频采集卡需要依赖于自带了sdk才能正常地完成视频采集工作.在这种情况下, ...
- FFmpeg命令行工具学习(四):FFmpeg 采集设备
在使用 FFmpeg 作为编码器时,可以使用FFmpeg采集本地的音视频采集设备的数据,然后进行编码.封装.传输等操作. 例如,我们可以采集摄像头的图像作为视频,采集麦克风的数据作为音频,然后对采集的 ...
- 如何直接在 PC 端获取其它端设备的 UserAgent 信息呢?
如何直接在 PC 端获取其它端设备的 UserAgent 信息呢 [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5909615.html 序 希望收 ...
- html5+ 获取当前设备的加速度信息
getCurrentAcceleration 获取当前设备的加速度信息 void plus.accelerometer.getCurrentAcceleration( successCB, error ...
- winPcap_4_获取已安装设备的高级信息
由 pcap_findalldevs_ex() 返回的每一个 pcap_if 结构体,都包含一个 pcap_addr 结构体,这个结构体由如下元素组成: 一个地址列表 一个掩码列表 (each of ...
- Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息
详情请看:Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息 在项目中需要获取到当前设备,例如手机的ID,联网状态,等,然后这个Cordova里有这个插件可以用, ...
- iOS学习——获取iOS设备的各种信息
不管是在Android开发还是iOS开发过程中,有时候我们需要经常根据设备的一些状态或信息进行不同的设置和性能配置,例如横竖屏切换时,电池电量低时,内存不够时,网络切换时等等,我们在这时候需要进行一些 ...
- Android 获得本地IP地址、外网IP地址、本设备网络状态信息、本地Mac地址
本地内网IP和外网IP的区别: 根据我的经验一台电脑需要两个ip才可以上网,一个是本地的内网ip 一个是外网的ip 本地的ip 一般是192.168.1.2这种样子 只要在不同的路由器上可以重复 外 ...
随机推荐
- 几个简单的js正则验证
//校验身份证,身份证分为15位和18位 function checkIdCard(obj) { if ((/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.tes ...
- Struct2
1.MVC思想概述 Servlet作为前端控制器,负责接收客户端发送的请求,在Servlet中只包含控制逻辑和简单的前端处理:然后调用后端javabean来完成实际的逻辑处理: 最后转发到相应的jsp ...
- C语言Scanf函数
C语言的scanf函数 一.变量的内存分析 (一)字节与地址 ①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节.整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间 ...
- windows server 2003安装sp4时的问题
"以前进行的程序安装创建了挂起的文件操作.运行程序之前,必须重新起动计算机."的解决办法 在安装SQL 2000数据库和SQLSP4补丁时,经常会提示“以前进行的程序安装创建了挂起 ...
- C#开发可以可视化操作的windows服务
使用C#开发自定义windows服务是一件十分简单的事.那么什么时候,我们需要自己开发windows服务呢,就是当我们需要计算机定期或者一 直执行我们开发的某些程序的时候.我经常看到许多人开发的win ...
- LoadRunner上传及下载文件
(1)LoadRunner上传文件 web_submit_data("importStudent.do", "Action=https://testserver/cons ...
- IO流(三)__字节流 标准输入输出流 转换流
一.字节流:FileInputStream 和FileOutputStream 基本操作和字符流类相同,没有flush,但是close还是要的 复制一个字节流文件 private static voi ...
- HTML中网页超链接设计
一.超链接的概念: 1>用<a>标签实现.href属性设置了要链接的网址. 链接路径URL:Uniform Resource Locator的缩写.统一资源定位符. 4部分组成:协议 ...
- jQuery自定义漂亮的下拉框插件8种效果演示
原始的下拉框不好看这里推荐一个jQuery自定义漂亮的下拉框插件8种效果演示 在线预览 下载地址 实例代码 <!DOCTYPE html> <html lang="en&q ...
- WPF钟表效果实现
WPF在样式定义和UI动画上面相对于以前的技术有了不少的提升,下面给出WPF技术实现钟表的效果: 1.Visual Studio新建一个WPF应用程序,命名为WpfClock,新建一个images文件 ...