由上可見,經過上述3個命令程序,咱們能夠研究snmp的trap行爲及其報文,若是你正在開發snmp agent的trap功能但又沒有snmp管理端,這3個程序則可幫上你的大忙。下面詳細介紹這3個命令程序的具體用法。 html
snmptrapd的配置及其使用 node
snmptrapd.conf文件 git
跟snmp agent同樣,snmptrapd也須要一個配置文件才能運行,不然會提示不能接收trap的信息。snmptrapd所需的配置文件名稱 爲:snmptrapd.conf,安裝net-snmp後,默認是沒有這個配置文件的,所以須要新建此文件。snmptrapd.conf文件可放在 net-snmp的安裝路徑下,也可放在其它路徑中,但須要在啓動運行時指定該文件。創建後,添加以下文件內容: ubuntu
運行snmptrapd程序 網絡
可經過snmptrapd -h查看命令幫助瞭解該命令的使用。 app
snmptrap的使用方法 dom
snmptrap可模擬發送不一樣snmp協議版本的trap包。各協議版本的snmptrap使用方法略有不一樣。 ui
發送V1版本trap報文的方法 this
snmptrap | -v1 | -c public | 10.10.12.219 | 1.3.6.1.4.1.1 | 10.10.12.219 | 2 | 3 | 1000 |
命令 | Snmp協議版本 | 共同體 | Snmp管理端IP | Enterprise-OID | Snmp代理IP | Trap類型 | Trap特徵碼 | uptime |
1.3.6.1.9.9.44.1.2.1 | I | 12 | 12 1.3.4.1.2.3.1 | s | test_snmptrap |
被髮送參數的OID | 數據類型 | 數據值 | 被髮送參數的OID | 數據類型 | 數據值 |
上面中,snmptrapd和snmptrap都在虛擬Ubuntu中執行的,因此snmp管理端IP和snmp代理IP同樣。執行後,在執行snmptrapd的窗口中可接收到數據,以下: spa
04 01 01 40 04 0A 0A 0C DB 02 01 02 .+…..@……..
0032: 02 01 03 43 02 03 E8 30 29 30 0E 06 09 2B 06 01 …C…0)0…+..
0048: 09 09 2C 01 02 01 02 01 0C 30 17 06 06 2B 04 01 ..,……0…+..
0064: 02 03 01 04 0D 74 65 73 74 5F 73 6E 6D 70 74 72 …..test_snmptr
0080: 61 70 ap
2013-03-23 17:44:32 ubuntu.local [10.10.12.219] (via UDP: [10.10.12.219]:52930) TRAP, SNMP v1, community public
SNMPv2-SMI::enterprises.1 Link Down Trap (3) Uptime: 0:00:10.00
SNMPv2-SMI::internet.9.9.44.1.2.1 = INTEGER: 12 SNMPv2-SMI::org.4.1.2.3.1 = STRING: 「test_snmptrap」
snmptrapd接收到一個trap類型爲2即Link Down類型,特徵碼爲3的trap包。
發送V2版本trap報文的方法
從上面可看到,發送V1版本的trap包有較多的參數,如uptime等,而在V 2c版本中則交給了指令程序去作。
使用V2c版本,是否是省了不少,不用輸入不少的參數選項。執行指令後,snmptrapd收到以下數據信息:
Received 75 bytes from UDP: [10.10.12.219]:40033
0000: 30 49 02 01 01 04 06 70 75 62 6C 69 63 A7 3C 02 0I…..public.<.
0016: 04 76 90 66 76 02 01 00 02 01 00 30 2E 30 15 06 .v.fv……0.0..
0032: 0A 2B 06 01 06 03 01 01 04 01 00 06 07 2B 06 01 .+………..+..
0048: 04 01 92 29 30 15 06 08 2B 06 01 02 01 01 06 00 …)0…+…….
0064: 04 09 6A 75 73 74 20 68 65 72 65 ..just here
2013-03-24 10:35:50 ubuntu.local [UDP: [10.10.12.219]:40033]:
SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.2345 SNMPv2-MIB::sysLocation.0 = STRING: just here
snmpinform的使用方法
snmpinform的使用跟snmptrap的使用方法是同樣的,在這裏就很少介紹和說明了。最後,貼上它們的使用幫助信息:
USAGE: snmptrap [OPTIONS] AGENT TRAP-PARAMETERS
Version: 5.3.0.1
Web: http://www.net-snmp.org/
Email: net-snmp-coders@lists.sourceforge.net
OPTIONS:
-h, –help display this help message
-H display configuration file directives understood
-v 1|2c|3 specifies SNMP version to use
-V, –version display package version number
SNMP Version 1 or 2c specific
-c COMMUNITY set the community string
SNMP Version 3 specific
-a PROTOCOL set authentication protocol (MD5|SHA)
-A PASSPHRASE set authentication protocol pass phrase
-e ENGINE-ID set security engine ID (e.g. 800000020109840301)
-E ENGINE-ID set context engine ID (e.g. 800000020109840301)
-l LEVEL set security level (noAuthNoPriv|authNoPriv|authPriv)
-n CONTEXT set context name (e.g. bridge1)
-u USER-NAME set security name (e.g. bert)
-x PROTOCOL set privacy protocol (DES|AES)
-X PASSPHRASE set privacy protocol pass phrase
-Z BOOTS,TIME set destination engine boots/time
General communication options
-r RETRIES set the number of retries
-t TIMEOUT set the request timeout (in seconds)
Debugging
-d dump input/output packets in hexadecimal
-D TOKEN[,...] turn on debugging output for the specified TOKENs
(ALL gives extremely verbose debugging output)
General options
-m MIB[:...] load given list of MIBs (ALL loads everything)
-M DIR[:...] look in given list of directories for MIBs
-P MIBOPTS Toggle various defaults controlling MIB parsing:
u: allow the use of underlines in MIB symbols
c: disallow the use of 「–」 to terminate comments
d: save the DESCRIPTIONs of the MIB objects
e: disable errors when MIB symbols conflict
w: enable warnings when MIB symbols conflict
W: enable detailed warnings when MIB symbols conflict
R: replace MIB symbols from latest module
-O OUTOPTS Toggle various defaults controlling output display:
0: print leading 0 for single-digit hex characters
a: print all strings in ascii format
b: do not break OID indexes down
e: print enums numerically
E: escape quotes in string indices
f: print full OIDs on output
n: print OIDs numerically
q: quick print for easier parsing
Q: quick print with equal-signs
s: print only last symbolic element of OID
S: print MIB module-id plus last element
t: print timeticks unparsed as numeric integers
T: print human-readable text along with hex strings
u: print OIDs using UCD-style prefix suppression
U: don’t print units
v: print values only (not OID = value)
x: print all strings in hex format
X: extended index format
-I INOPTS Toggle various defaults controlling input parsing:
b: do best/regex matching to find a MIB node
h: don’t apply DISPLAY-HINTs
r: do not check values for range/type legality
R: do random access to OID labels
u: top-level OIDs must have ‘.’ prefix (UCD-style)
s SUFFIX: Append all textual OIDs with SUFFIX before parsing
S PREFIX: Prepend all textual OIDs with PREFIX before parsing
-L LOGOPTS Toggle various defaults controlling logging:
e: log to standard error
o: log to standard output
n: don’t log at all
f file: log to the specified file
s facility: log to syslog (via the specified facility)
(variants)
[EON] pri: log to standard error, output or /dev/null for level ‘pri’ and above
[EON] p1-p2: log to standard error, output or /dev/null for levels ‘p1′ to ‘p2′
[FS] pri token: log to file/syslog for level ‘pri’ and above
[FS] p1-p2 token: log to file/syslog for levels ‘p1′ to ‘p2′
-C APPOPTS Set various application specific behaviour:
i: send an INFORM instead of a TRAP
-v 1 TRAP-PARAMETERS:
enterprise-oid agent trap-type specific-type uptime [OID TYPE VALUE]…
or
-v 2 TRAP-PARAMETERS:
uptime trapoid [OID TYPE VALUE] …
若是還不明白的,能夠看一下下面的參考資料,或許對你有幫助。
參考資料