GNU/Linux >> Tutoriales Linux >  >> Linux

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

Hace mucho tiempo, cuando era administrador de sistemas para otra empresa en otra plataforma, 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 con cada servidor, revisando los registros de eventos y luego anotando cualquier problema detectado. Permítanme asegurarles que esta no era la forma más eficiente de manejar 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 utilizan un demonio nuevo y mejorado llamado rsyslog . rsyslog es capaz de reenviar registros a servidores remotos. La configuración es relativamente simple y hace posible que los administradores de Linux centralicen los archivos de registro para archivar y solucionar problemas. En este artículo, le muestro cómo configurar un servidor para que actúe como 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 crítico de la infraestructura de su servidor. Los administradores de sistemas usan archivos de registro para realizar muchas tareas:

  • Resolución de problemas
  • Auditorías de acuerdo de nivel de servicio (SLA)
  • Línea de base
  • Mantenimiento preventivo

Configurar el host de registro

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

Partición separada para /var/log

Las pautas de instalación a menudo aconsejan a los administradores que monten /var/log en una partición separada para evitar que los registros fuera de control llenen el almacenamiento donde reside la raíz del sistema de archivos. Esta práctica es fundamental cuando el servidor recibe archivos de registro de muchos dispositivos remotos.

Archivo de configuración

El rsyslog real la configuración se gestiona a través de un archivo de configuración en el /etc directorio. Deberá editar varias líneas. Los ajustes pueden ser ligeramente diferentes, dependiendo de la distribución. Haga una copia de seguridad del archivo de configuración original y luego abra el /etc/rsyslog.conf archivo con su editor de texto favorito.

Primero, descomente 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 cerca de la parte superior del archivo de configuración en Módulos sección.

A continuación, configure una plantilla para los registros entrantes. 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 WebServer1 , un directorio llamado WebServer1 se crea, y todos los registros de ese servidor se almacenan en ese directorio. Las plantillas se configuran en Plantillas 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 las Reglas .

Hay muchas opciones de plantillas diferentes disponibles en línea.

Una vez que haya quitado los comentarios del protocolo de la capa de transporte y haya establecido una plantilla, guarde los cambios en el archivo. No olvide reiniciar rsyslog .

# systemctl restart rsyslog

Cortafuegos

rsyslog usa el puerto 514 para la 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

Utilice el siguiente comando para confirmar su configuración:

# firewall-cmd --list-all

Logrotate

Puede resultarle útil configurar logrotate , así como. 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. Esa herramienta ha sido efectivamente cubierta por Edem Afenyo en el artículo Habilitar Sysadmin Configuración de Logrotate en Linux, por lo que no hay razón para que la cubra aquí.

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

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

Nota de bonificación :Recomiendo usar direcciones IP en archivos de configuración como /etc/rsyslog.conf en lugar de nombres de host. Hacerlo simplifica la configuración y elimina la resolución de nombres del proceso de conexión de la computadora y del proceso de solución de problemas del administrador del sistema. Elimina toda una posterior de complejidad.

[ También te puede interesar: Configurar logrotate en Linux ]

Configurar un cliente de registro

Comenzaré esta sección configurando un servidor Linux básico para reenviar sus archivos de registro al servidor host de registro configurado anteriormente. Esta configuración es un poco más corta. No olvide hacer una copia de seguridad del /etc/rsyslog.conf original archivo.

Abra el /etc/rsyslog.conf archivo de configuración con su editor favorito (prefiero Vim, pero lo que funcione para usted está bien). Mover a las Reglas sección y cree una nueva línea antes de cualquier otra entrada. Para que quede claro, está agregando esta línea antes de la instalación .gravedad entradas. Si lo hace, todas las coincidencias se reenviarán al servidor de destino.

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

*.* @IP

Nota :si usa TCP, la sintaxis es *.* @@IP

Guarde sus cambios en el archivo de configuración y luego reinicie rsyslog 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 iniciar sesión en el servidor local:

# tail /var/log/messages

Debería ver el mensaje Prueba.

A continuación, cambie al servidor de host de registro y luego muestre el contenido de /var/log :

# ls /var/log

Debería ver un directorio con el nombre del servidor remoto que configuró. Si ls el contenido de ese directorio, debería ver los registros reenviados desde el servidor. Puedes usar la tail comando para mostrar el contenido de los registros en el subdirectorio de este servidor. Debería ver el mensaje de prueba repetido aquí también.

Configura tus servidores restantes

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

Reenviar registros específicos

La configuración de ejemplo anterior reenvía todos los registros al sistema host de registro (de ahí el *.* sintaxis). Puede optar por reenviar solo entradas para instalaciones individuales o reenviar entradas para diferentes instalaciones a diferentes servidores de registro.

Digamos que desea enviar cron se registra en hostlogserver1 (donde los administradores de sistemas pueden revisar las entradas) y FTP se registra en hostlogserver2 (donde los administradores de red pueden verificar las entradas). La configuración se parece a esto:

cron.* @10.1.1.15

ftp.* @10.1.1.20

Donde 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 reenviar 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 función específica de Linux. Eso 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. Usamos el proceso anterior (editando el /etc/rsyslog.conf archivo de configuración) para configurar el enrutador para que envíe sus registros a un servidor central. Los administradores de red pueden archivar fácilmente los registros del enrutador, VPN y otros mediante el uso de rsyslog .

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

[ Curso gratuito en línea:Descripción general técnica de Red Hat Enterprise Linux. ] 

Resumir

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


Linux
  1. Cómo administrar archivos de registro usando Logrotate en Linux

  2. Cómo crear archivos de cierto tamaño en Linux

  3. Cómo usar Logrotate para administrar archivos de registro

  4. Rsyslog:cómo enviar archivos de registro a un servidor remoto en CentOS/RHEL 6,7

  5. Cómo usar el comando rpm2cpio en Linux

Cómo crear y usar un archivo de intercambio en Linux

Cómo ver los archivos de registro de Nginx en Linux

Cómo ver los archivos de registro de Apache en Linux

Cómo usar los comandos FTP de Linux

Cómo crear un controlador de dominio en Linux para AD

Cómo crear una configuración Rsyslog de registro centralizado