Enviando e-mail quando o SNMP Trap é recebido

1

Eu tenho que configurar o receptor de traps SNMP para manipular traps de um determinado dispositivo (neste caso, é uma biblioteca de fitas IBM TS3584) e enviá-los (como e-mail) com as informações sobre o erro. Meu servidor está rodando o CentOS 6.4 linux, com o pacote net-snmp.

Eu me conectei à biblioteca e posso receber sua armadilha de teste. Além disso, baixei os MIBs para este dispositivo (daqui: link ), e verifiquei que posso obter os valores (ou OID) de um evento específico:

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**

A armadilha inteira (de / var / log / messages) se parece com isto:

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"

Minha pergunta é: existe algum software (linux, não gui) que possa manipular as armadilhas recebidas neste formato e baseando-se na severidade (que é um valor na armadilha SNMP) envie um e-mail usando as informações fornecidas em uma armadilha? Eu tentei Cacti, mas não consegui encontrar nenhuma opção de notificação (exceto um plugin antigo sem documentação), e embora eu tenha conseguido falar com o meu dispositivo (lendo seu nome / localização, etc.) seu inútil é inútil. AFAIK O Nagios tem o plugin para as bibliotecas TS3200 / 3300, mas não consigo usar o Nagios.

Então eu estou pensando se tenho que escrever meu próprio analisador seguindo / var / log / messages para snmp traps e procurar pelas informações ou existe alguma solução que eu possa usar?

    
por Ziwi 27.08.2013 / 16:19

3 respostas

1

Você pode configurar snmptrapd para lidar com traps com um script; esta é a diretiva traphandle .

Eu acredito que o arquivo de configuração é /etc/snmp/snmptrapd.conf .

Por exemplo, você pode usar:

traphandle IBM-TS3500-MIBv1::ibm3584MIBObjectsTD.0 /usr/local/bin/myscript.pl

Ou, para analisar tudo, você pode usar:

traphandle default /usr/local/bin/myscript.pl

O conteúdo do trap é passado para o script em STDIN , então o script precisará ler a partir daí.

Você não menciona seu idioma preferido para criar scripts, então não vou entrar em muitos detalhes; entretanto, a seguinte biblioteca existe para o Perl: SNMP :: Trapinfo

Você poderia fazer algo assim:

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, "[email protected]";
print EMAIL "My Email Body for SNMP Trap";
close EMAIL;

Além disso, não parece que suas armadilhas estejam sendo totalmente traduzidas em /var/log/messages . Não consigo me lembrar de quais variáveis você precisa definir para traduzir as interceptações com MIBs personalizados, mas você deve poder soltar seus MIBs em / usr / local / share / snmp / mibs (criando esse diretório se ele não existir).

    
por 02.11.2015 / 15:13
0

Update2: link Procure por mais.

Atualização: snmptrapd do receptor de armadilha net-snmp.

link

Você quer um sistema de monitoramento completo que possa lidar com armadilhas? Se sim, tente o Opennms. É o mais maduro dos produtos de monitoramento de código aberto.

    
por 27.08.2013 / 16:29
0

Estou usando snmptrapd para receber traps (o serviço está escutando na porta 162 / udp) e para processamento adicional snmptt (consulte link ).

    
por 02.10.2015 / 08:39