Esta pagina se ve mejor con JavaScript habilitado

Configuración syslog-ng

 ·  🎃 kr0m

Si te dedicas al mundillo del SysAdmin tarde o temprano llega el momento en el que hay que enfrentarse con los logs del sistema, en este artículo explicaré como configurar el demonio Syslog-ng, seguramente os suene ya que en la guía de instalación de Gentoo se indica como instalarlo, lo primero que debemos tener en cuenta es que hay facilities y loglevels, se podría decir que son categorias y subcategorias.

Facilities: local0, local1, local2, local3, local4, local5, local6, local7, cron, daemon, kern, mail, auth, authpriv, ftp, lpr, mark, news, ntp, user, uucp
Log levels: emerg, alert, crit, err, warning, notice, info, debug

En este ejemplo vamos a configurar los logs de ssh, para ello generamos el fichero de logs:

touch /var/log/ssh.log

Haremos que ssh haga logging con local1 e INFO:

vi /etc/ssh/sshd_config

SyslogFacility LOCAL1
LogLevel INFO

En syslog primero definimos el destino:

vi /etc/syslog-ng/syslog-ng.conf

destination ssh { file("/var/log/ssh.log"); };

Configuramos un filtro:

filter f_ssh { facility(local1) and level(info); };

Asocio el filtro con el destino:

log { source(src); filter(f_ssh); destination(ssh); };

Todo lo que coincide con el filtro acaba en el fichero apropiado ;)

Podriamos crear filtros mas avanzados como estos:

filter f_authpriv { facility(auth, authpriv); };
filter f_syslog { not facility(authpriv, mail); };
filter f_mail { facility(mail); };
filter f_debug { not facility(auth, authpriv, news, mail); };
filter f_ssh { facility(local1) and level(info); };
filter f_resto { not facility(local1, auth, authpriv, news, mail,); };

Este es un ejemplo básico de configuración pero pienso que queda lo suficientemente claro como para que sea un punto de partida para configuraciones mas complejas, habrá que tener en cuenta que las facilities y loglevels se configuran de forma distinta para cada daemon.

Si te ha gustado el artículo puedes invitarme a un RedBull aquí