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.

Scroll al inicio