Snmpトラップを適切に変換するようにsnmptt
を構成するときに問題が発生しました。
以下は問題です:
/etc/snmp/snmptt.confは以下を反映しています:
EVENT fgFmTrapIfChange .1.3.6.1.4.1.12356.101.6.0.1004 "Status Events" Critical
FORMAT $*
EXEC /usr/local/nagios/libexec/eventhandlers/submit_check_result $r "snmp_traps" 2 "$O: $+*" "$*"
SDESC
Trap is sent to the managing FortiManager if an interface IP is changed
Variables:
1: fnSysSerial
2: ifName
3: fgManIfIp
4: fgManIfMask
EDESC
トラップが受信されると、/ var/log/messagesは以下を反映します。
Sep 6 12:07:32 SNMPMANAGERHOST snmptrapd[15385]:
2012-09-06 12:07:32 <UNKNOWN>
[UDP:
[192.168.100.2]:162->[192.168.100.31]]:
#012.1.3.6.1.2.1.1.3.0 = Timeticks: (707253943) 81 days, 20:35:39.43
#011.1.3.6.1.6.3.1.1.4.1.0 = OID: .1.3.6.1.4.1.12356.101.6.0.1004
#011.1.3.6.1.4.1.12356.100.1.1.1.0 = STRING: FGTNNNNNNNNN
#011.1.3.6.1.2.1.31.1.1.1.1.10 = STRING: internal4
#011.1.3.6.1.4.1.12356.101.6.2.1.0 = IpAddress: 192.168.65.100
#011.1.3.6.1.4.1.12356.101.6.2.2.0 = IpAddress: 255.255.255.0
Sep 6 12:07:37 SNMPMANAGERHOST icinga:
EXTERNAL COMMAND:
PROCESS_SERVICE_CHECK_RESULT;
192.168.100.2;
snmp_traps;
2;
enterprises.12356.101.6.0.1004: enterprises.12356.100.1.1.1.0:FGTNNNNNNNNN ifName.10:internal4 enterprises.12356.101.6.2.1.0:192.168.65.100 enterprises.12356.101.6.2.2.0:255.255.255.0
icinga
エントリはEXEC
を反映しているため、snmptt
による変換が発生していないことは明らかです。
translate_log_trap_oid
でnet_snmp_Perl_enable
とsnmptt.ini
が有効になっていることを確認しました
--debug=1
を使用してsnmptt
を開始すると、--debugfile
に次のように表示されます。
********** Net-SNMP version 5.05 Perl module enabled **********
メインのNET-SNMPバージョンはNET-SNMP version: 5.5
として報告されます。
snmptt
がトラップを変換するように正しく構成されていることを確認するために、他に何ができますか?
snmptt-net-snmp-test
を実行して、インストールしたnet-snmp-Perlのバージョンが適切に翻訳をサポートしていることを確認しました。出力はそうであることを示しています。
/root/snmptt_1.3/snmptt-net-snmp-test --best_guess=2
SNMPTT Net-SNMP Test v1.0
(c) 2003 Alex Burger
http://snmptt.sourceforge.net
MIBS:RFC1213-MIB
best_guess: 2
Testing translateObj
********************
Testing: .1.3.6.1.2.1.1.1, long_names=disabled, include_module=disabled
Test passed. Result: sysDescr
Testing: .1.3.6.1.2.1.1.1, long_names=disabled, include_module=enabled
Test passed. Result: RFC1213-MIB::sysDescr
Testing: .1.3.6.1.2.1.1.1, long_names=enabled, include_module=disabled
Test passed. Result: .iso.org.dod.internet.mgmt.mib-2.system.sysDescr
Testing: .1.3.6.1.2.1.1.1, long_names=enabled, include_module=enabled
Test passed. Result: RFC1213-MIB::.iso.org.dod.internet.mgmt.mib-2.system.sysDescr
Testing: sysDescr, long_names=disabled, include_module=disabled
Test passed. Result: .1.3.6.1.2.1.1.1
Testing: RFC1213-MIB::sysDescr, long_names=disabled, include_module=disabled
Test passed. Result: .1.3.6.1.2.1.1.1
Testing: system.sysDescr, long_names=disabled, include_module=disabled
Test passed. Result: .1.3.6.1.2.1.1.1
Testing: RFC1213-MIB::system.sysDescr, long_names=disabled, include_module=disabled
Test passed. Result: .1.3.6.1.2.1.1.1
Testing: .iso.org.dod.internet.mgmt.mib-2.system.sysDescr, long_names=disabled, include_module=disabled
Test passed. Result: .1.3.6.1.2.1.1.1
Testing getType
***************
Testing: .1.3.6.1.2.1.4.1
Test passed. Result: INTEGER
Testing: ipForwarding
Test passed. Result: INTEGER
Testing Description
*******************
Test passed. Result:
-------------------------------------------------
The indication of whether this entity is acting
as an IP gateway in respect to the forwarding of
datagrams received by, but not addressed to, this
entity. IP gateways forward datagrams. IP hosts
do not (except those source-routed via the Host).
Note that for some managed nodes, this object may
take on only a subset of the values possible.
Accordingly, it is appropriate for an agent to
return a `badValue' response if a management
station attempts to change this object to an
inappropriate value.
-------------------------------------------------
解決できない定義を使用して手動でMIBを調べ、適切に解決された定義に正しくリンクされていることを確認しました。それは:
FORTINET-FORTIGATE-MIB.txt contains:
fgFmTrapIfChange NOTIFICATION-TYPE
OBJECTS { fnSysSerial, ifName, fgManIfIp, fgManIfMask }
STATUS current
DESCRIPTION
"Trap is sent to the managing FortiManager if an interface IP is changed"
::= { fgFmTrapPrefix 1004 }
fgFmTrapPrefix OBJECT IDENTIFIER
::= { fgMgmt 0 }
fgMgmt OBJECT IDENTIFIER
::= { fnFortiGateMib 6 }
fnFortiGateMib
::= { fortinet 101 }
IMPORTS
FnBoolState, FnIndex, fnAdminEntry, fnSysSerial, fortinet
FROM FORTINET-CORE-MIB
fortinet MODULE-IDENTITY
::= { enterprises 12356 }
LOOKS GOOD!!!!!
1.3.6.1.4.1.12356.101.6.0.1004
私はすべてのドキュメントを使い果たし、そして snmptt-usersメーリングリストに無益に投稿しました。
それがMIBであることを証明できません。
snmptt
がトラップの変換に失敗するのはなぜですか?
単に:
おかげで、
マット
[UPDATE]
snmptrapd.conf:
authCommunity log,execute,net communitystr
traphandle default /usr/bin/snmptthandler
翻訳されていないトラップが生きているMIB (そして 参照されているMIB ).
LinkUpとlinkDownは正しく変換されていることに注意してください。
[UPDATE 2]
また、net-snmpパッケージに含まれるデフォルトのMIBではない別のMIBでテストしましたが、このMIBも解決できません。
[UPDATE 3]
Snmptt.iniで次のように設定した場合:
mode = standalone
そして、私はsnmptrapd.confに以下を設定しました:
traphandle default /usr/sbin/snmptt --ini=/etc/snmp/snmptt.ini
期待どおりにトラップを翻訳できます。
これは、デーモン化するために/usr/sbin/snmptt
が使用するメソッドがMIBにアクセスできないか、説明されている以外のことをしている可能性があることを意味します。 snmptt.ini
に含まれるドキュメントには、私が求めている答えが含まれている可能性があります。
mibs_environment = ALL
をsnmptt.ini
に設定
説明:
# Allows you to set the MIBS environment variable used by SNMPTT
# Leave blank or comment out to have the systems enviroment settings used
# To have all MIBS processed, set to ALL
# See the snmp.conf manual page for more info.
mibs_environment = ALL
は、snmptt.ini
で始まるsnmptrapdでも、-m ALL
に設定する必要があります(ALL
は、[ファイル内で定義された]すべてのMIBを含むワイルドカードステートメントです)。
\ o。
しばらく前にチャットウィンドウに投稿しましたが、あなたが残したようです。 snmptt.iniファイルには、次の変換オプションが設定されています。
translate_log_trap_oid = 1
translate_value_oids = 1
translate_enterprise_oid_format = 1
translate_trap_oid_format = 0
translate_varname_oid_format = 0
translate_integers = 1
興味深いものは、$ Oの値に影響を与える「translate_trap_oid_format」です。有効な値は0〜4で、0は変換をオフにし、残りはsnmptt.iniにリストされます。
Set to 0 to disable translating OID values to text (symbolic form)
Set to 1 to translate OID values to short text (symbolic form) (eg: BuildingAlarm)
Set to 2 to translate OID values to short text with module name (eg: UPS-MIB::BuildingAlarm)
Set to 3 to translate OID values to long text (eg: iso...upsAlarm.BuildingAlarm)
Set to 4 to translate OID values to long text with module name (eg:UPS-MIB::iso...upsAlarm.BuildingAlarm)