烂泥:使用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信息(该部分信息可有可无,目前暂时未用到)。

时间: 2024-07-31 09:09:38

烂泥:使用snmpwalk采集设备的OID信息的相关文章

让OMCS支持更多的视频采集设备

有些OMCS用户在他的系统使用了特殊的视频采集卡作为视频源(如AV-878采集卡),虽然这些采集卡可以虚拟为一个摄像头,但有些视频采集卡需要依赖于自带了sdk才能正常地完成视频采集工作.在这种情况下,OMCS是不直接支持这些采集卡的.我们的思路是使OMCS具有自定义扩展的能力:我们让OMCS提供了扩展接口,让使用者可以向OMCS框架中注入其自己的视频采集程序.使用者要达到这种自定义的扩展相当简单,只需实现两个接口即可. 1.IVideoCapturer接口 OMCS.Engine.Video.I

winPcap_4_获取已安装设备的高级信息

由 pcap_findalldevs_ex() 返回的每一个 pcap_if 结构体,都包含一个 pcap_addr 结构体,这个结构体由如下元素组成: 一个地址列表 一个掩码列表 (each of which corresponds to an entry in the addresses list). 一个广播地址列表 (each of which corresponds to an entry in the addresses list). 一个目的地址列表 (each of which

获取设备和 App 信息

设备对照表:https://www.theiphonewiki.com/wiki/Models 获取设备和 App 信息代码: 1 NSLog(@"设备信息如下"); 2 NSLog(@"detailModel(详细型号): %@", [self detailModel]); //detailModel(详细型号): iPhone 6 3 4 UIDevice *device = [UIDevice currentDevice]; 5 NSLog(@"na

C#:获取设备电量相关信息

[DllImport("kernel32.dll",EntryPoint="GetSystemPowerStatus")] //win32 api private static extern void GetSystemPowerStatus(ref SYSTEM_POWER_STATUS lpSystemPowerStatus); public struct SYSTEM_POWER_STATUS //结构体 { public Byte ACLineStatus;

Android 获取手机设备等的信息

获取手机设备型号等信息: 如图华为P6手机获取是手机设备信息值: 代码如下: tvStr = (TextView) findViewById(R.id.tv_titlebar); String phoneInfo = "Product: " + android.os.Build.PRODUCT + "\n"; phoneInfo += "CPU_ABI: " + android.os.Build.CPU_ABI + "\n";

获取IOS设备的电量信息:Battery Level

本文介绍了如何通过API获取IOS设备的电量信息. 移动设备的电量消耗一直是一个大问题,APP开发中也不可避免地需要收集APP运行时的电量消耗信息,这也是APP性能的衡量标准之一. 首先需要打开iphone设置中的电量统计. 1.通过Instruments获取 Instruments工具自带的Energy Diagnostics工具可以获取到iphone特定时段的电量消耗信息.具体步骤: 打开Developer选项中的Start Logging -> 断开iphone与PC连接 -> 一系列的

气象采集设备_自动气象站

气象采集设备_自动气象站是一种便携式地面气象观测设备,由湿度.温度.数据采集器.压力传感器.辐射防护罩和支架构成.可采集.处理温度.湿度.压力等气象数据,具有RS422或RS485接口,并能实时通信.该设备精度高.时效快.使用方便,是一种适合现代气象保障需要的监测设备. 气象采集设备_自动气象站是“自动化”气象采集设备的一个模型,可以自动采集监测点的各种气象参数数据,通过一定的数据传输方式传输到服务器,供用户查看. 智能气象站是一种能够自动监测和存储气象数据的设备,主要由传感器.采集器.通信接口

Jsoup抓取、解析网页和poi存取excel综合案例——采集网站的联系人信息

需求:采集网站中每一页的联系人信息 一.创建maven工程,添加jsoup和poi的依赖包 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.16-be

WinPcap笔记2之获取已经安装设备的高级信息

1 主要数据结构定义 struct pcap_if//网络接口列表的一个节点 一个网络接口就是一个结点 方便链表    {        struct pcap_if *next;//网络接口节点        char *name;//网络接口名字        struct pcap_addr *address;//网络接口地址        bpf_u_int32 flags;//标记        char *description;//描述信息    } typedefstruct p