Cómo usar rsyslog para crear un servidor de agregación de registros de Linux

Hace mucho tiempo, cuando era administrador de sistemas de otra empresa en una plataforma diferente, no teníamos forma de centralizar los archivos de registro. La mayoría de las mañanas, cuando llegaba al trabajo, me servía una taza de café y pasaba de 20 a 30 minutos de forma remota en cada servidor, examinando los registros de eventos y luego anotando cualquier problema encontrado. Déjame asegurarte que esta no era la forma más eficiente de administrar los registros. Sin embargo, era la única opción que tenía.

Sin embargo, Linux usa la herramienta syslog basada en Unix para administrar los archivos de registro locales. La mayoría de las distribuciones modernas de Linux en realidad usan un demonio nuevo y mejorado llamado. rsyslog es capaz de transferir registros a servidores remotos. La configuración es relativamente sencilla y permite a los administradores de Linux centralizar los archivos de registro para archivarlos y solucionar problemas. En este artículo, le muestro cómo configurar un servidor para que actúe como un repositorio de archivos de registro y luego cómo configurar servidores Linux para que le envíen sus registros.

Los archivos de registro son un componente esencial de la infraestructura de su servidor. Los administradores del sistema usan archivos de registro para realizar muchas tareas:

  • Reparar
  • Auditorías de acuerdos de nivel de servicio (SLA)
  • SEO
  • Mantenimiento preventivo
