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

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

 
 clip_p_w_picpath002

分四部分:

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

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

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

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

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

 
 clip_p_w_picpath004

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

clip_p_w_picpath006
OID的解释:

 
 clip_p_w_picpath008

US DoD:美国国防部

SNMP的五种操作方式:

 
 clip_p_w_picpath010

SNMP的两种操作模式:
 
 clip_p_w_picpath012

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

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

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

 
 clip_p_w_picpath014

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
linux:~ #
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
linux:~ #
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
linux:~ #
snmptranslate 搜索并说明MIB结构中的OID
linux:~ # snmptranslate -On -IR sysDescr
.1.3.6.1.2.1.1.1
linux:~ #
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::prCount.1 = INTEGER: 6
UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: 0
UCD-SNMP-MIB::prErrMessage.1 = STRING:
UCD-SNMP-MIB::prErrFix.1 = INTEGER: 0
UCD-SNMP-MIB::prErrFixCmd.1 = STRING:
linux:~ #