snmp命令

Snmputil 命令 
Snmputil是一个命令行下的软件,使用语法如下: usage: snmputil get|getnext|walk] agent community oid [oid ...] snmputil trap 
其中agent表示代理进程的IP地址,community表示团体名,oid表示MIB对象ID。 
举例说明: 
1)查看本地计算机(IP地址为192.168.0.3)的系统信息 
通过对系统组的MIB对象的查阅,我们知道系统信息所对应的MIB对象为.1.3.6.1.2.1.1.1(参看系统组对象),我们使用get参数来查询: 
C:>snmputil get 192.168.0.3 public .1.3.6.1.2.1.1.1.0 
Variable = system.sysDescr.0 
Value = String Hardware: x86 Family 15 Model 2 Stepping 7 AT/AT COMPATIBLE - 
Software: Windows 2000 Version 5.1 (Build 2600 Uniprocessor Free) 
其中public是192.168.0.3计算机上的团体名,.1.3.6.1.2.1.1.1.0是对象实例,注意对象ID前面要加一个点".",后面还要加一个"0"。如果不在对象ID末尾加上一个0,那么用get参数查询就会出错。从查询结果中我们能够看出操作系统版本和CPU类型。 
2)查询计算机连续开机多长时间 
C:>snmputil get 192.168.0.3 public .1.3.6.1.2.1.1.3.0 
Variable = system.sysUpTime.0 
Value = TimeTicks 447614 
如果我们在对象ID后面不加0,使用getnext参数能得到同样的效果: 
C:>snmputil getnext 192.168.0.3 public .1.3.6.1.2.1.1.3 
Variable = system.sysUpTime.0 
Value = TimeTicks 476123 
3)查询计算机的联系人 
C:>snmputil get 192.168.0.3 public .1.3.6.1.2.1.1.4.0 
Variable = system.sysContact.0 
Value = String administrator 
以上简单介绍了用snmputil查询代理进程的方法,由于在命令行下使用,可能大家感到颇为不方便,但命令行的一个好处就是可以促进大家主动查阅MIB对象,加深对SNMP网络管理的认识。 
4)使用walk查询设备上所有正在运行的进程: 
C:>snmputil walk 192.168.0.3 public .1.3.6.1.2.1.25.4.2.1.2 
Variable = host.hrSWRun.hrSWRunTable.hrSWRunEntry. hrSWRunName.1 
Value = String System Idle Process 
Variable = host.hrSWRun.hrSWRunTable.hrSWRunEntry. hrSWRunName.4 
Value = String System 
Variable = host.hrSWRun.hrSWRunTable.hrSWRunEntry. hrSWRunName.292 
Value = String snmputil.exe 
Variable = host.hr 
SWRun.hrSWRunTable.hrSWRunEntry. hrSWRunName.308 
Value = String RavTimer.exe 
Variable = host.hrSWRun.hrSWRunTable.hrSWRunEntry. hrSWRunName.336 
Value = String RavMon.exe 
限于篇幅笔者就不把所有进程列出来,大家可以在自己的计算机上面实验,以加强感性认识。 
5)查询计算机上面的用户列表 
C:>snmputil walk 192.168.0.3 public .1.3.6.1.4.1.77.1.2.25.1.1 
Variable = .iso.org.dod.internet.private.enterprises. lanmanager.lanmgr-2.server. 
svUserTable.svUserEntry.svUserName.4.117.115.101.114 
Value = String user 
Variable = .iso.org.dod.internet.private.enterprises. lanmanager.lanmgr-2.server. 
svUserTable.svUserEntry.svUserName.5.71.117.101.115.116 
Value = String Guest 
Variable = .iso.org.dod.internet.private.enterprises. lanmanager.lanmgr-2.server.svUserTable.svUserEntry. svUserName.13.65.100.109.105.110. 105.115.116.114.97.116.111.114 
Value = String Administrator 
从中我们可以得知该计算机共有三个用户,它们分别为user、guest和administrator。 
Snmputil还有一个trap的参数,主要用来陷阱捕捉,它可以接受代理进程上主动发来的信息。如果我们在命令行下面输入snmputil trap后回车,然后用错误的团体名来访问代理进程,这时候就能收到代理进程主动发回的报告。 
在MIBII中总共有175个对象,每个对象均有其不同的含义,我们只有通过查阅MIB才能知道它们各自的作用。MIB对象是SNMP网络管理中的核心内容,只有深入了解MIB对象的含义我们才有可能知道如何去驾驭SNMP网络管理。 
SNMP中MIB 
1. SNMP基本原理 
SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。下图10是NMS公司网络产品中SNMP协议的实现模型。 
mib0 
  SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。数据报结构如下图 
mib1 
  版本识别符(version identifier):确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。 
  团体名(Community Name):用于SNMP从代理对SNMP管理站进行认证;如果网络配置成要求验证时,SNMP从代理将对团体名和管理站的IP地址进行认证,如果失败,SNMP从代理将向管理站发送一个认证失败的Trap消息 
  协议数据单元(PDU):其中PDU指明了SNMP的消息类型及其相关参数。 
