Назад | Перейти на главную страницу

snmptt не переводит ловушки, даже если translate_log_trap_oid = 1

У меня проблемы с настройкой snmptt правильно переводить ловушки snmp.

Следующая проблема:

/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 не получается перевести ловушки?

Просто:

Спасибо,

Мэтт

[ОБНОВИТЬ]

snmptt.ini

snmptrapd.conf:

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

snmptt.conf

MIB, где живет непереводимая ловушка (и это ссылка на MIB).

Обратите внимание, что linkUp и linkDown переводятся правильно.

[ОБНОВЛЕНИЕ 2]

Я также протестировал другой MIB, который не является MIB по умолчанию, содержащимся в пакете net-snmp, и этот MIB также не удается разрешить.

[ОБНОВЛЕНИЕ 3]

Если я установлю в snmptt.ini следующее:

mode = standalone

И я установил в snmptrapd.conf следующее:

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

Я умею переводить ловушки, как и ожидалось.

Это означает, что какой бы метод /usr/sbin/snmptt use to daemonize может не иметь доступа к 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 [определенные в файлах]).

\ о.

Я разместил это в окне чата некоторое время назад, но похоже, что вы его оставили. Для вашего файла 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

Интересен «translate_trap_oid_format», который влияет на значение $ O. Допустимые значения: 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)