Cómo configurar el servidor Rsyslog en Debian 11 (Bullseye)

Los archivos de registro son cruciales para sondear y solucionar errores. Son los primeros archivos que los administradores de sistemas examinan para determinar la causa probable de un error y, al hacerlo, encontrar soluciones para resolver el problema. En una infraestructura con decenas o cientos de servidores y otros dispositivos, administrar archivos de registro puede ser un desafío. Y aquí es donde entra en juego rsyslog.

Rsyslog es un programa de registro de código abierto que facilita el reenvío de archivos de registro a un servidor de registro centralizado en una red IP. Con el registro centralizado, los administradores pueden controlar fácilmente los archivos de registro de múltiples sistemas desde un punto central. En esta publicación, lo guiaremos a través de la instalación y configuración de Rsyslog Server en Debian 11.

Configuración de laboratorio

Para demostrar cómo se puede usar Rsyslog para enviar archivos de registro desde un sistema cliente al servidor Rsyslog, vamos a tener una configuración de laboratorio simple como se muestra

  • Servidor Rsyslog: Debian 11 IP: 192.168.1.151
  • Cliente Rsyslog: Ubuntu 20.04 IP: 10.20.0.170

Paso 1) Configurar Rsyslog en el servidor

Como se mencionó anteriormente, Rsyslog funciona en un modelo cliente-servidor y comenzaremos configurando Rsyslog en el servidor Debian 11. En Debian 11, Rsyslog viene instalado de forma predeterminada. Si por alguna razón Rsyslog no está presente, puede instalarlo usando el comando:

$ sudo apt install -y rsyslog

Después de la instalación, puede verificar su estado de ejecución de la siguiente manera:

$ sudo systemctl status rsyslog

rsyslog-servicio-estado-debian11

A continuación, configuraremos rsyslog para que se ejecute en modo servidor. El archivo de configuración es el archivo /etc/rsyslog.conf. Entonces, edítelo usando su editor de texto preferido.

$ sudo vi /etc/rsyslog.conf

Continúe y descomente las siguientes líneas que permiten la recepción de syslog UDP y TCP desde 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")

rsyslog-tcp-udp-recepción-debian11

A partir de entonces, pegue las siguientes líneas para definir la plantilla que utilizará el demonio Rsyslog para almacenar los registros entrantes de los sistemas cliente.

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?remote-incoming-logs

plantilla-rsyslog-parámetro-debian11

Los archivos de registro utilizarán la siguiente convención de nomenclatura:

  • /%HOSTNAME%/: este es el nombre de host del sistema cliente.
  • /%PROGRAMNAME%/: identifica el programa cliente que creó el archivo de registro.

Para aplicar los cambios, reinicie el demonio rsyslog.

$ sudo systemctl restart rsyslog

De manera predeterminada, rsyslog escucha el puerto 514. Puede confirmar que este es el puerto que escucha el demonio rsyslog ejecutando el comando ss.

$ sudo ss -tunlp | grep 514

ss-comando-rsyslog-conexión-debian11

Paso 2) Configurar reglas de firewall para rsyslog

El demonio Rsyslog se está ejecutando en el servidor como se esperaba. Si está ejecutando un firewall UFW, asegúrese de habilitar el puerto 514 para permitir la entrada de mensajes de registro entrantes.

$ sudo ufw allow 514/tcp
$ sudo ufw allow 514/udp

Luego, vuelva a cargar el firewall para aplicar la regla de firewall de la siguiente manera.

$ sudo ufw reload

El siguiente paso será configurar el sistema cliente Ubuntu para enviar archivos de registro al servidor rsyslog.

Paso 3) Configurar el sistema cliente rsyslog

El paso final es configurar el sistema cliente para enviar archivos de registro al servidor rsyslog. Inicie sesión en el cliente y, una vez más, asegúrese de que el demonio rsyslog esté instalado y en ejecución.

A continuación, edite el archivo de configuración de rsyslog.

$ sudo vi /etc/rsyslog.conf

Navegue hasta el final del archivo y agregue estas líneas.

#Enable sending system logs over UDP to rsyslog server
*.* @rsyslog-ip-address:514

#Enable sending system logs over TCP to rsyslog server
*.* @@rsyslog-ip-address:514

Estas líneas indican al cliente que envíe los archivos de registro a través de los protocolos UDP y TCP al servidor rsyslog. Tenga en cuenta que la primera línea tiene un solo símbolo @ que significa UDP y la segunda línea tiene dos símbolos @@ para significar el protocolo TCP.

Si el servidor remoto experimenta algún tiempo de inactividad y desea conservar sus registros, puede configurar el búfer de la cola del disco agregando las líneas que se muestran.

##Establecer cola de disco cuando el servidor rsyslog esté inactivo:

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

A continuación se muestra un resumen de todas las modificaciones a la configuración del cliente.

Cliente-Rsyslog-Servidor-Ubuntu-20-04

Guardar y salir del archivo. Ahora reinicie el servicio rsyslog para que los cambios surtan efecto.

$ sudo systemctl restart rsyslog

En este punto, el sistema cliente debería enviar los archivos de registro al servidor rsyslog. Volvamos al servidor y averigüémoslo.

Paso 4) Ver los archivos de registro del Cliente

Todos los archivos de registro (incluidos los servidores) se almacenan en el directorio /var/log/. Para ver los registros del cliente, ejecute el siguiente comando:

$ ls /var/log/

Los archivos de registro del cliente se guardarán en un directorio que corresponde al nombre de host del sistema cliente, como se muestra a continuación.

Cliente remoto-Rsyslog-Debian11

Puede ver más los archivos de registro contenidos en el directorio de registro principal.

$ sudo ls -l /var/log/ubuntu-20-04/

Rsyslog-Remote-Client-log-files-Debian11

Para ver registros en tiempo real, use el comando tail como se muestra. Aquí, estamos viendo los registros del usuario sudo.

$ sudo tail -f /var/log/ubuntu-20-04/sudo.log

Real-Time-Remote-Client-sudo-logs-with-rsyslog

Hemos instalado correctamente rsyslog y lo hemos configurado para permitir el envío de archivos de registro al servidor rsyslog desde el sistema cliente. Ahora puede configurar tantos sistemas cliente como desee para enviar registros al servidor rsyslog para lograr una estructura de administración de registros centralizada.

Eso es todo de este post, espero que lo hayas encontrado informativo. Comparta sus consultas y comentarios en la sección de comentarios a continuación.

Leer también : Cómo rotar y comprimir archivos de registro en Linux con Logrotate

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *