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. Por defecto, 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, incluyendo 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 los registros a través de la red desde varios servidores físicos o virtualizados y supervisa la salud de diferentes servicios. Con el servidor Rsyslog, puedes supervisar los registros de otros servidores, dispositivos de red y aplicaciones remotas desde una ubicación centralizada.

En este tutorial, explicaremos cómo configurar el servidor Rsyslog en el servidor Ubuntu 18.04.

Requisitos previos

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

Instalar Rsyslog

Por defecto, Rsyslog está instalado en el servidor de Ubuntu 18.04. Si no está instalado, puedes instalarlo ejecutando el siguiente comando:

apt-get install rsyslog -y

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

rsyslogd -v

Deberías obtener la siguiente salida:

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 puedes comprobar el estado de Rsyslog con 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 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 el servidor Rsyslog

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

nano /etc/rsyslog.conf

En primer lugar, tendrás que definir el protocolo, ya sea UDP o TCP, o ambos.

Para utilizar conexiones UDP y TCP al mismo tiempo, busca y descomenta las líneas siguientes:

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

A continuación, define la subred, la IP o el dominio específicos 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, tendrás que crear una plantilla para indicar al servidor Rsyslog cómo almacenar los mensajes syslog entrantes. Añade las siguientes líneas justo antes de la sección DIRECTIVAS GLOBALES:

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

Guarda y cierra el archivo cuando hayas terminado. A continuación, comprueba si la configuración de Rsyslog presenta algún error de sintaxis con el siguiente comando:

rsyslogd -f /etc/rsyslog.conf -N1

Deberías ver la siguiente salida:

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

Por último, reinicia el servicio Rsyslog con el siguiente comando:

systemctl restart rsyslog

Ahora, verifica que Rsyslog está escuchando en TCP/UDP con el siguiente comando:

netstat -4altunp | grep 514

Deberías obtener la siguiente salida:

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 el cliente Rsyslog

El servidor Rsyslog está instalado y configurado para recibir registros de hosts remotos.

Ahora, tendrás que configurar el cliente Rsyslog para que envíe mensajes syslog al servidor Rsyslog remoto.

Accede a la máquina cliente y abre el archivo de configuración de Rsyslog como se muestra a continuación:

nano /etc/rsyslog.conf

Añade 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

Guarda y cierra el archivo. A continuación, reinicia el servidor Rsyslog para aplicar los cambios de configuración:

systemtcl restart rsyslog

Ver el registro del cliente

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

Ahora, inicia sesión en el servidor Rsyslog y comprueba el directorio /var/log. Deberías ver la entrada con el nombre de host de tus máquinas cliente incluyendo varios archivos de registro:

ls /var/log/rsyslog-client/

Salida:

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

Conclusión

En el artículo anterior, hemos aprendido a instalar y configurar el servidor Rsyslog en el servidor Ubuntu 18.04. También hemos aprendido a configurar el cliente Rsyslog para que envíe los registros al servidor Rsyslog. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...