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.