Отправка электронной почты при получении SNMP Trap
Мне необходимо настроить приемник прерываний SNMP для обработки прерываний от определенного устройства (в данном случае это библиотека ленточных носителей IBM TS3584) и отправлять их (по электронной почте) с информацией об ошибке. Мой сервер работает под управлением CentOS 6.4 linux с пакетом net-snmp.
Я подключился к библиотеке и смог получить тестовую ловушку. Кроме того, я скачал MIB для этого устройства (отсюда: http://www-01.ibm.com/support/docview.wss?uid=ssg1S4000318) и подтвердил, что могу получить значения (или OID) конкретное событие:
snmpwalk -v2c -c public -m +IBM-TS3500-MIBv2 10.10.100.5 ibm3584MIBObjectsTD
**IBM-TS3500-MIBv1::ibm3584MIBObjectsTD.0 = STRING: "This is a test SNMP trap."**
snmptranslate -m +IBM-TS3500-MIBv2 -IR -On ibm3584MIBObjectsTD
**.1.3.6.1.4.1.2.6.182.1.2.71.1**
Вся ловушка (из /var/log/messages) выглядит так:
2013-08-27 15:49:37 10.10.100.5(via UDP: [10.10.100.5]:1795->[10.10.100.135]) TRAP,
SNMP v1, community public#012#011SNMPv2-SMI::enterprises.4484.1 Enterprise Specific
Trap (408) Uptime: 1:00:10.45#012#011SNMPv2-SMI::enterprises.2.6.182.1.2.11.1 =
STRING: "3584 L32 7814014"#011SNMPv2-SMI::enterprises.2.6.182.1.2.111.1 = STRING: "
0"#011SNMPv2-SMI::enterprises.2.6.182.1.2.101.1 = ""#011SNMPv2
SMI::enterprises.2.6.182.1.2.41.1 = STRING: "08"#011SNMPv2
SMI::enterprises.2.6.182.1.2.71.1 = STRING: "This is a test SNMP trap."#011SNMPv2
SMI::enterprises.2.6.182.1.2.151.1 = INTEGER: 1#011SNMPv2
SMI::enterprises.2.6.182.1.2.161.1 = STRING: "00000"
Мой вопрос: есть ли какое-либо программное обеспечение (Linux, не GUI), которое может обрабатывать ловушки, полученные в этом формате и в зависимости от серьезности (которое является одним значением в ловушке SNMP), отправлять электронную почту, используя информацию, предоставленную в ловушке? Я пробовал Cacti, но я не смог найти какие-либо варианты уведомлений (кроме старого плагина без документации), и хотя мне удалось cacti говорить с моим устройством (считывая его имя / местоположение и т. Д.), Он бесполезен. AFAIK Nagios имеет плагин для библиотек TS3200/3300, но я не могу использовать Nagios.
Так что я думаю, если мне нужно написать свой собственный анализатор / var / log / messages для snmp traps и искать информацию или есть какое-то решение, которое я могу использовать?
3 ответа
Вы можете настроить snmptrapd
обрабатывать ловушки скриптом; это traphandle
директивы.
Я считаю, что файл конфигурации /etc/snmp/snmptrapd.conf
,
Например, вы можете использовать:
traphandle IBM-TS3500-MIBv1::ibm3584MIBObjectsTD.0 /usr/local/bin/myscript.pl
Или, чтобы разобрать все, вы можете использовать:
traphandle default /usr/local/bin/myscript.pl
Содержимое ловушки передается сценарию в STDIN
поэтому ваш сценарий нужно будет читать оттуда.
Вы не упоминаете предпочитаемый язык для написания сценариев, поэтому я не буду вдаваться в подробности; однако для Perl существует следующая библиотека: SNMP:: Trapinfo
Вы могли бы сделать что-то вроде этого:
use strict;
use SNMP::Trapinfo;
my $trap = SNMP::Trapinfo->new(*STDIN, {hide_passwords => 1});
# parse trap here
my $subject = "Got trap from $trap->hostname";
open EMAIL, "|-", "/usr/bin/Mail", "-s", $subject, "me@mydomain.com";
print EMAIL "My Email Body for SNMP Trap";
close EMAIL;
Кроме того, не похоже, что ваши ловушки полностью переводятся в /var/log/messages
, Я не могу вспомнить, какие переменные вам нужно установить для перевода ловушек с помощью пользовательских MIB, но вы должны быть в состоянии отбросить ваши MIB в /usr/local/share/snmp/mibs (создавая этот каталог, если он не существует).
Я использую snmptrapd для получения прерываний (служба прослушивает порт 162/udp) и для дальнейшей обработки snmptt (см. Http://snmptt.sourceforge.net/docs/snmptt.shtml).
Обновление 2: http://www.net-snmp.org/docs/man/snmptrapd.html Ищите больше.
Обновление: net-snmp trap-приемник snmptrapd.
http://net-snmp.sourceforge.net/tutorial/tutorial-5/demon/
Вам нужна полная система мониторинга, которая может обрабатывать ловушки? Если это так, попробуйте Opennms. Это самый зрелый продукт для мониторинга с открытым исходным кодом.