snmptt übersetzt keine Traps, auch wenn translate_log_trap_oid = 1 ist

7

Ich habe einige Probleme bei der Konfiguration snmptt, um snmp-Traps richtig zu übersetzen.

Folgendes ist ein Problem:

/etc/snmp/snmptt.conf spiegelt Folgendes wider:

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

Wenn eine Falle empfangen wird, spiegelt / var / log / messages Folgendes wider:

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

Da der icingaEintrag das widerspiegelt EXEC, ist es offensichtlich, dass keine Übersetzungen von auftreten snmptt.

Ich habe das überprüft translate_log_trap_oidund net_snmp_perl_enableist aktiviert insnmptt.ini

Beim --debug=1Starten snmpttsehe ich Folgendes in --debugfile:

********** Net-SNMP version 5.05 Perl module enabled **********

Die Hauptversion von NET-SNMP wird als gemeldet NET-SNMP version: 5.5.

Was kann noch getan werden, um zu überprüfen, ob die snmpttÜbersetzung von Traps ordnungsgemäß konfiguriert ist?

Ich habe ausgeführt snmptt-net-snmp-test, um zu überprüfen, welche von mir installierte net-snmp-perl-Version Übersetzungen unterstützt. Die Ausgabe zeigt an, dass dies der Fall ist.

/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.
-------------------------------------------------

Ich habe die MIB mit der Definition, die nicht aufgelöst wird, manuell durchgesehen und überprüft, ob sie ordnungsgemäß mit der ordnungsgemäß aufgelösten Definition verknüpft ist. Es ist:

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

Ich habe die gesamte Dokumentation erschöpft und sogar erfolglos in der Mailingliste der snmptt-Benutzer gepostet .

Ich kann nicht beweisen, dass es die MIB ist.

Warum sollten snmpttFallen nicht übersetzt werden?

Einfach:

  • $ O = Unternehmen.12356.101.6.0.1004
  • wenn $ O sollte = fgFmTrapIfChange

Vielen Dank,

Matt

[AKTUALISIEREN]

snmptt.ini

snmptrapd.conf:

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

snmptt.conf

MIB, in der eine nicht übersetzte Falle lebt (und auf die MIB verwiesen wird ).

Beachten Sie, dass linkUp und linkDown ordnungsgemäß übersetzt werden.

[UPDATE 2]

Ich habe auch mit einer anderen MIB getestet, die keine Standard-MIB ist, die im net-snmp-Paket enthalten ist, und diese MIB kann auch nicht aufgelöst werden.

[UPDATE 3]

Wenn ich in snmptt.ini Folgendes einstelle:

mode = standalone

Und ich habe folgendes in snmptrapd.conf eingestellt:

traphandle default /usr/sbin/snmptt --ini=/etc/snmp/snmptt.ini

Ich kann Fallen wie erwartet übersetzen.

Dies bedeutet, dass /usr/sbin/snmpttdie zum Dämonisieren verwendete Methode möglicherweise keinen Zugriff auf die MIBs hat oder etwas anderes als das beschriebene ausführt. Die darin enthaltene Dokumentation snmptt.inienthält wahrscheinlich die Antworten, die ich suche.

[[LÖSUNG]]

Setzen Sie mibs_environment = ALLeinsnmptt.ini

Beschreibung:

# 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 = ALLmuss snmptt.iniauch mit snmptrapd gesetzt werden, beginnend mit -m ALL(wobei ALLeine Platzhalteranweisung ist, die alle MIBs enthält [die in den Dateien definiert sind]).

\Ö.

mbrownnyc
quelle
Kannst du deine snmptt.ini posten? Wie fängst du mit snmptt an?
DF
ursprüngliche Frage aktualisiert mit: snmptt. snmptrapd.conf snmptt.conf, Trap-MIB und MIB, auf die für die Trap-Definition verwiesen wird.
mbrownnyc
Verwenden Sie Nagios oder Icinga? Ich habe icinga überhaupt nicht verwendet, aber werden Dienstprogramme in / usr / local / nagios installiert?
DF
Mit welchen Dienstprogrammen beschäftigen Sie sich? Icinga und Nagios sind im Wesentlichen dasselbe. Mein Anliegen ist es nicht, Icinga zu alarmieren. da die passiven Dienste konfiguriert sind und die Pipe funktioniert. Es ist das Skript, das Daten in das FIFO leitet, das command pipefür icinga / nagios nicht mit den korrekt übersetzten Daten bereitgestellt wird. Diese übersetzten Daten sind ein Ergebnis der snmpttÜbersetzung der OIDempfangenen traps.
mbrownnyc

Antworten:

3

Ich habe dies vor einiger Zeit im Chat-Fenster gepostet, aber es sieht so aus, als hätten Sie es verlassen. In Ihrer Datei snmptt.ini sind die folgenden Übersetzungsoptionen festgelegt:

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

Das Interessante ist das 'translate_trap_oid_format', das den Wert von $ O beeinflusst. Gültige Werte sind 0 - 4, wobei 0 die Übersetzung deaktiviert, der Rest ist in snmptt.ini aufgeführt.

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)
DF
quelle
Ahh hah! Ich wusste, dass es etwas Triviales sein würde, das ich verpasst habe ... immer! Ich werde morgen testen und nach Bedarf vergeben. Was ist mit Update 3 oben los? Scheint komisch; aber ich denke, es ist eine Frage für die Entwickler.
mbrownnyc
Das ist merkwürdig. Ich kann nur wirklich Vermutungen über den Grund für dieses Verhalten anstellen ... dass es aus irgendeinem Grund, wenn es eigenständig ausgeführt wird, Optionen in der INI-Datei ignoriert. Es würde wahrscheinlich jemanden brauchen, der mit der Quelle vertraut ist, um darauf zu antworten.
DF
Ob Sie es glauben oder nicht, dies löst das Problem nicht. Unter Bezugnahme auf eine alte Centreon-Installation konnte ich jedoch feststellen, dass sie das Standalone- modeFlag verwenden und die INI-Datei --ini=wie gestern beim Testen verwenden. Ich bin hoffnungslos darin, den Daemon-Modus dazu zu bringen, eine MIB zu übersetzen, die nicht mit dem net-snmp-Paket geliefert wird. Ich werde nur die Standalone-Methode verwenden, da sie so funktioniert, wie ich es mir wünsche. Danke für Ihre Hilfe!
mbrownnyc
Lösung : mibs_environment= ALL. # 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. Funktioniert im Daemon. In Ordung!
mbrownnyc