天天看点

SNMP协议简要教程

Snmp(简单网络管理协议)体系结构如下图:

现在snmp的版本是v3版本。CMIP当初是为了取代snmp的,但是由于过于复杂,没有成功。

<a href="http://guoli0813.blog.51cto.com/attachment/201007/2/623863_1278087289U8xd.jpg"></a>

分四部分:

1.管理的节点(managing entity):做管理的服务器,上面安装做管理的软件,他对客户端上的信息进行展示和处理。

2.被管设备上都有agent代理,他的作用是管理被管设备,同时和管理软件通信

3.data:数据以什么格式进行表达,是data来负责的。

4.Network management protocol:负责数据的传输。

Data又是由MIB来管理,MIB的基本树形图。

<a href="http://guoli0813.blog.51cto.com/attachment/201007/2/623863_1278087291Q1XY.jpg"></a>

MIB(管理信息库)的节点表示

OID的解释:

<a href="http://guoli0813.blog.51cto.com/attachment/201007/2/623863_1278087297MNaC.jpg"></a>

US DoD:美国国防部

SNMP的五种操作方式:

<a href="http://guoli0813.blog.51cto.com/attachment/201007/2/623863_1278087298Ph1A.jpg"></a>

SNMP的两种操作模式:

<a href="http://guoli0813.blog.51cto.com/attachment/201007/2/623863_1278087300VQxS.jpg"></a>

当被管理设备达到某一个阀值就会自动向管理设备发送信息,这就是trap 模式。

当管理设备发出更改被管理设备的修改信息,或者要求被管理设备的状态信息时,然后agent的作出修改并相应。这就是request/response 模式。

SNMP的报文格式。SNMP的走的是UDP的161,162端口

<a href="http://guoli0813.blog.51cto.com/attachment/201007/2/623863_1278087302e60Y.jpg"></a>

SNMP的相关命令使用方法: 

snmpdelta 一直监视SNMP变量中的变化 

linux:~ # snmpdelta -c public -v 1 -Cs -CT localhost IF-MIB:ifInUcastPkts.3 IF-MIB:ifOutcastPkts.3 

localhost ifInUcastPkts.3 ifOutUcastPkts.3 

[20:15:59 6/14] 184.00 184.00 

[20:16:00 6/14] 158.00 158.00 

[20:16:01 6/14] 184.00 184.00 

[20:16:02 6/14] 184.00 184.00 

[20:16:03 6/14] 158.00 158.00 

[20:16:04 6/14] 184.00 184.00 

[20:16:05 6/14] 184.00 184.00 

[20:16:06 6/14] 158.00 158.00 

snmpdf 通过SNMP监视远程主机的磁盘空间 

linux:~ # snmpdf -v 1 -c public localhost 

Description size (kB) Used Available Used% 

0 0 0 0% 

Real Memory 0 0 0 0% 

Swap Space 0 0 0 0% 

/ 5734988 2462884 3272104 42% 

/dev/shm 138472 8 138464 0% 

/media/cdrecorder 0 0 0 0% 

/media/floppy 0 0 0 0% 

/proc/bus/usb 0 0 0 0% 

linux:~ # 

snmpget 从一个代理得到一个SNMP变量的值 

linux:~ # snmpget -v 1 -c public localhost 1.3.6.1.4.1.2021.2.1.5.1 

UCD-SNMP-MIB::prCount.1 = INTEGER: 6 

snmpgetnext 从序列中获得下一个变量 

linux:~ # snmpgetnext -v 1 -c public localhost 1.3.6.1.4.1.2021.2.1.5.1 

UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: 0 

snmpset 设置代理上的一个SNMP变量 

linux:~ # snmpset -c private -v 1 test-hub system.sysContact.0 s 

ip.ipforwarding.0 = 2 

snmptable 得到一个SNMP变量表 

linux:~ # snmptable -c public -v 1 localhost 1.3.6.1.2.1.1.1 

Was that a table SNMPv2-MIB::system 

snmptranslate 搜索并说明MIB结构中的OID 

linux:~ # snmptranslate -On -IR sysDescr 

.1.3.6.1.2.1.1.1 

snmptrap 生成一次trap告警 

linux:~ # snmptrap -v 1 -c public manager enterprises.spider test-hub 3 0 '' interfaces.iftable.ifentry.ifindex.1 i 1 

snmpwalk 从某个特定的OID开始遍历MIB 

linux:~ # snmpwalk -v 1 -c public localhost 1.3.6.1.4.1.2021.2 

UCD-SNMP-MIB::prIndex.1 = INTEGER: 1 

UCD-SNMP-MIB::prNames.1 = STRING: httpd2-prefork 

UCD-SNMP-MIB::prMin.1 = INTEGER: 0 

UCD-SNMP-MIB::prMax.1 = INTEGER: 0 

UCD-SNMP-MIB::prErrMessage.1 = STRING: 

UCD-SNMP-MIB::prErrFix.1 = INTEGER: 0 

UCD-SNMP-MIB::prErrFixCmd.1 = STRING: 

linux:~ #

本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/343129,如需转载请自行联系原作者

继续阅读