snmptt não traduzindo traps, mesmo com translate_log_trap_oid = 1

7

Estou tendo problemas para configurar snmptt para traduzir adequadamente as armadilhas snmp.

O seguinte é um problema:

/etc/snmp/snmptt.conf reflete:

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

quando uma armadilha é recebida, / var / log / messages reflete:

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

Como a entrada icinga reflete o EXEC , é óbvio que não há traduções ocorrendo em snmptt .

Verifiquei que translate_log_trap_oid e net_snmp_perl_enable estão ativados em snmptt.ini

Ao usar --debug=1 para iniciar snmptt , vejo o seguinte no --debugfile :

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

A versão principal do NET-SNMP é reportada como NET-SNMP version: 5.5 .

O que mais pode ser feito para verificar se snmptt está configurado corretamente para traduzir traps?

Eu executei snmptt-net-snmp-test para verificar se a versão net-snmp-perl que eu instalei corretamente suporta traduções. A saída indica isso.

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

Eu passei manualmente pelo MIB com a definição que não está resolvendo e verifiquei que ele está se vinculando corretamente à definição resolvida apropriada. É:

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

Eu já exaurei toda a documentação e até postei infrutíferamente na lista de discussão de usuários do snmptt.

Eu não posso provar que é o MIB.

Por que snmptt não conseguiu traduzir as armadilhas?

Simplesmente:

  • $ O = empresas.12356.101.6.0.1004
  • quando $ O deve = fgFmTrapIfChange

Obrigado,

Matt

[UPDATE]

snmptt.ini

snmptrapd.conf:

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

snmptt.conf

MIB onde a armadilha que não está sendo traduzida mora (e é MIB referenciado ).

Observe que linkUp e linkDown estão sendo traduzidos corretamente.

[ATUALIZAÇÃO 2]

Eu também testei com outro MIB que não é um MIB padrão contido no pacote net-snmp, e este MIB também não resolve.

[ATUALIZAÇÃO 3]

Se eu definir o seguinte no snmptt.ini:

mode = standalone

E eu defino o seguinte no snmptrapd.conf:

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

Eu posso traduzir as armadilhas como esperado.

Isso significa que qualquer método que o /usr/sbin/snmptt use para daemonizar pode não ter acesso aos MIBs, ou pode estar fazendo algo diferente do descrito. A documentação incluída em snmptt.ini provavelmente conterá as respostas que eu procuro.

[[SOLUÇÃO]]

Defina mibs_environment = ALL em snmptt.ini

Descrição:

# 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 deve ser definido em snmptt.ini , mesmo com snmptrapd começando com -m ALL (onde ALL é uma instrução wild card que inclui todos os MIBs [definidos nos arquivos]).

\ o.

    
por mbrownnyc 06.09.2012 / 21:46

1 resposta

3

Eu postei isso na janela de bate-papo por algum tempo, mas parece que você pode ter deixado. Seu arquivo snmptt.ini possui as seguintes opções de tradução configuradas:

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 interessante é o 'translate_trap_oid_format' que afeta o valor de $ O. Os valores válidos são 0 - 4, com 0 desligando a tradução, o resto está listado em 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)
    
por 12.09.2012 / 22:05