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