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