GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

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 enviar más de un millón de mensajes por segundo a destinos locales cuando se aplica un procesamiento limitado.

En este tutorial aprendemos a instalar y configurar rsyslog en Ubuntu 20.04 .

Características de Rsyslog

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

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

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 funciones y beneficios para obtener 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.

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 una especie de 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 un lugar rsyslog, pasemos al proceso de configuración en sí.

Requisitos

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

El sistema Ubuntu 20.04 tiene rsyslog instalado por defecto que venía con paquetes de sistema estándar.

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

Salida:

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 a rsyslog.conf archivo, para 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: Agregar plantilla justo antes de DIRECTIVAS GLOBALES sección:

$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.

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 realizada esta configuración del servidor rsyslog, el siguiente paso es configurar su máquina cliente rsyslog para enviar registros al control remoto servidor rsyslog.

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á algo como esto:

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:

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-:[email protected].
2021-03-25T11:32:31+00:00 obrad systemd[1206]: dbus-:[email protected]: 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.




Ubuntu
  1. Cómo configurar el servidor Rsyslog en Ubuntu 18.04 LTS

  2. Cómo configurar el servidor Rsyslog en Debian 11

  3. Cómo configurar el servidor de registro centralizado usando Rsyslog

  4. Cómo configurar el servidor NTP en Ubuntu y LinuxMint

  5. Configurar el servidor Rsyslog en Ubuntu 20.04 - ¿Cómo hacerlo?

Cómo configurar OpenVPN en Ubuntu Server

Cómo configurar el servidor Git en Ubuntu 20.04

Cómo configurar el servidor Rsyslog en Ubuntu

Cómo configurar una VPN en Ubuntu

Cómo configurar el servidor DHCP en Ubuntu

Cómo configurar Rsyslog en Ubuntu 20.04 LTS