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