概覽
本文向您展示了幾種向 Nagios 服務(wù)器發(fā)送Trap以測試 SNMP Trap功能的方法。
有時(shí)在對 SNMP Trap問題進(jìn)行故障排除時(shí),移除可能導(dǎo)致問題的實(shí)際設(shè)備并改用 snmptrap 命令會(huì)非常有幫助。 此故障排除方法將確認(rèn)您的 Nagios 服務(wù)器是否正確接收 SNMP Trap并正確配置。
您將在 Nagios 主機(jī)本身上執(zhí)行該命令,這就是您在以下命令中看到 localhost 的原因。
正常運(yùn)行時(shí)間
當(dāng)您發(fā)送Trap時(shí),它當(dāng)然必須符合一組標(biāo)準(zhǔn)。 下面的每個(gè)部分都對這些選項(xiàng)進(jìn)行了解釋,但有一個(gè)選項(xiàng)很常見且需要解釋,即正常運(yùn)行時(shí)間。
每個(gè)Trap都需要一個(gè)正常運(yùn)行時(shí)間值。 正常運(yùn)行時(shí)間是系統(tǒng)自啟動(dòng)以來運(yùn)行的時(shí)間。 有時(shí)這是操作系統(tǒng),其他設(shè)備可能會(huì)使用 SNMP 引擎正常運(yùn)行時(shí)間。 無論如何,都會(huì)發(fā)送一個(gè)值。
那么你應(yīng)該在下面的命令中輸入什么值? 奇怪的是,簡單地使用兩個(gè)單引號 '' 不提供任何值將指示命令從您正在執(zhí)行此操作的操作系統(tǒng)獲取值。
對于那些在處理之前深入挖掘并查看假脫機(jī)Trap的人來說,他們會(huì)想了解它是什么類型的格式。 下面是一個(gè)例子:
DISMAN-EVENT-MIB::sysUpTimeInstance 36:2:40:51.67
這相當(dāng)于 36 天 2 小時(shí) 40 分 51.67 秒。
本節(jié)的關(guān)鍵點(diǎn)是您現(xiàn)在知道為什么下面的命令有兩個(gè)單引號 '' 來表示正常運(yùn)行時(shí)間值。
SNMP v2 Trap
下面的命令采用以下形式:
snmptrap -v <snmp_version> -c <community> <destination_host> <uptime> <OID_or_MIB> <object> <value_type> <value>
使用 MIB:
snmptrap -v 2c -c public localhost '' NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456
縮短 MIB:
snmptrap -v 2c -c public localhost '' netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456
使用 OID 代替 MIB:
snmptrap -v 2c -c public localhost '' 1.3.6.1.4.1.8072.2.3.0.1
1.3.6.1.4.1.8072.2.3.2.1 i 123456
上述命令需要在 /etc/snmp/snmptrapd.conf 中進(jìn)行以下設(shè)置
disableAuthorization yes
traphandle default /usr/sbin/snmptthandler
SNMP v3 Trap
下面的命令采用以下形式:
snmptrap -v <snmp_version> -e <engine_id> -u <security_username> -a <authentication_protocal> -A <authentication_protocal_pass_phrase> -x <privacy_protocol> -X <privacy_protocol_pass_phrase> <destination_host> <uptime> <OID_or_MIB> <object> <value_type> <value>
使用 MIB:
snmptrap -v 3 -e 0x090807060504030201 -u the_user_name -a SHA -A the_SHA_string -x AES -X the_AES_string localhost '' NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456
縮短 MIB:
snmptrap -v 3 -e 0x090807060504030201 -u the_user_name -a SHA -A the_SHA_string -x AES
-X the_AES_string localhost '' netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456
使用 OID 代替 MIB:
snmptrap -v 3 -e 0x090807060504030201 -u the_user_name -a SHA -A the_SHA_string -x AES
-X the_AES_string localhost '' 1.3.6.1.4.1.8072.2.3.0.1
1.3.6.1.4.1.8072.2.3.2.1 i 123456
上述命令需要在 /etc/snmp/snmptrapd.conf 中進(jìn)行以下設(shè)置
disableAuthorization yes
traphandle default /usr/sbin/snmptthandler
createUser -e 0x090807060504030201 the_user_name SHA the_SHA_string AES the_AES_string
authUser log,execute,net the_user_name
SNMPTrap定義
以下Trap定義可以放在 /etc/snmp/snmptt.conf 中,這將允許上面發(fā)送的測試Trap傳遞到 Nagios:
EVENT netSnmpExampleHeartbeatRate .1.3.6.1.4.1.8072.2.3.0.1 "netSnmpExampleHeartbeatRate" Normal
FORMAT SNMP netSnmpExampleHeartbeatRate
EXEC /usr/local/bin/snmptraphandling.py "$r" "SNMP Traps" "$s" "$@" "" "netSnmpExampleHeartbeatRate"
Trap vs Inform
從 net-snmp 網(wǎng)站:
Trap
TRAP 是從一個(gè)應(yīng)用程序發(fā)送到另一個(gè)應(yīng)用程序(通常位于遠(yuǎn)程主機(jī)上)的 SNMP 消息。 它們的目的僅僅是通知其他應(yīng)用程序發(fā)生了某些事情,已經(jīng)注意到等。 TRAP 的一個(gè)大問題是它們未被確認(rèn),因此您實(shí)際上不知道遠(yuǎn)程應(yīng)用程序是否收到了您發(fā)給它的非常重要的消息。
INFORM
SNMPv2 PDU 通過引入 INFORM 的概念解決了這個(gè)問題,INFORM 只不過是一個(gè)已確認(rèn)的 TRAP。 IE,當(dāng)遠(yuǎn)程應(yīng)用程序收到 INFORM 時(shí),它會(huì)發(fā)回一條“我知道了”消息。 這很好,因?yàn)榘l(fā)送Trap的人可以繼續(xù)嘗試,直到Trap通過。
上面的所有命令都可以從 snmptrap 更改為 snmpinform 這將允許您發(fā)送測試通知。
SNMP Trap配置
可以在以下知識庫文章中找到有關(guān)配置服務(wù)器以接受 SNMP TRAP 的更多詳細(xì)信息:
Nagios XI - SNMP Trap 強(qiáng)化
Nagios XI - SNMP Trap v3 配置
京ICP備09015132號-996 | 違法和不良信息舉報(bào)電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號豪柏大廈C2座11層1105室
北京哲想軟件集團(tuán)旗下網(wǎng)站:哲想軟件 | 哲想動(dòng)畫