GNU/Linux >> Tutoriales Linux >  >> Cent OS

Configuración de registro remoto mediante rsyslog en CentOS/RHEL

Registro remoto

La configuración estándar de administración de registros del sistema rota los archivos de registro cada semana y los retiene durante cuatro rotaciones. A menudo, es deseable mantener registros más largos que el valor predeterminado de cuatro semanas, especialmente cuando se establecen tendencias de rendimiento del sistema relacionadas con tareas, como los cierres financieros de fin de mes, que se ejecutan solo una vez al mes. Al enviar mensajes de registro a un host de registro remoto con almacenamiento masivo dedicado, los administradores pueden mantener grandes archivos de registros del sistema para sus sistemas sin cambiar la configuración de rotación de registros predeterminada, cuyo objetivo es evitar que los registros consuman demasiado almacenamiento en disco.

La recopilación central de mensajes de registro del sistema también puede ser muy útil para monitorear el estado de los sistemas y para identificar problemas rápidamente. También proporciona una ubicación de respaldo para los mensajes de registro en caso de que un sistema sufra una falla catastrófica en el disco duro u otros problemas, lo que hace que los registros locales ya no estén disponibles. En estas situaciones, la copia de los mensajes de registro que residen en el host de registro central se puede usar para ayudar a diagnosticar el problema que causó el problema.

El registro estandarizado del sistema se implementa en Red Hat Enterprise Linux 7 mediante rsyslog Servicio. Los programas del sistema pueden enviar mensajes de syslog al rsyslogd local. servicio, que luego redirigirá esos mensajes a archivos en /var/log , servidores de registro remotos u otras bases de datos según la configuración de su archivo de configuración, /etc/rsyslog.conf .

Los mensajes de registro tienen dos características que se utilizan para categorizarlos. La facilidad de un mensaje de registro indica el tipo de mensaje que es. La prioridad, por otro lado, indica la importancia del evento registrado en el mensaje.

Niveles de prioridad de Syslog

Prioridad Significado
emergencia El sistema no se puede utilizar
alerta Se requiere acción inmediata
crítico Condición crítica
err Condición de error
advertencia Condición de advertencia
aviso Condición normal pero significativa
información Mensajes informativos
depuración Mensajes de depuración

Configuración de un host de registro central

La implementación de un host de registro central requiere la configuración del servicio rsyslog en dos tipos de sistemas:los sistemas remotos desde donde se originan los mensajes de registro y el host de registro central que recibe los mensajes. En el host de registro central, el servicio rsyslog debe configurarse para que se acepten los mensajes de registro de hosts remotos.

Para configurar el servicio rsyslog en el host de registro central para aceptar registros remotos, descomente las líneas de recepción TCP o UDP en la sección de módulos en /etc/rsyslog.conf archivo.

Para recepción UDP:

# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514

para recepción TCP:

# Provides TCP syslog reception
$ModLoad imtcp.so
$InputTCPServerRun 514

TCP proporciona una entrega más confiable de mensajes de registro remotos, pero UDP es compatible con una variedad más amplia de sistemas operativos y dispositivos de red.

Nota :El transporte TCP simple de mensajes syslog está bastante implementado pero aún no está estandarizado. La mayoría de las implementaciones actualmente usan el puerto 514/TCP, que es el puerto rshd heredado. Si el sistema tiene instalado el paquete rsh-server y está utilizando el antiguo servicio rshd inseguro, entrará en conflicto con el uso del puerto 514/TCP para la recepción simple de syslog TCP. Configure el servidor de registro para usar un puerto diferente cambiando la configuración de $InputTCPServerRun.

Las reglas contenidas en /etc/rsyslog.conf están configuradas de manera predeterminada para acomodar el registro de mensajes en un solo host. Por lo tanto, clasifica y agrupa los mensajes por instalación. Por ejemplo, los mensajes de correo se canalizan a /var/log/maillog mientras que los mensajes generados por
el demonio crond se consolidan en /var/log/cron para facilitar la localización de cada tipo de mensaje.

Si bien la clasificación de mensajes por parte de la instalación es ideal en un solo host, produce un resultado no deseado en un host de registro central, ya que hace que los mensajes de diferentes hosts remotos se mezclen entre sí. En un host de registro central, suele ser más óptimo que los mensajes de registro de los sistemas remotos permanezcan separados unos de otros. Esta separación se puede lograr definiendo nombres de archivos de registro dinámicos mediante la función de plantilla de rsyslog.

Las plantillas se definen en /etc/rsyslog.conf y se pueden usar para generar reglas con nombres de archivos de registro dinámicos. Una definición de plantilla consta de $template directiva, seguida de un nombre de plantilla y, a continuación, una cadena que representa el texto de la plantilla. El texto de la plantilla se puede hacer dinámico haciendo uso de valores sustituidos de las propiedades de un mensaje de registro. Por ejemplo, para dirigir mensajes cron syslog desde diferentes sistemas a diferentes archivos en un host de registro central, use la siguiente plantilla para generar nombres de archivos de registro dinámicos basados ​​en NOMBRE DE HOST propiedad de cada mensaje:

