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:

Configuración del syslog-ng como Servidor

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

Configuración del syslog-ng como transmisor

Ahora accedemos a cada servidor a configurar el syslog-ng como cliente en cada uno de los servidores

Servidor DNS

$ 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

Servidor MAIL

$ 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

Servidor PROXY

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

¿De cuánta utilidad te ha parecido este contenido?

Erki Polo Manresa

View Comments

Share
Published by
Erki Polo Manresa

Recent Posts

SquidStat, analizador de logs de squid diferente y 100% cubano

Me complace anunciar la creación de esta útil herramienta (SquidStats), para el análisis y monitoreo…

4 días ago

n8n Transformando la Automatización de Flujos de Trabajo con Inteligencia Artificial

La inteligencia artificial está revolucionando las industrias al automatizar tareas, predecir patrones y permitiendo tomar…

2 semanas ago

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

2 años ago

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

2 años ago

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

2 años ago