Rsyslog es un programa de registro de código abierto que utiliza la red IP para enviar todos los archivos de registro a un servidor de registro centralizado. Es una versión mejorada de Syslog en Linux. Permite a los administradores del sistema monitorear todos los servidores desde una sola ubicación.
Rsyslog funciona en un modelo cliente/servidor que recibe registros de clientes remotos en el puerto 514 o cualquier puerto personalizado configurado sobre el protocolo TCP/UDP. También admite bases de datos ( MySQL, PostgreSQL ) que se utilizan para almacenar registros.
En esta guía, aprenderemos cómo instalar y configurar Rsyslog en Debian 10/11
Paso 1:Instalar el servidor Rsyslog
Para comenzar, instale el paquete Rsyslog del Repositorio Debian en su máquina servidor. Ejecutar:
$ sudo apt-get install rsyslog -y
Una vez que se complete la instalación, verifique que Rsyslog se esté ejecutando correctamente como se muestra:
$ sudo systemctl status rsyslog
El servicio Rsyslog ahora está funcionando en su máquina servidor.
Paso 2:configurar el servidor Rsyslog
Ahora que se está ejecutando, configure Rsyslog para que se ejecute como un servidor en su sistema Debian. Abra el archivo de configuración que es /etc/rsyslog.conf .
$ sudo vim /etc/rsyslog.conf
Localice las líneas a continuación y elimínelas para la recepción de registros UDP y TCP de clientes remotos.
# 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, debemos especificar la plantilla que utilizará el demonio Rsyslog para almacenar los registros entrantes de los sistemas cliente. Agregue las siguientes líneas al final de su archivo de configuración.
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Reinicie rsyslog para que los cambios surtan efecto.
$ sudo systemctl restart rsyslog
Rsyslog escucha en el puerto 514. Puede modificar el puerto predeterminado en el archivo de configuración. Para verificar que el demonio rsyslog está escuchando en el puerto 514, ejecute el siguiente comando ss.
$ sudo ss -tunlp | grep 514
Paso 3:configurar el cortafuegos para rsyslog
El demonio rsyslog ahora está configurado en el servidor. Si está detrás del firewall UFW, permita el puerto 514 para que el servidor pueda recibir mensajes de registro de los clientes. Ejecute los comandos:
$ sudo ufw allow 514/tcp $ sudo ufw allow 514/udp
Reinicie el firewall para que se apliquen las nuevas reglas. Ejecutar:
$ sudo ufw reload
Paso 4:configurar el cliente Rsyslog
A continuación, configure el cliente Rsyslog para enviar mensajes de registro al servidor Rsyslog. Asegúrese de que RSyslog esté correctamente instalado en su máquina cliente.
Primero, abra el archivo de configuración
$ sudo nano /etc/rsyslog.conf
Copie y pegue 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
La configuración anterior indica al cliente que envíe archivos de registro al servidor rsyslog utilizando los protocolos TCP y UDP. Reemplace rsyslog-server-ip con la dirección IP de su servidor.
Si el servidor remoto deja de funcionar y necesita mantener sus registros, puede configurar el búfer de la cola del disco agregando las siguientes líneas al archivo de configuración del cliente.
##Set disk queue when rsyslog server will be down: $ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Guarde y cierre el archivo. Vuelva a cargar el servicio rsyslog para que se apliquen los cambios.
$ sudo systemctl restart rsyslog
Paso 5:Ver los archivos de registro de los clientes
Los archivos de registro de Rsyslog se guardan en /var/log/ carpeta en su servidor. Para ver los registros del cliente, use el siguiente comando ls:
$ ls /var/log/
De forma predeterminada, los archivos de registro del cliente se almacenan en una carpeta con el nombre del host del sistema cliente. En mi caso, el sistema cliente tiene el nombre de host debian.
A continuación, ejecute el siguiente comando para ver los registros contenidos en el directorio del cliente.
$ sudo ls -l /var/log/debian/
También puede ver los registros en tiempo real en su terminal. Veamos los registros del usuario raíz. Ejecute el comando:
$ sudo tail -f /var/log/debian/sudo.log
Conclusión
El servidor rsyslog ahora está configurado en Debian 11. Ahora puede configurar varios clientes para enviar mensajes de registro al servidor centralizado.