Registro de traps SNMP en rsyslog en Debian 6
Una receta ultra simplificada de cómo registrar traps SNMP en rsyslog. Concretamente he usado Debian 6 pero no debe cambiar mucho en otras versiones.
Primero debemos instalar el paquete snmpd en Debian, deshabilitar el demonio del servidor snmpd y habilitar el de snmptrapd modificando el fichero /etc/default/snmpd de esta forma:
Para probar a enviar traps y ver si funciona, he usado este código que he encontrado en The Linux Documentation Project:
SNMPDRUN=no TRAPDRUN=yesEn el fichero /etc/snmp/snmptrapd.conf debemos configurar la comunidad de la que recibiremos los traps, por ejemplo: authCommunity log public Reiniciamos el servicio snmpd con service snmpd restart y debemos tener el proceso snmptrapd en ejecución y el puerto UDP 162 a la escucha. Para que rsyslog filtre el mensaje que snmptrapd generará en el log del sistema podemos poner una regla como la siguiente en /etc/rsyslog.conf:
if ($programname == 'snmptrapd') then /var/log/snmptrapd.log & ~La cadena "& ~" sirve para que al aplicarse la regla de filtrado del if el mensaje se guarde en el fichero indicado y no se apliquen más reglas que dupliquen el mensaje en otros ficheros de log.
Para probar a enviar traps y ver si funciona, he usado este código que he encontrado en The Linux Documentation Project:
use strict;
use vars qw($session $error $response);
use Net::SNMP;
($session, $error) = Net::SNMP->session(
-hostname => shift || '192.168.1.12',
-community => shift || 'public',
-port => shift || 162
);
if (!defined($session)) {
printf("ERROR: %s.\n", $error);
exit 1;
}
my $count = 0;
$response = 1;
while ( $response ) {
$response = $session->trap();
$count++;
sleep 5;
print "Sending trap ($count)\n";
}
$session->close();
exit 0;
Etiquetas: Administracion, Debian, Linux, SNMP




0 comentarios:
Publicar un comentario
Suscribirse a Enviar comentarios [Atom]
<< Inicio