$template DynamicFile,"/var/log/loghost/%HOSTNAME%/cron.log"

El nombre de archivo dinámico creado con la definición de plantilla puede luego ser referenciado por el nombre de plantilla en una regla de la siguiente manera:

cron.*    ?DynamicFile

En los sistemas que realizan un registro extremadamente detallado, puede ser conveniente desactivar la sincronización del archivo de registro después de cada operación de escritura para mejorar el rendimiento. La sincronización de un archivo de registro después de cada registro puede omitirse anteponiendo el nombre del archivo de registro con el signo menos (-) en una regla de registro. Sin embargo, la compensación de un rendimiento mejorado crea la posibilidad de pérdida de datos de registro si el sistema falla inmediatamente después de un intento de escritura.

El siguiente es otro ejemplo del uso de plantillas para generar nombres de archivos de registro dinámicos. En este ejemplo, los mensajes de registro remoto se ordenarán por su nombre de host y valores de instalación haciendo referencia al NOMBRE DE HOST y syslogfacility-test propiedades. Los mensajes de registro se escribirán en los nombres de archivo de registro generados dinámicamente y no se realizará ninguna sincronización después de la operación de escritura.

$template DynamicFile,"/var/log/loghost/%HOSTNAME%/%syslogfacility-text%.log"
*.*    -?DynamicFile
Nota :Puede encontrar una lista completa de las propiedades de los mensajes de syslog que rsyslog pone a disposición
en la sección Propiedades disponibles de la página del comando man rsyslog.conf(5).

Una vez que se haya activado la recepción de syslog y se hayan creado las reglas deseadas para la separación de registros por host, reinicie el servicio rsyslog para que los cambios de configuración surtan efecto. Además, agregue las reglas de firewall UDP y/o TCP necesarias para permitir el tráfico de syslog entrante y luego vuelva a cargar firewalld .

# systemctl restart rsyslog
# firewall-cmd --add-port=514/udp --permanent
# firewall-cmd --add-port=514/tcp --permanent
# firewall-cmd --reload

Cuando se crean nuevos archivos de registro, es posible que no se incluyan en el programa de rotación de registros existente del host de registro. Esto debe solucionarse para garantizar que los nuevos archivos de registro no crezcan hasta alcanzar tamaños inmanejables. Por ejemplo, para incluir los nuevos archivos de registro de los ejemplos anteriores en la rotación de registros, agregue la siguiente entrada a la lista de archivos de registro en /etc/logrotate.d/syslog archivo de configuración.

/var/log/loghost/*/*.log

Redirigir el registro al host de registro central

Una vez que el host de registro central está configurado para aceptar el registro remoto, el servicio rsyslog se puede configurar en sistemas remotos para enviar registros al host de registro central. Para configurar una máquina para enviar registros a un servidor rsyslog remoto, agregue una línea a la sección de reglas en el archivo /etc/rsyslog.conf. En lugar del nombre del archivo, utilice la dirección IP del servidor rsyslog remoto. Para usar UDP, prefije la dirección IP con un solo signo @. Para usar TCP, prefijelo con dos signos @ (@@).

Por ejemplo, para enviar todos los mensajes con información o una prioridad más alta a loghost.example.com a través de UDP, use la siguiente línea:

*.info @loghost.ejemplo.com

Para enviar todos los mensajes a loghost.example.com a través de TCP, use la siguiente línea:

*.*     @@loghost.example.com

Opcionalmente, el nombre de host del registro se puede agregar con :PORT , donde PORT es el puerto que utiliza el servidor rsyslog remoto. Si no se proporciona ningún puerto, asume el puerto predeterminado 514 .

Después de agregar las reglas, reinicie el servicio rsyslog y envíe un mensaje de prueba con el comando logger:

[root@logclient ~]# logger "Test from logclient"

Verifique los registros en el servidor remoto para asegurarse de que se recibió el mensaje.


Cent OS
  1. Deshabilite el reinicio usando las teclas Ctrl-Alt-Del en RHEL / CentOS

  2. CentOS/RHEL 7:Configuración de NTP mediante chrony

  3. CentOS/RHEL 7:Configuración de direcciones IP estáticas mediante archivos de configuración de interfaz de red

  4. CentOS / RHEL 6,7:cómo aumentar la verbosidad del mensaje de registro del sistema (rsyslogd)

  5. Cómo cambiar el directorio de registro predeterminado (/var/log) en Rsyslog para CentOS/RHEL 6,7

Cómo instalar syslog en RHEL 8 / CentOS 8

Cómo configurar el registro remoto de Rsyslog en Linux (servidor de registro central)

fprintd registra mensajes en /var/log/messages incluso si USEFPRINTD=no en /etc/sysconfig/authconfig (CentOS/RHEL 7)

El cambio de nombre de host no se refleja en /var/log/messages para CentOS/RHEL

Cómo configurar el inicio de sesión de firewalld en CentOS/RHEL 8

Cómo registrar paquetes caídos usando firewalld en CentOS/RHEL 7