NETSNMP工具的使用.docx
《NETSNMP工具的使用.docx》由会员分享,可在线阅读,更多相关《NETSNMP工具的使用.docx(22页珍藏版)》请在冰豆网上搜索。
![NETSNMP工具的使用.docx](https://file1.bdocx.com/fileroot1/2022-12/30/5b01bb98-49e1-49d6-825f-7f2800c646a0/5b01bb98-49e1-49d6-825f-7f2800c646a01.gif)
NETSNMP工具的使用
NET-SNMP工具的使用
当环境设置好后,运行snmpd,即snmp代理进程,就可以使用管理工具查询其中的信息了。
Net-snmp提供的查询工具有很多,这里只介绍常用的几个,而且大部分查询命令的格式都大同小异。
这里以.iso.org.dod.internet.mgmt.mib-2.system为例,其Oid为:
.1.3.6.1.2.1.1。
结构如下:
………system.1.3.6.1.2.1.1
|——sysDescr.1.3.6.1.2.1.1.1
|——sysObjectID.1.3.6.1.2.1.1.2
|——sysUpTimeInstance.1.3.6.1.2.1.1.3
|——sysContact.0.1.3.6.1.2.1.1.4
|——sysName.0.1.3.6.1.2.1.1.5
|——sysLocation.0.1.3.6.1.2.1.1.6
1)snmpwalk[APPLICATIONOPTIONS][COMMONOPTIONS][OID]...用来取得所有类识别代码(OID,ObjectIdentifier),取得类为从根类(root)开始的全部MIB类。
实例:
snmpwalk-v2c-cpubliclocalhost.1.3.6.1.2.1.1
-v2c:
使用的是2c的snmp版本,可选1|2c|3
-cpublic:
community名为public
localhost:
代理的地址,这里因为代理运行在本机上,所以可用localhost
.1.3.6.1.2.1.1:
这里查询的是.iso.org.dod.internet.mgmt.mib-2.system,其Oid为.1.3.6.1.2.1.1,
其Oid也可使用名称具体操作如下:
snmpwalk-v2c-cpubliclocalhostsystem
或:
snmpwalk-v2c-cpubliclocalhost.1.3.6.1.2.1.1
SNMPv2-MIB:
:
sysDescr.0=STRING:
Linuxubuntu2.6.27-7-generic#1SMPFriOct2406:
42:
44UTC2008i686
SNMPv2-MIB:
:
sysObjectID.0=OID:
NET-SNMP-MIB:
:
netSnmpAgentOIDs.10
DISMAN-EVENT-MIB:
:
sysUpTimeInstance=Timeticks:
(8137)0:
01:
21.37
SNMPv2-MIB:
:
sysContact.0=STRING:
Me
SNMPv2-MIB:
:
sysName.0=STRING:
ubuntu
SNMPv2-MIB:
:
sysLocation.0=STRING:
Righthere,rightnow.
SNMPv2-MIB:
:
sysORLastChange.0=Timeticks:
(0)0:
00:
00.00
SNMPv2-MIB:
:
sysORID.1=OID:
SNMP-FRAMEWORK-MIB:
:
snmpFrameworkMIBCompliance
SNMPv2-MIB:
:
sysORID.2=OID:
SNMP-MPD-MIB:
:
snmpMPDCompliance
SNMPv2-MIB:
:
sysORID.3=OID:
SNMP-USER-BASED-SM-MIB:
:
usmMIBCompliance
SNMPv2-MIB:
:
sysORID.4=OID:
SNMPv2-MIB:
:
snmpMIB
SNMPv2-MIB:
:
sysORID.5=OID:
TCP-MIB:
:
tcpMIB
SNMPv2-MIB:
:
sysORID.6=OID:
IP-MIB:
:
ip
SNMPv2-MIB:
:
sysORID.7=OID:
UDP-MIB:
:
udpMIB
SNMPv2-MIB:
:
sysORID.8=OID:
SNMP-VIEW-BASED-ACM-MIB:
:
vacmBasicGroup
SNMPv2-MIB:
:
sysORDescr.1=STRING:
TheSNMPManagementArchitectureMIB.
SNMPv2-MIB:
:
sysORDescr.2=STRING:
TheMIBforMessageProcessingandDispatching.
SNMPv2-MIB:
:
sysORDescr.3=STRING:
ThemanagementinformationdefinitionsfortheSNMPUser-basedSecurityModel.
SNMPv2-MIB:
:
sysORDescr.4=STRING:
TheMIBmoduleforSNMPv2entities
SNMPv2-MIB:
:
sysORDescr.5=STRING:
TheMIBmoduleformanagingTCPimplementations
SNMPv2-MIB:
:
sysORDescr.6=STRING:
TheMIBmoduleformanagingIPandICMPimplementations
SNMPv2-MIB:
:
sysORDescr.7=STRING:
TheMIBmoduleformanagingUDPimplementations
SNMPv2-MIB:
:
sysORDescr.8=STRING:
View-basedAccessControlModelforSNMP.
SNMPv2-MIB:
:
sysORUpTime.1=Timeticks:
(0)0:
00:
00.00
SNMPv2-MIB:
:
sysORUpTime.2=Timeticks:
(0)0:
00:
00.00
SNMPv2-MIB:
:
sysORUpTime.3=Timeticks:
(0)0:
00:
00.00
SNMPv2-MIB:
:
sysORUpTime.4=Timeticks:
(0)0:
00:
00.00
SNMPv2-MIB:
:
sysORUpTime.5=Timeticks:
(0)0:
00:
00.00
SNMPv2-MIB:
:
sysORUpTime.6=Timeticks:
(0)0:
00:
00.00
SNMPv2-MIB:
:
sysORUpTime.7=Timeticks:
(0)0:
00:
00.00
SNMPv2-MIB:
:
sysORUpTime.8=Timeticks:
(0)0:
00:
00.00
2)snmpget——snmpget[OPTIONS]AGENTOID[OID]...用来查询叶子节点
实例:
snmpget-v2c-cpubliclocalhost.1.3.6.1.2.1.1.5.0
-v2c:
使用的是2c的snmp版本,可选1|2c|3
-cpublic:
community名为public
localhost:
代理的地址,这里因为代理运行在本机上,所以可用localhost
.1.3…….0:
这里查询的是.iso.org.dod.internet.mgmt.mib-2.system.sysName,其Oid为.1.3.6.1.2.1.1.5,使用这个命令使叶子节点要在后面加.0。
可后面查询多个OID期间用空格分开
其Oid也可使用名称具体操作如下:
snmpget-v2c-cpubliclocalhost.1.3.6.1.2.1.1.5.0
返回信息如下:
SNMPv2-MIB:
:
sysName.0=STRING:
ubuntu
snmpget-v2c-cpubliclocalhostsysName
SNMPv2-MIB:
:
sysName.0=STRING:
ubuntu
以下为一些具体使用实例:
使用snmpwalk来获取sysDescr信息(Oid使用名称)
snmpwalk-v2c-cpubliclocalhostsysDescr
SNMPv2-MIB:
:
sysDescr.0=STRING:
Linuxubuntu2.6.27-7-generic#1SMPFriOct2406:
42:
44UTC2008i686
(Oid使用编号)
snmpwalk-v2c-cpubliclocalhost.1.3.6.1.2.1.1.1
SNMPv2-MIB:
:
sysDescr.0=STRING:
Linuxubuntu2.6.27-7-generic#1SMPFriOct2406:
42:
44UTC2008i686
使用snmpget来获取sysDescr信息时要在Oid后加上.0
snmpget-v2c-cpubliclocalhost.1.3.6.1.2.1.1.1.0
SNMPv2-MIB:
:
sysDescr.0=STRING:
Linuxubuntu2.6.27-7-generic#1SMPFriOct2406:
42:
44UTC2008i686
使用snmpwalk来获取sysObjectID信息
snmpwalk-v2c-cpubliclocalhost.1.3.6.1.2.1.1.2
SNMPv2-MIB:
:
sysObjectID.0=OID:
NET-SNMP-MIB:
:
netSnmpAgentOIDs.10
使用snmpget来获取sysObjectID信息
snmpget-v2c-cpubliclocalhost.1.3.6.1.2.1.1.2.0
SNMPv2-MIB:
:
sysObjectID.0=OID:
NET-SNMP-MIB:
:
netSnmpAgentOIDs.10
snmpwalk-v2c-cpubliclocalhostsysContact
SNMPv2-MIB:
:
sysContact.0=STRING:
Me
3)snmpgetnext.exe——snmpgetnext[OPTIONS]AGENTOID[OID]...通过父节点查询叶子节点
实例:
snmpgetnext-v2c-cpubliclocalhost.1.3.6.1.2.1.1
SNMPv2-MIB:
:
sysDescr.0=STRING:
Linuxubuntu2.6.27-7-generic#1SMPFriOct2406:
42:
44UTC2008i686
这个命令假设不知道叶子节点,但知道父节点,则可遍历到第一个叶子节点。
此例结果等同于
snmpget-v2c-cpubliclocalhost.1.3.6.1.2.1.1.1.0
Oid也可输入.1.3.6.1.2,因为它是按字典顺序遍历的。
4)snmptable——snmptable[OPTIONS]AGENTTABLE-OID用来查询表对象
实例:
snmptable-v2c-cpubliclocalhost.1.3.6.1.2.1.4.20
这个命令查询表对象,本例中查询的是.iso.org.dod.internet.mgmt.mib-2.ip.ipAddrTable
显示如下:
SNMPtable:
IP-MIB:
:
ipAddrTable
ipAdEntAddripAdEntIfIndexipAdEntNetMaskipAdEntBcastAddripAdEntReasmMaxSize
127.0.0.11255.0.0.00?
192.168.1.2492255.255.255.01
使用snmpwalk再来查询一下
snmpwalk-v2c-cpubliclocalhost.1.3.6.1.2.1.4.20
IP-MIB:
:
ipAdEntAddr.127.0.0.1=IpAddress:
127.0.0.1
IP-MIB:
:
ipAdEntAddr.192.168.1.249=IpAddress:
192.168.1.249
IP-MIB:
:
ipAdEntIfIndex.127.0.0.1=INTEGER:
1
IP-MIB:
:
ipAdEntIfIndex.192.168.1.249=INTEGER:
2
IP-MIB:
:
ipAdEntNetMask.127.0.0.1=IpAddress:
255.0.0.0
IP-MIB:
:
ipAdEntNetMask.192.168.1.249=IpAddress:
255.255.255.0
IP-MIB:
:
ipAdEntBcastAddr.127.0.0.1=INTEGER:
0
IP-MIB:
:
ipAdEntBcastAddr.192.168.1.249=INTEGER:
1
5)snmpset——snmpset[OPTIONS]AGENTOIDTYPEVALUE[OIDTYPEVALUE]...修改数据
实例:
snmpset-v2c-cpubliclocalhost.1.3.6.1.2.1.4.21.1.3.xi99
x:
在这里是索引值,表示表项中某一列的第几个数据,根据要求设定
i:
这里是列数据类型,包括i:
INTEGER,u:
unsignedINTEGER,t:
TIMETICKS,a:
IPADDRESSo:
OBJID,s:
STRING,x:
HEXSTRING,d:
DECIMALSTRING,b:
BITSU:
unsignedint64,I:
signedint64,F:
float,D:
double
如修改联系(sysContact)的地址
snmpset-v2c-cpubliclocalhost.1.3.6.1.2.1.1.4smute@
6)snmpdelta一直监视SNMP变量中的变化(未验证)
linux:
~#snmpdelta-cpublic-v1-Cs-CTlocalhostIF-MIB:
ifInUcastPkts.3IF-MIB:
ifOutcastPkts.3
localhostifInUcastPkts.3ifOutUcastPkts.3
[20:
15:
596/14]184.00184.00
[20:
16:
006/14]158.00158.00
[20:
16:
016/14]184.00184.00
[20:
16:
026/14]184.00184.00
[20:
16:
036/14]158.00158.00
[20:
16:
046/14]184.00184.00
[20:
16:
056/14]184.00184.00
[20:
16:
066/14]158.00158.00
7)snmpdf通过SNMP监视远程主机的磁盘空间
snmpdf-v1-cpubliclocalhost
Descriptionsize(kB)UsedAvailableUsed%
Physicalmemory504412498912550098%
Virtualmemory148096459189688906839%
Memorybuffers50441250644993481%
Cachedmemory80296802960100%
Swapspace976552929848835689%
/67285923985712274288059%
/sys/fs/fuse/connections0000%
/host2048284086079201187492042%
/boot2048284086079201187492042%
/work2076398092366081152737244%
/home/mutes/.gvfs0000%
7)snmptrap生成一次trap告警
linux:
~#snmptrap-v1-cpublicmanagerenterprises.spidertest-hub30''interfaces.iftable.ifentry.ifindex.1i1
8)snmptranslate
snmptranslate命令可以在MIBOID在数字和文字名称之间进行转换
snmptranslate命令的格式是:
snmptranslate[options]OID[oid]
从上面的格式可以看出,snmptranslate一次可以转换多个OID,snmptranslate是一个将一个或者多个SNMPOID从文字名称格式转换为数字格式的程序
[oid]可以是数字格式或者文字格式。
注意:
snmptranslate可以直接将数字格式的oid转换为名称格式,但要把名称格式的oid转换为数字格式的oid,需要-I选项的配合。
(参考snmpcmd和最后部分的例子)
OPTIONS
-DTOKEN[,...]
TurnondebuggingoutputforthegivenTOKEN(s).TryALLforextremelyverboseoutput.
-h
Displayabriefusagemessageandthenexit.
-mMIBLIST
指定一个MIB库文件
SpecifiesacolonseparatedlistofMIBmodulestoloadforthisapplication.ThisoverridestheenvironmentvariableMIBS.
ThespecialkeywordALLisusedtospecifyallmodulesinalldirectorieswhensearchingforMIBfiles.Everyfilewhosenamedoesnotbeginwith"."willbeparsedasifitwereaMIBfile.
-MDIRLIST
指定一个MIB库文件路径
SpecifiesacolonseparatedlistofdirectoriestosearchforMIBs.ThisoverridestheenvironmentvariableMIBDIRS.
-TTRANSOPTS
用于控制转换的输出
ProvidescontroloverthetranslationoftheOIDvalues.ThefollowingTRANSOPTSareavailable:
-Td
PrintfulldetailsofthespecifiedOID.
-Td表示输出该对象的详细定义,也就是在MIB中的定义,包括文字名称、所属MIB、类型、状态、读写权限、描述信息,数字格式的OID
snmptranslate-Td-IRbvcom
BVCOM-SYSTEMUPTIME-MIB:
:
bvcom
bvcomOBJECT-TYPE
--FROMBVCOM-SYSTEMUPTIME-MIB
:
:
={iso
(1)org(3)dod(6)internet
(1)private(4)enterprises
(1)26814}
-Tp
Printagraphicaltree,rootedatthespecifiedOID.
-Tp用于打印从指定OID开始一直到该OID所属的MIB子树末端的树型结构信息,该选项很有用,如果要知道某个MIB或者某个表有什么内容,可以该选项
snmptranslate-Tp-IRsystem
+--system
(1)
|
+---R--StringsysDescr
(1)
|TextualConvention:
DisplayString
|Size:
0..255
+---R--ObjIDsysObjectID
(2)
+---R--TimeTickssysUpTime(3)
||
|+--sysUpTimeInstance(0)
|
+---RW-StringsysContact(4)
|TextualConvention:
DisplayString
|Size:
0..255
+---RW-StringsysName(5)
|TextualConvention:
DisplayString
|Size:
0..255
+---RW-StringsysLocation(6)
|TextualConvention:
DisplayString
|Size:
0..255
+---R--INTEGERsysServices(7)
|Range:
0..127
+---R--TimeTickssysORLastChange(8)
|TextualConvention:
TimeStamp
|
+--sysORTable(9)
|
+--sysOREntry
(1)
|Index:
sysORIndex
|
+------INTEGERsysORIndex
(1)
|Range:
1..2147483647
+---R--ObjIDsysORID
(2)
+---R--StringsysORDescr(3)
|TextualConvention:
DisplayString
|Size:
0..255
+---R--TimeTickssysORUpTime(4)
TextualConvention:
TimeStamp
snmptranslate-Tp-IRsysDescr
+---R--StringsysDescr
(1)
TextualConvention:
DisplayString
Size:
0..255
-Ta
DumptheloadedMIBinatrivialform.
-Ta表示导出所有已经加载的MIB的数据,每个对象一行,默认情况下是导出所有已经加载的对象。
如果只想导出某个MIB,可以使用如snmptranslate-Ta-MMTA-MIB这样就只导出MTA-MIB