Cómo configurar el servidor Rsyslog en Ubuntu 18.04 LTS

Cómo configurar el servidor Rsyslog en Ubuntu 18.04 LTS

Los registros son muy útiles para analizar y solucionar cualquier problema relacionado con el sistema y las aplicaciones en Linux. De forma predeterminada, todos los archivos de registro se encuentran dentro del directorio /var/log en los sistemas operativos basados ​​en Linux. Hay varios tipos de archivos de registro, incluidos cron, kernel, usuarios, seguridad y la mayoría de estos archivos están controlados por el servicio Rsyslog.

Rsyslog es un sistema potente y seguro para el procesamiento de registros. El servidor Rsyslog recibe registros a través de la red desde varios servidores físicos o virtualizados y supervisa el estado de los diferentes servicios. Con el servidor Rsyslog, puede monitorear los registros de otros servidores, dispositivos de red y aplicaciones remotas desde la ubicación centralizada.

Configurar un servidor syslog Linux con Rsyslog en Ubuntu 18.04 LTS es un proceso sencillo y en este tutorial explicaremos cómo hacerlo paso a paso. Además, mencionaremos algunas consideraciones para quienes busquen realizar la misma configuración en versiones más recientes, como rsyslog Ubuntu 20.04.

Requisitos previos

  • Dos servidores con Ubuntu 18.04 LTS o Ubuntu 20.04 LTS.
  • Una dirección IP estática 192.168.0.101 está configurada en la máquina servidor Rsyslog y 192.168.0.102 está configurada en la máquina cliente Rsyslog.
  • Se configura una contraseña de root en ambos servidores.

Instalar Rsyslog

De forma predeterminada, Rsyslog está instalado en el servidor Ubuntu 18.04 LTS. Si no está instalado, puede instalarlo ejecutando el siguiente comando:

apt-get install rsyslog -y

Después de instalar Rsyslog, puede verificar la versión de Rsyslog con el siguiente comando:

rsyslogd -v

Deberías obtener el siguiente resultado:

rsyslogd 8.32.0, compiled with:
	PLATFORM:				x86_64-pc-linux-gnu
	PLATFORM (lsb_release -d):		
	FEATURE_REGEXP:				Yes
	GSSAPI Kerberos 5 support:		Yes
	FEATURE_DEBUG (debug build, slow code):	No
	32bit Atomic operations supported:	Yes
	64bit Atomic operations supported:	Yes
	memory allocator:			system default
	Runtime Instrumentation (slow code):	No
	uuid support:				Yes
	systemd support:			Yes
	Number of Bits in RainerScript integers: 64

See http://www.rsyslog.com for more information.

También puede verificar el estado de Rsyslog con el siguiente comando:

systemctl status rsyslog

Debería ver el siguiente resultado:

? rsyslog.service - System Logging Service
   Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-10-22 04:28:55 UTC; 1min 31s ago
     Docs: man:rsyslogd(8)
           http://www.rsyslog.com/doc/
 Main PID: 724 (rsyslogd)
    Tasks: 4 (limit: 1114)
   CGroup: /system.slice/rsyslog.service
           ??724 /usr/sbin/rsyslogd -n

Oct 22 04:28:53 ubuntu1804 systemd[1]: Starting System Logging Service...
Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd.  [v8.32.0]
Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's groupid changed to 106
Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's userid changed to 102
Oct 22 04:28:54 ubuntu1804 rsyslogd[724]:  [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start
Oct 22 04:28:55 ubuntu1804 systemd[1]: Started System Logging Service.

Configurar servidor Rsyslog

Rsyslog ahora está instalado y funcionando. A continuación, deberá configurarlo para que se ejecute en modo servidor. Puede hacerlo editando el archivo /etc/rsyslog.conf.

nano /etc/rsyslog.conf

Primero, deberá definir el protocolo, ya sea UDP, TCP o ambos.

Para usar conexiones UDP y TCP al mismo tiempo, busque y descomente las siguientes líneas:

$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514

Es importante considerar la gestión de rsyslog queue para garantizar la fiabilidad de la transmisión de registros. Para ello, puede configurar colas de disco en caso de que el servidor Rsyslog esté inaccesible.

A continuación, defina la subred, IP o dominio específico para limitar el acceso como se muestra a continuación:

$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com
$AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com

A continuación, deberá crear una plantilla para decirle al servidor Rsyslog cómo almacenar los mensajes de syslog entrantes. Agregue las siguientes líneas justo antes de la sección DIRECTIVAS GLOBALES:

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

Guarde y cierre el archivo cuando haya terminado. Luego, verifique la configuración de Rsyslog para ver si hay algún error de sintaxis con el siguiente comando:

rsyslogd -f /etc/rsyslog.conf -N1

Debería ver el siguiente resultado:

rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.

Finalmente, reinicie el servicio Rsyslog con el siguiente comando:

systemctl restart rsyslog

Ahora, verifique que Rsyslog esté escuchando en TCP/UDP con el siguiente comando:

netstat -4altunp | grep 514

Deberías obtener el siguiente resultado:

tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      1332/rsyslogd       
udp        0      0 0.0.0.0:514             0.0.0.0:*                           1332/rsyslogd       

Configurar cliente Rsyslog

El servidor Rsyslog está instalado y configurado para recibir registros de hosts remotos y actúa como un servidor syslog Linux centralizado.

Ahora, deberá configurar el cliente Rsyslog para enviar mensajes de syslog al servidor Rsyslog remoto.

Inicie sesión en la máquina del Cliente y abra el archivo de configuración de Rsyslog como se muestra a continuación:

nano /etc/rsyslog.conf

Para configurar el cliente rsyslog linux, agregue las siguientes líneas al final del archivo:

##Enable sending of logs over UDP add the following line:

*.* @192.168.0.101:514


##Enable sending of logs over TCP add the following line:

*.* @@192.168.0.101:514

##Set disk queue when rsyslog server will be down:

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

Las colas de disco son esenciales para la gestión de rsyslog queue y la confiabilidad de la transmisión de logs.

Guarde y cierre el archivo. Luego, reinicie el servidor Rsyslog para aplicar los cambios de configuración:

systemctl restart rsyslog

Ver registro de cliente

En este punto, el cliente Rsyslog está configurado para enviar su registro al servidor Rsyslog.

Ahora, inicie sesión en el servidor Rsyslog y verifique el directorio /var/log. Debería ver la entrada con el nombre de host de sus máquinas cliente, incluidos varios archivos de registro:

ls /var/log/rsyslog-client/

Producción:

CRON.log  kernel.log  rsyslogd-2039.log  rsyslogd.log  sudo.log  wpa_supplicant.log

Conclusión

En el artículo anterior, aprendimos cómo instalar y configurar el servidor Rsyslog en Ubuntu 18.04 LTS, con menciones a la versión rsyslog ubuntu 20.04 para aquellos interesados en sistemas más actualizados. También revisamos cómo configurar el cliente Rsyslog para enviar registros al servidor Rsyslog. Si tiene alguna pregunta sobre la configuración de rsyslog o cómo gestionar un servidor syslog Linux, no dude en preguntar.

Deja una respuesta

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