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.
En este tutorial, explicaremos cómo configurar el servidor Rsyslog en el servidor Ubuntu 18.04.
Requisitos
- Dos servidores con Ubuntu 18.04.
- Se configura una dirección IP estática 192.168.0.101 en la máquina servidor Rsyslog y 192.168.0.102 en la máquina cliente Rsyslog.
- Se configura una contraseña raíz en ambos servidores.
Instalar Rsyslog
De forma predeterminada, Rsyslog está instalado en el servidor Ubuntu 18.04. 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
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.
Ahora, deberá configurar el cliente Rsyslog para enviar mensajes 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
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
Guarde y cierre el archivo. Luego, reinicie el servidor Rsyslog para aplicar los cambios de configuración:
systemtcl 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/
Salida:
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 el servidor Ubuntu 18.04. También aprendimos cómo configurar el cliente Rsyslog para enviar registros al servidor Rsyslog. Siéntase libre de preguntarme si tiene alguna pregunta.