SNMP学习笔记之SNMPWALK 安装与使用详解

 0x00 简介

snmpwalk是SNMP的一个工具,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户。通过snmpwalk也可以查看支持SNMP协议(可网管)的设备的一些其他信息,比如cisco交换机或路由器IP地址、内存使用率等,也可用来协助开发SNMP功能。

在日常监控中,经常会用到snmp服务,而snmpwalk命令则是采集系统各种信息最有效的方法。

0x01 Linux安装过程

在linux下使用snmpwalk工具,我们必须要安装net-snmp-utils这个软件包。

注意:如果linux只安装net-snmp的话,则不包含snmpwalk工具,如下:

yum -y install net-snmp-utils
snmpwalk -h
sudo apt-get install snmpd 
sudo apt-get install snmp 
service snmpd start 

为了获取所有的数据,修/etc/snmp/snmpd.conf,添加最后一行 

view systemonly included .1.3.6.1.2.1.1 
view systemonly included .1.3.6.1.2.1.25.1 
view systemonly included .1 
service snmpd restart 

使用下面命令测试 

snmpwalk -help

如果显示帮助信息,则安装成功。

检查上面列出的安装包是否已经安装

rpm -qa | grep snmp

检查

net-snmp-5.3.2.2-9.el5.x86_64.rpm
net-snmp-devel-5.3.2.2-9.el5.x86_64.rpm (非必须安装包)
net-snmp-libs-5.3.2.2-9.el5.x86_64.rpm
net-snmp-utils-5.3.2.2-9.el5.x86_64.rpm

四个包是否安装,用同样的方式检查其他安装包是否安装。

如果已经安装,为了保持安装的rpm包的一致性,建议删除已经安装的包,

删除命令为rpm -e --nodeps rpm包名

--nodeps表示忽略依赖。

0x02 Windows安装过程

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

安装以上rpm包,注意以上包是有安装顺序的

从上往下依次执行:

 rpm -ivh net-snmp-libs-5.3.2.2-9.el5.x86_64.rpm
 rpm -ivh lm_sensors-2.10.7-9.el5.x86_64.rpm 
 rpm -ivh net-snmp-utils-5.3.2.2-9.el5.x86_64.rpm
 rpm -ivh libsensors3-2.10.6-55.el5.x86_64.rpm 
 rpm -ivh net-snmp-5.3.2.2-9.el5.x86_64.rpm

启动snmpd服务

service snmpd start

检查snmp是否启动成功

snmpwalk -help

如果显示帮助信息,则安装成功。

0x03 工具使用介绍

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 -v 2c -c public 10.1.1.1 .1.3.6.1.2.1.25.1    #得到取得windows端的系统进程用户数等

其中-v是指版本,-c 是指密钥,也就是客户端snmp.conf里面所设置的,下面类同.

snmpwalk -v 2c -c public 10.1.1.1 .1.3.6.1.2.1.25.2.2   #取得系统总内存
snmpwalk -v 2c -c public 10.1.1.1 hrSystemNumUsers  #取得系统用户数(注意:hrSystemNumUsers与.1.3.6.1.2.1.25.1.5是等效的)
snmpwalk -v 2c -c public 10.1.1.1 .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  #获取网卡信息

snmpwalk使用方法很简单,如下:

snmpwalk -v 1或2c(代表SNMP版本) -c SNMP密码 IP地址 OID(对象标示符)

–v:指定snmp的版本, 1或者2,该参数必须有。

–c:指定连接设备SNMP读密码,该参数必须有。

IP:指定要walk的设备的IP地址,该参数必须有。

OID:代表要获取设备的指标oid,该参数不是必须的。

以上只是一些常用的信息,snmpwalk功能很多,可以获取系统各种信息,只要更改后面的信息类型即可.如果不知道什么类型,也可以不指定,这样所有系统信息都获取到:

snmpwalk -v 2c -c public 10.1.1.1

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python3

django组件--cookie与session

在一个会话的多个请求中共享数据,这就是会话跟踪技术。例如在一个会话中的请求如下: 请求银行主页; 

20850
来自专栏惨绿少年

MongoDB的备份与恢复

1.1 MongoDB的常用命令 mongoexport / mongoimport mongodump / mongorestore      有以上两组命...

1.3K60
来自专栏陈纪庚

如何使用nodejs发邮件

昨天就开始想使用nodemailer来实现一个发送邮件的功能,不过发现了很多个坑,网上给的资料也很杂很乱,所以决定写一篇真正能用的来帮助大家减少弯路

19730
来自专栏有趣的django

linux基础

1.目录 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先...

49350
来自专栏蓝天

Haodoop RPC解析

RPC是对外的接口类,主要提供两个方法:getProxy和getServer。

10210
来自专栏编程

R基础——数据的导入与导出(下)

前面两篇文章介绍了导入导出csv文件,txt文件,xlsx文件,接下来,将介绍R连接数据库,从数据库中导入数据。 在我工作中,使用的是sql server,所以...

26880
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Git Hooks部署Jekyll站点

Jekyll是一个静态站点生成器,它提供了内容管理系统(CMS)的一些优点,同时避免了此类数据库驱动的站点引入的性能和安全问题。它具有“博客意识”,并包含处理日...

18330
来自专栏Albert陈凯

linux目录结构和常用命令

一、Linux目录结构 你想知道为什么某些程序位于/bin下,或者/sbin,或者/usr/bin,或/usr/sbin目录下吗?例如,less命令位于/us...

28340
来自专栏决胜机器学习

《Redis设计与实现》读书笔记(三十二) ——Redis事务设计与实现

《Redis设计与实现》读书笔记(三十二) ——Redis事务设计与实现 (原创内容,转载请注明来源,谢谢) 一、概述 redis的事务同数据...

36450
来自专栏菩提树下的杨过

Spring JDBCTemplate使用JNDI数据源

接上回继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local)、(开发小组内自测的)开发环境(dev)、(提供给测试团队的)测...

405100

扫码关注云+社区

领取腾讯云代金券