У меня проблемы с настройкой 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
не получается перевести ловушки?
Просто:
Спасибо,
Мэтт
[ОБНОВИТЬ]
snmptrapd.conf:
authCommunity log,execute,net communitystr
traphandle default /usr/bin/snmptthandler
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)