2. 管理信息库MIB 
IETF规定的管理信息库MIB(由中定义了可访问的网络设备及其属性,由对象识别符(OID:Object Identifier)唯一指定。MIB是一个树形结构,SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备。   
下图给出了NMS系统中SNMP可访问网络设备的对象识别树(OID:Object Identifier)结构。 
mib2 
  下图给出了对一个DS1线路状态进行查询的OID设置例子。 
mib3 
3. SNMP的五种消息类型 
  SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request、Trap 
* Get-Request 、Get-Next-Request与Get-Response    
SNMP管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。Get- Next-Request用于和Get-Request组合起来查询特定的表对象中的列元素。如:首先通过下面的原语获得所要查询的设备的接口数: 
{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifNumber(2)} 
后再通过下面的原语,进行查询(其中第一次用Get-Request,其后用Get-Next-Request): 
{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifTable(2)} 
* Set-Request 
SNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。 
* Trap 
SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生。 
SNMP管理信息库MIB 
  管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。下图画的是管理信息库的一部分,它又称为对象命名(objectnamingtree)。 
mib4 
  管理信息库的对象命名举例 
  对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。在ISO的下面有4个结点,其中的饿一个(标号3)是被标识的组织。在其下面有一个美国国防部(Department of Defense)的子树(标号是6),再下面就是Internet(标号是1)。在只讨论Internet中的对象时,可只画出Internet以下的子树(图中带阴影的虚线方框),并在Internet结点旁边标注上{1.3.6.1}即可。在Internet结点下面的第二个结点是mgmt(管理),标号是2。再下面是管理信息库,原先的结点名是mib。1991年定义了新的版本MIB- II,故结点名现改为mib-2,其标识为{1.3.6.1.2.1},或{Internet(1) .2.1}。这种标识为对象标识符。 
最初的结点mib将其所管理的信息分为8个类别,见表1。现在de mib-2所包含的信息类别已超过40个。 
   表1 最初的结点mib管理的信息类别 
类别 
标号 
所包含的信息 
system 
interfaces 
address translation 
ip 
icmp 
tcp 
udp 
egp 
(1) 
(2) 
(3) 
(4) 
(5) 
(6) 
(7) 
(8) 
主机或路由器的操作系统 
各种网络接口及它们的测定通信量 
地址转换(例如ARP映射) 
Internet软件(IP分组统计) 
ICMP软件(已收到ICMP消息的统计) 
TCP软件(算法、参数和统计) 
UDP软件(UDP通信量统计) 
EGP软件(外部网关协议通信量统计) 
应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。 
  这里要提一下MIB中的对象{1.3.6.1.4.1},即enterprises(企业),其所属结点数已超过3000。例如IBM为 11.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等。世界上任何一个公司、学校只要用电子邮件发往[email protected]进行申请即可获得一个结点名。这样各厂家就可以定义自己的产品的被管理对象名,使它能用 SNMP进行管理。 
SNMP 命令行接口的语法和常用参数 
WebLogic SNMP 代理命令的形式如下所示: 
java command-name arguments 
表 5-1 描述大多数 WebLogic SNMP 代理命令常用的参数。 
表 5-1 常用命令行参数 
参数 
定义 
-d 
在命令输出中包括调试信息和数据包转储。 
-v {v1 | v2} 
指定是否使用 SNMPv1 或 SNMPv2 与 SNMP 代理进行通信。 
当配置 SNMP 代理时,指定的 SNMP 版本必须和在“陷阱版本”字段中设置的 SNMP 版本相同(如“管理控制台联机帮助”中的配置 SNMP 代理所述) 
如果不指定值,该命令将假定 -v v1。 
-c snmpCommunity 
[@server_name | @domain_name 
为 WebLogic SNMP 代理设置的社区名称,并可选择指定用于承载您要交互的对象的服务器实例。 
要请求管理服务器上的受管对象,请指定: 
snmpCommunity 
其中,snmpCommunity为当配置 SNMP 代理时在“社区前缀”字段中设置的 SNMP 社区名称(如“管理控制台联机帮助”中的配置 SNMP 代理所述)。 
要请求单个受管服务器上的受管对象,请指定: 
snmpCommunity@server_name 
其中,server_name为受管服务器的名称。 
要为域中的所有服务器实例请求受管对象,请按下列形式指定社区字符串: 
snmpCommunity@domain_name 
其中,domain_name为 WebLogic Server 域的名称。 
如果不为此参数指定值,那么命令假定 
-c public,从而使用默认社区名称,并假定指定的受管对象在管理服务器上。 
-p snmpPort 
WebLogic SNMP 代理监听请求的端口号。 
如果不指定值,该命令将假定 -p 161。 
-t timeout 
命令等待成功连接到 SNMP 代理的毫秒数。 
如果不指定值,该命令将假定 -t 5000。 
-r retries 
命令重新尝试连接到 SNMP 代理的失败次数。 
如果不指定值,命令在首次尝试失败时就退出。 
host 
承载 WebLogic Server 管理服务器的计算机的 DNS 名称或 IP 地址,WebLogic SNMP 代理在此 WebLogic Server 管理服务器上运行。 
http://www.oraclefmw.com/wls92/admin_ref/snmpcli.html
05-11 21:49