Cómo configurar el servidor de registro central usando Rsyslog en Ubuntu 20.04 | Ubuntu 20.10

Cómo configurar el servidor de registro central usando Rsyslog en Ubuntu 20.04 | Ubuntu 20.10

 

Rsyslog es una utilidad de código abierto para el procesamiento de registros. Permite el registro de datos de diferentes tipos de sistemas en un repositorio central. Rsyslog es un protocolo Syslog con más extensiones, características y beneficios.

¿Qué hace que rsyslog sea tan poderoso? Rsyslog puede entregar más de un millón de mensajes por segundo a destinos locales cuando se aplica un procesamiento limitado.

En este tutorial, aprendemos cómo instalar y configurar rsyslog en Ubuntu 20.04 .

Características de Rsyslog

Rsyslog llegó en 2004 y amplía el protocolo syslog con nuevas características:

  • Compatibilidad con el protocolo RELP
  • Soporte de operación con búfer
  • Escuchar conexiones TCP/UDP (con restricciones puerto, IP’s)
  • Soporte para cargar muchos módulos (por ejemplo, módulo para soportar el protocolo RELP)
  • Compatibilidad con el mensaje de descarte que contiene reglas especiales configuradas

En Rsyslog, los archivos de configuración siguen siendo los mismos que Syslog. Eso simplemente significa que puede copiar un archivo syslog.conf directamente en rsyslog.conf y funcionará.

¿Qué son los registros y syslog?

Antes de pasar al proceso de configuración en sí, veamos primero para qué se usan los registros. La información de registro realmente puede ayudarlo a ver qué sucedió exactamente en su sistema, o qué sucede exactamente debajo del capó.

Permítanme darles un ejemplo: si de repente su PC se frizzó o tal vez se bloqueó o incluso el tiempo de inactividad de su sistema y mucha más información útil que no puede ver de la manera habitual cuando aparece un mensaje de error.

Si sabe cómo usar los registros correctamente, pueden brindarle muchas características y beneficios para la información de diagnóstico sobre el sistema en sí.

De forma predeterminada, Linux usa el demonio syslog para registrar registros sobre cómo se ejecuta el sistema y luego colocar estos registros en un repositorio central en: /var/log donde podemos examinarlos e investigarlos.
En términos simples, Linux registra todo, desde los eventos del kernel hasta las acciones del usuario, lo que le permite ver casi cualquier acción realizada en su PC o servidores.

En el sistema de archivos de Linux, hay un directorio especial para almacenar registros llamado /var/log . Este directorio contiene todos los registros del propio sistema operativo, como: servicios o varias aplicaciones que se ejecutan en el sistema.

Veamos cómo se ven los directorios y las estructuras de los registros en Linux ubuntu 20.04 nuevo.

Cómo configurar el servidor de registro central usando Rsyslog en Ubuntu 20.04

Directorio donde se almacenan diferentes tipos de registros:

var/log/syslog : almacena todos los mensajes de inicio, mensajes de inicio de aplicaciones, etc. Prácticamente almacena todos los registros del sistema global.
/var/log/cron – Los trabajos Cron son básicamente tareas programadas y automatizadas creadas en el sistema, que se ejecutan de forma periódica y repetida. Puede ver lo que almacenaría este directorio de registros.
/var/log/kern.log: almacena los registros del núcleo. No importa qué registros sean. Registros de eventos, errores o registros de advertencia.
/var/log/auth.log – Registros de autenticación
/var/log.boot.log – Registros de arranque del sistema
/var/log/mysql.d – Registros de Mysql
/var/log/httpd – Directorio de registros de Apache
/var/log/maillog – Registros del servidor de correo

Configurar el servidor de registro centralizado Rsyslog en Ubuntu 20.04

Después de una breve descripción general, qué son los registros, Syslog y dónde tiene cabida rsyslog, pasemos al proceso de configuración en sí.

requisitos previos

  • Dos servidores que ejecutan Ubuntu 20.04
  • Una dirección IP estática: se necesita configurar el ejemplo 192.168.0.101 en la máquina servidor Rsyslog y 192.168.0.102 está configurado en la máquina cliente Rsyslog

El sistema Ubuntu 20.04 tiene rsyslog instalado de forma predeterminada , que venía con los paquetes estándar del sistema.

Puede comprobar si se está ejecutando:

$ sudo systemctl status rsyslog
● rsyslog.service - System Logging Service
     Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-22 21:16:34 UTC; 12h ago
TriggeredBy: ● syslog.socket
       Docs: man:rsyslogd(8)
             https://www.rsyslog.com/doc/
   Main PID: 566 (rsyslogd)
      Tasks: 4 (limit: 2281)
     Memory: 2.7M
     CGroup: /system.slice/rsyslog.service
             └─566 /usr/sbin/rsyslogd -n -iNONE

Ejecute el siguiente comando para verificar la versión de Rsyslog que está instalada actualmente:

$ rsyslogd -v

Producción:

rsyslogd  8.2001.0 (aka 2020.01) 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
         Config file:                            /etc/rsyslog.conf
         PID file:                               /run/rsyslogd.pid
         Number of Bits in RainerScript integers: 64

