天天看點

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,如需轉載請自行聯系原作者

繼續閱讀