Cómo configurar el servidor Rsyslog en Debian 11
Rsyslog es un software de registro gratuito y de código abierto que reenvía todos los archivos de registro al servidor de registro centralizado a través de la red IP. Ayuda a los administradores de sistemas a vigilar todos los servidores desde un punto central. Rsyslog funciona en un modelo cliente/servidor, recibe los registros del cliente remoto en el puerto 514 a través del protocolo TCP/UDP.
En este post, te mostraremos cómo configurar el servidor Rsyslog en Debian 11.
Requisitos previos
- Dos servidores con Debian 11.
- Una contraseña de root configurada en el servidor.
Instalar Rsyslog
En primer lugar, tendrás que instalar el paquete del servidor Rsyslog en la máquina del servidor. Puedes instalarlo con el siguiente comando:
apt-get install rsyslog -y
Tras la instalación, verifica el estado de Rsyslog mediante el siguiente comando:
systemctl status rsyslog
Deberías ver la siguiente salida:
? rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-10-03 13:35:32 UTC; 1h 44min ago TriggeredBy: ? syslog.socket Docs: man:rsyslogd(8) man:rsyslog.conf(5) https://www.rsyslog.com/doc/ Main PID: 283 (rsyslogd) Tasks: 4 (limit: 2341) Memory: 5.0M CPU: 90ms CGroup: /system.slice/rsyslog.service ??283 /usr/sbin/rsyslogd -n -iNONE Oct 03 13:35:32 debian11 systemd[1]: Starting System Logging Service... Oct 03 13:35:32 debian11 rsyslogd[283]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.2102.0] Oct 03 13:35:32 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] start Oct 03 13:35:32 debian11 systemd[1]: Started System Logging Service. Oct 03 13:35:34 debian11 systemd[1]: rsyslog.service: Sent signal SIGHUP to main process 283 (rsyslogd) on client request. Oct 03 13:45:33 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] rsyslog>
Configurar Rsyslog
A continuación, tendrás que configurar Rsyslog para que se ejecute en modo servidor. Puedes hacerlo editando el archivo de configuración principal de Rsyslog:
nano /etc/rsyslog.conf
Descomenta las siguientes líneas:
# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
A continuación, añade las siguientes líneas para definir la plantilla para almacenar el registro entrante de los sistemas cliente:
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Guarda y cierra el archivo y luego reinicia el servicio Rsyslog para aplicar los cambios:
systemctl restart rsyslog
En este punto, Rsyslog se inicia y escucha en el puerto 514. Puedes comprobarlo con el siguiente comando:
ss -tunlp | grep 514
Deberías ver la siguiente salida:
udp UNCONN 0 0 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=26276,fd=6)) udp UNCONN 0 0 [::]:514 [::]:* users:(("rsyslogd",pid=26276,fd=7)) tcp LISTEN 0 25 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=26276,fd=8)) tcp LISTEN 0 25 [::]:514 [::]:* users:(("rsyslogd",pid=26276,fd=9))
Configurar el cortafuegos para Rsyslog
A continuación, tendrás que permitir el puerto 514 a través del cortafuegos UFW. Puedes permitirlo con el siguiente comando:
ufw allow 514/tcp
ufw allow 514/udp
A continuación, recarga el cortafuegos para aplicar los cambios:
ufw reload
Configurar el cliente Rsyslog
A continuación, tendrás que configurar el cliente Rsyslog para que envíe los archivos de registro al servidor Rsyslog. Puedes hacerlo editando el archivo de configuración principal de Rsyslog.
nano /etc/rsyslog.conf
Añade las siguientes líneas al final del archivo:
#Enable sending system logs over UDP to rsyslog server *.* @rsyslog-server-ip:514 #Enable sending system logs over TCP to rsyslog server *.* @@rsyslog-server-ip:514
Además, añade las siguientes líneas para establecer la cola de disco cuando el servidor rsyslog esté inactivo:
$ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Guarda y cierra el archivo y luego reinicia el servicio Rsyslog para aplicar los cambios:
systemctl restart rsyslog
Verificar el archivo de registro del cliente
Todos los archivos de registro del cliente se almacenan en el directorio /var/log de la máquina del servidor.
Puedes comprobarlo con el siguiente comando:
ls -l /var/log/
Deberías ver el archivo de registro del cliente que corresponde al nombre de host del sistema cliente:
alternatives.log auth.log.2.gz daemon.log debian11 dpkg.log kern.log.1 messages.1 private syslog.3.gz clientpc auth.log.3.gz daemon.log.1 debug dpkg.log.1 kern.log.2.gz messages.2.gz runit syslog.4.gz apt btmp daemon.log.3.gz debug.2.gz icinga2 kern.log.4.gz messages.4.gz syslog auth.log.1 csm.log dbconfig-common debug.4.gz kern.log messages ntpstats syslog.2.gz
Como puedes ver, clientpc es el directorio de registro del sistema del cliente.
Conclusión
En la guía anterior hemos explicado cómo configurar el servidor y el cliente de Rsyslog en Debian 11. Ahora puedes supervisar tus clientes desde la ubicación central. No dudes en preguntarme si tienes alguna duda.