En caso de que no esté instalado o en ejecución, instale rsyslog usando los siguientes comandos:

$ sudo apt-get update
$ sudo apt-get install rsyslog

Ahora es el momento de ir al archivo rsyslog.conf , descomentar y cambiar algunas líneas para ejecutar el servicio rsyslog en modo servidor:

$ sudo nano /etc/rsyslog.conf

Quite el comentario de estas cuatro líneas que permiten la vinculación de puertos udp y tcp:

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

El siguiente paso que necesitaremos agregar es crear una nueva plantilla. Necesitamos crear una nueva plantilla para recibir mensajes remotos. Una plantilla dará instrucciones al servidor rsyslog sobre cómo almacenar los mensajes de syslog entrantes.

NOTA: Agregue la plantilla justo antes de la sección DIRECTIVAS GLOBALES :

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

La línea anterior indica que los registros recibidos se procesarán y almacenarán dentro del directorio /var/log/. Puede definir en el archivo /etc/rsyslog.conf dónde registrar los registros de rsyslog.

El nombre del archivo contiene las variables %HOSTNAME% y %PROGRAMNAME% que representan la máquina cliente y el nombre del programa cliente que produjo el mensaje de registro.

Cómo configurar el servidor de registro central usando Rsyslog en Ubuntu 20.04

Guarde esto y luego reinicie el servicio rsyslog:

$ sudo systemctl restart rsyslog

Confirme que el servicio rsyslog está escuchando en los puertos configurados:

$ ss -tunelp | grep 514
udp    UNCONN  0       0                    0.0.0.0:514           0.0.0.0:*      ino:33591 sk:1 <->                                                             
udp    UNCONN  0       0                       [::]:514              [::]:*      ino:33592 sk:4 v6only:1 <->                                                    
tcp    LISTEN  0       25                   0.0.0.0:514           0.0.0.0:*      ino:33595 sk:7 <->                                                             
tcp    LISTEN  0       25                      [::]:514              [::]:*      ino:33596 sk:9 v6only:1 <->      

Si tal vez tiene el servicio de firewall ufw, debe permitir las reglas de puerto de firewall rsyslog:

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

Para verificar la configuración , ejecute el siguiente comando:

sudo rsyslogd -N1 -f /etc/rsyslog.conf

Configurar Rsyslog en el cliente

Una vez que se realiza esta configuración del servidor rsyslog, el siguiente paso es configurar su máquina cliente rsyslog para enviar registros al servidor rsyslog remoto.

A medida que avanzamos con el archivo rsyslog.conf en un servidor remoto, lo mismo abrirá este archivo en el lado del cliente con su editor favorito y editará algunos cambios:

sudo nano /etc/rsyslog.conf

Y permitir la preservación de FQDN: Alternativamente, para que rsyslog envíe con el nombre de dominio completo (FQDN, como system1.example.com) en lugar de simplemente el nombre de host (system1), use la directiva:

$PreserveFQDN on

Agregue el servidor rsyslog remoto configurado al final.

 @192.168.0.101:514

O puede habilitar el envío de registros a través de UDP. Para TCP use @@ , en lugar de uno

*.* @@192.168.0.101:514

Para el final, agregue estas siguientes variables en caso de que el servidor rsyslog se caiga:

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

Luego reinicie el servicio rsyslog:

sudo systemctl restart rsyslog

Verificar los registros

Una vez completada la configuración en la máquina cliente, queremos verificar que todo salió bien.

Vaya a su servidor Rsyslog para verificar los registros de su máquina cliente:

$ ls /var/log/

Encontrarás algo como esto:

Cómo configurar el servidor de registro central usando Rsyslog en Ubuntu 20.04

En mi caso, el directorio llamado obrad es el nombre de mi máquina cliente que estoy usando actualmente. Entraremos a este directorio y veremos algo como esto:

Cómo configurar el servidor de registro central usando Rsyslog en Ubuntu 20.04

Debería ver todos los archivos de registro generados por Rsyslog.

Puede verificar cualquiera de estos registros con el siguiente comando: Por ejemplo, inspeccionemos systemd.log .

$ tail -f /var/log/obrad/systemd.log

Y verás algo como esto:

2021-03-25T11:31:59+00:00 obrad systemd[1206]: Started VTE child process 42166 launched by gnome-terminal-server process 3186.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Created slice dbus\x2d:1.2\x2dorg.gnome.gedit.slice.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Started dbus-:1.2-org.gnome.gedit@0.service.
2021-03-25T11:32:31+00:00 obrad systemd[1206]: dbus-:1.2-org.gnome.gedit@0.service: Succeeded.

Como puede ver, inicié la edición de texto de terminal y gedit en mi máquina cliente y Rsyslog generó y mostró esto en la salida.

Conclusión

En este tutorial, aprendimos cómo configurar los parámetros básicos para rsyslog utilizando el modelo cliente-servidor en Ubuntu 20.04. Syslog-ng, FluentD, Logstash, GreyLog2 y Logagent, Filebeat son las otras alternativas para Rsyslog.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.