syslog-ng es la solución de gestión de registros que mejora el rendimiento de su solución sistema de Gestión de Eventos e Información de Seguridad (SIEM) al reducir la cantidad y mejorar la calidad de los datos que alimentan su SIEM.
Hoy les muestro como desplegar un servidor syslog-ng sobre una arquitectura de contenedores
Partiendo de la infraestructura siguiente:
Nos conectamos al servidor que hospedara el syslog-ng
$ ssh -l root -p 22 192.168.0.27
Instalamos syslog-ng
root@syslog-ng:~# apt -yq install gpm syslog-ng
Accedemos al archivo de configuración principal
root@syslog-ng:~# vim /etc/syslog-ng/syslog-ng.conf
y añadimos en las opciones generales las opciones siguientes:
keep_hostname(yes); chain_hostnames(on); create_dirs(yes);
Quedando de la siguiente manera:
options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no); dns_cache(no); owner("root"); group("adm"); perm(0640); stats_freq(0); bad_hostname("^gconfd$"); keep_hostname(yes);chain_hostnames(on);create_dirs(yes); };
Cree un archivo para configurar la recepción de los servicios:
root@syslogng:~# vim /etc/syslog-ng/conf.d/services_logs.conf
Dentro de dicho archivo configure los servicios de la forma siguiente:
source net_squid { tcp(ip(0.0.0.0) port(1020)); }; destination log_squid { file("/var/log/$HOST/squid/access.log"); }; log { source(net_squid); destination(log_squid); }; source net_mail { tcp(ip(0.0.0.0) port(1021)); }; destination log_mail { file("/var/log/$HOST/mail.log"); }; log { source(net_mail); destination(log_mail); }; source net_dns { tcp(ip(0.0.0.0) port(1022)); }; destination log_dns { file("/var/log/$HOST/named.log"); }; log { source(net_dns); destination(log_dns); };
Y listo, se reinicia el servicio
root@syslogng:~# systemctl restart syslog-ng
Ahora accedemos a cada servidor a configurar el syslog-ng como cliente en cada uno de los servidores
$ ssh -l root -p 22 192.168.0.20
Instalamos syslog-ng
root@dns:~# apt -yq install gpm syslog-ng
Creamos un archivo para configurar el envio de los logs del servicio
root@dns:~# vim /etc/syslog-ng/conf.d/dns.conf
dentro le ponemos lo siguiente
source src_dns { file("/var/log/named/named.log"); }; destination dst_dns { tcp("192.168.0.27" port(1022)); }; log { source(src_dns); destination(dst_dns); };
reiniciamos el servicio
root@dns:~# systemctl restart syslog-ng
En el servidor de syslog-ng, veremos los logs reenviados en:
root@syslog-ng:~# tail -f /var/log/DNS/named.log
$ ssh -l root -p 22 192.168.0.22
Instalamos syslog-ng
root@mail:~# apt -yq install gpm syslog-ng
Creamos un archivo para configurar el envio de los logs del servicio
root@mail:~# vim /etc/syslog-ng/conf.d/mail.conf
dentro le ponemos lo siguiente
source src_mail { file("/var/log/mail.log"); }; destination dst_mail { tcp("192.168.0.27" port(1021)); }; log { source(src_mail); destination(dst_mail); };
reiniciamos el servicio
root@mail:~# systemctl restart syslog-ng
En el servidor de syslog-ng, veremos los logs reenviados en:
root@syslog-ng:~# tail -f /var/log/MAIL/mail.log
$ ssh -l root -p 22 192.168.0.24
Instalamos syslog-ng
root@proxy:~# apt -yq install gpm syslog-ng
Creamos un archivo para configurar el envio de los logs del servicio
root@proxy:~# vim /etc/syslog-ng/conf.d/proxy.conf
dentro le ponemos lo siguiente
source src_squid { file("/var/log/squid/access.log" multi-line-mode(indented)); }; destination dst_squid { tcp("172.30.0.27" port(1020)); }; log { source(src_squid); destination(dst_squid); flags(final);};
reiniciamos el servicio
root@proxy:~# systemctl restart syslog-ng
En el servidor de syslog-ng, veremos los logs reenviados en:
root@syslog-ng:~# tail -f /var/log/PROXY/squid/access.log
Y esto es todo.
Ya de esta forma tendran un servidor centralizado de los logs de los servicios.
Me complace anunciar la creación de esta útil herramienta (SquidStats), para el análisis y monitoreo…
La inteligencia artificial está revolucionando las industrias al automatizar tareas, predecir patrones y permitiendo tomar…
Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…
Percona Monitoring and Management (PMM) es una herramienta de código abierto para la supervisión y…
Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…
Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…
View Comments
muy buen post; ya llevo tiempo usando esta herramienta; sería bueno extenderlo con una entrada para los logs estándar de los servidores (messages, syslog, user, auth, btmp, etc) y crear desde el mismo syslog-ng algún tipo de script que compactara los logs cada cierto tiempo. Sld2
En este sitio hay una solución como la que comentas, date una vuelta por aquí: https://www.sysadminsdecuba.com/2018/05/como-configurar-un-server-de-logs-en-linux-y-configurar-tus-clientes-correctamente/