web-dev-qa-db-ja.com

snmpttは、translate_log_trap_oid = 1を使用してもトラップを変換しません

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_oidnet_snmp_Perl_enablesnmptt.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がトラップの変換に失敗するのはなぜですか?

単に:

  • $ O = enterprises.12356.101.6.0.1004
  • $ Oが必要な場合= fgFmTrapIfChange

おかげで、

マット

[UPDATE]

snmptt.ini

snmptrapd.conf:

authCommunity log,execute,net communitystr
traphandle default /usr/bin/snmptthandler

snmptt.conf

翻訳されていないトラップが生きている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 = ALLsnmptt.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。

7
mbrownnyc

しばらく前にチャットウィンドウに投稿しましたが、あなたが残したようです。 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)
3
D.F.