Índice

    Configurar el host de registro

    Me referiré al servidor que aloja los archivos de registro como un archivo. Este servidor puede requerir configuraciones únicas en comparación con otros dispositivos Linux. Considere la siguiente configuración para su servidor de host de registro.

    Partición separada para /var/log

    Las pautas de instalación a menudo aconsejan a los administradores montar /var/log en una partición separada para evitar que los registros incontrolables llenen el almacenamiento donde reside el sistema de archivos raíz. Esta práctica es crítica cuando el servidor recibe archivos de registro de una gran cantidad de dispositivos remotos.

    Archivo de configuración

    Actual rsyslog la configuración se gestiona a través de un archivo de configuración en el /etc directorio telefónico. Deberá editar varias líneas. Los ajustes pueden ser ligeramente diferentes, dependiendo de la distribución. Guarde el archivo de configuración original, luego abra el /etc/rsyslog.conf archivo con su editor de texto favorito.

    Primero, elimine el comentario de las dos líneas para UDP:

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

    También puede utilizar TCP como protocolo de transporte.

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

    Encontrará estas líneas en la parte superior del archivo de configuración en la sección.

    A continuación, configure una plantilla para los registros de entrada. Si no configura una plantilla, todas las entradas de registro de los servidores remotos se mezclan con los registros locales del servidor host de registros.

    $template DynamicFile,"/var/log/%HOSTNAME%/forwarded-logs.log" 
    *.* -?DynamicFile

    Esta plantilla coloca todos los registros de un host determinado en un directorio con el nombre de ese host. Por ejemplo, si tiene un servidor llamado Servidor web1, un directorio llamado WebServer1 se crea y todos los registros de este servidor se almacenan en este directorio. Las plantillas se definen en una sección del archivo de configuración. Si no se define una sección específica, solo asegúrese de que las plantillas estén definidas antes que el archivo.

    Hay muchas opciones de plantillas disponibles en línea.

    Una vez que haya descomentado el protocolo de la capa de transporte y haya definido una plantilla, guarde los cambios en el archivo. No olvides reiniciar rsyslog.

    # systemctl restart rsyslog

    cortafuegos

    rsyslog usa el puerto 514 para conectividad de red, ya sea usando TCP o UDP. Debe abrir el puerto 514 en el cortafuegos del servidor de registro. Suponiendo que está utilizando UDP, la configuración del cortafuegos se ve así:

    # firewall-cmd --add-port=514/udp --permanent
    
    # firewall-cmd --reload

    Use el siguiente comando para confirmar su configuración:

    # firewall-cmd --list-all

    Logrotación

    Puede resultarle útil configurar logrotate, además. logrotate ayuda a los administradores a administrar grandes cantidades de archivos de registro mediante la implementación de tareas de archivado, compresión, eliminación y otras tareas necesarias de administración de archivos de registro. Esta herramienta fue efectivamente cubierta por Edem Afenyo en el artículo Enable Sysadmin Configuring Logrotate on Linux, por lo que no hay razón para que la cubra aquí.

    Documente la dirección IP del servidor de host de registro

    Usar ifconfig Donde ip addr para documentar la dirección IP del servidor de host de registro. Utilizará esta dirección en los archivos de configuración del cliente.

    Prima: Recomiendo usar direcciones IP en archivos de configuración como /etc/rsyslog.conf en lugar de nombres de host. Esto simplifica la configuración y elimina la resolución de nombres del proceso de inicio de sesión del ordenador y del proceso de resolución de problemas del administrador del sistema. Elimina un montón de complejidad.

    Configurar un cliente de diario

    Comenzaré esta sección configurando un servidor Linux básico para enviar sus archivos de registro al servidor host de registro previamente configurado. Esta configuración es un poco más corta. No olvides guardar el original. /etc/rsyslog.conf archivar.

    Abre el /etc/rsyslog.conf archivo de configuración con su editor favorito (prefiero Vim, pero cualquier cosa que funcione para usted está bien). Vaya a la sección y cree una nueva fila antes que cualquier otra entrada. Para que quede claro, agregue esta línea antes de la facilidad.gravedad entradas. Esto permite que todas las coincidencias se reenvíen al servidor de destino.

    Agregue la siguiente información, donde IP es la dirección IP del servidor de host de registro:

    *.* @IP

    Notar: si está utilizando TCP, la sintaxis es *.* @@ IP

    Guarde sus cambios en el archivo de configuración, luego reinicie el rsyslog un servicio:

    # systemctl restart rsyslog

    Probar la configuración

    el logger El comando se utiliza para crear manualmente una entrada de archivo de registro. Ejecute el siguiente comando para generar una entrada:

    # logger Test

    Verifique la entrada del archivo de registro usando el tail comando para mostrar las entradas más recientes en el /var/log/messages conectarse al servidor local:

    # tail /var/log/messages

    Debería ver el mensaje Prueba.

    Luego cambie al servidor de host de registro y vea el contenido de /var/log:

    # ls /var/log

    Debería ver un directorio con el nombre del servidor remoto que configuró. Si usted ls el contenido de este directorio, debería ver los registros transferidos desde el servidor. Puedes usar el tail para ver el contenido de los registros en el subdirectorio de este servidor. También debería ver el mensaje Repetir prueba aquí.

    Configure sus servidores restantes

    En este punto, puede configurar sus servidores Linux restantes para reenviar sus registros al host de registro. Puede distribuir una nueva versión del /etc/rsyslog.conf usando rsync, SSH, o incluso establecer la configuración con Ansible.

    Reenviar diarios específicos

    La configuración de ejemplo anterior reenvía todos los registros al sistema host de registro (de ahí el *.* sintaxis). Puede elegir transferir entradas solo de recursos individuales o transferir entradas de diferentes recursos a diferentes servidores de host de registro.

    Digamos que querías enviar cron conectar a hostlogserver1 (donde los administradores del sistema pueden revisar las entradas) y FTP conectar a hostlogserver2 (donde los administradores de red pueden verificar las entradas). La configuración se ve así:

    cron.* @10.1.1.15
    
    ftp.* @10.1.1.20

    O hostlogserver1 tiene una dirección IP de 10.1.1.15 y hostlogserver2 tiene una dirección IP de 10.1.1.20.

    También puede transferir las mismas entradas a dos servidores diferentes:

    *.* @10.1.1.15
    
    *.* @10.1.1.20

    Otras plataformas

    Recuerde que en la introducción señalé que este mecanismo de archivo de registro es realmente un sistema Unix, no una característica específica de Linux. Esto significa que prácticamente cualquier dispositivo basado en Unix que mantenga registros puede participar.

    Configurar enrutadores para reenviar registros

    Hace poco estuve trabajando en el entorno de laboratorio de un cliente que usaba un enrutador configurado con VyOS. VyOS es una distribución de enrutador, VPN, firewall y NAT basada en Linux. Utilizamos el proceso anterior (editando el /etc/rsyslog.conf archivo de configuración) para configurar el enrutador para enviar sus registros a un servidor central. Los administradores de red pueden archivar fácilmente los registros del enrutador, VPN y otros mediante rsyslog.

    Otro sistema operativo utilizado en el entorno de laboratorio fue pfSense. pfSense es un sistema operativo derivado de FreeBSD que también puede transferir registros a una ubicación central usando rsyslog. Nuevamente, esta fue una configuración sencilla, aunque esta vez fue a través de una GUI web.

    Conclusión

    Considere las opciones disponibles para los administradores de sistemas con rsyslog transferencia de registros. Su equipo de red podría centralizar los registros de todos los enrutadores internos y perimetrales, dispositivos VPN y firewalls. Los administradores del sistema podrían organizar los registros según áreas de responsabilidad o geografía. La centralización puede afectar a sus equipos de seguridad, soporte y administración de servidores. rsyslog es un servicio básico pero esencial de Linux, y aprovechar su capacidad para centralizar registros le permite sacarle el máximo provecho.

    Artículos de interés

    Subir