Cómo crear un servidor de registro centralizado con Rsyslog en CentOS/RHEL 7

Cómo crear un servidor de registro centralizado con Rsyslog en CentOS/RHEL 7

Para que el administrador del sistema identifique o resuelva un problema en un Centos 7 o Rhel 7 Sistema de servidor, debe saber y ver los eventos que ocurrieron en el sistema en un período específico de tiempo de los archivos de registro almacenados en el sistema en el /var/log directorio.

El servidor syslog en una máquina Linux puede actuar como un punto de monitoreo central sobre una red donde todos los servidores, dispositivos de red, enrutadores, conmutadores y la mayoría de sus servicios internos que generan registros, ya sea relacionado con un problema interno específico o simplemente mensajes informativos, pueden enviar sus registros.

En un CentOS/RHEL 7 sistema, Rsyslog Daemon es el principal servidor de registro preinstalado, seguido de Systemd Journal Daemon (diario).

Rsyslog servidor en compilación como servicio de arquitectura de cliente/servidor y puede lograr ambos roles simultáneos. Puede ejecutarse como un servidor y recopilar todos los registros transmitidos por otros dispositivos en la red o puede ejecutarse como cliente enviando todos los eventos del sistema interno registrados a un servidor de syslog de punto final remoto.

Cuando Rsyslog se configura como un cliente, los registros se pueden almacenar localmente en archivos en el sistema de archivos local o se pueden enviar de forma remota en lugar de escribirlos en archivos almacenados en la máquina o escribir eventos de registro de registro localmente y enviarlos a un servidor remoto de syslog a al mismo tiempo.

Syslog Server opera cualquier mensaje de registro utilizando el siguiente esquema:

tipo (instalación).Destino de prioridad (gravedad) (dónde enviar el registro) 

A. El instalación o el tipo de datos están representados por los procesos del sistema interno que genera los mensajes. En los procesos internos (instalaciones) de Linux que generan registros están estandarizados de la siguiente manera:

  • auténtico = Mensajes generados por procesos de autenticación (inicio de sesión).
  • cron= Mensajes generados por procesos programados (CRONTAB).
  • demonio = Mensajes generados por Daemons (Servicios internos).
  • núcleo = Mensajes generados por el kernel de Linux.
  • correo = Mensajes generados por un servidor de correo.
  • syslog = mensajes generados por el demonio rsyslog en sí.
  • LPR = Mensajes generados por impresoras locales o un servidor de impresión.
  • Local0 - Local7 = Mensajes personalizados definidos por un administrador (Local7 generalmente se asigna para Cisco o Windows).

B. El prioridad (gravedad) Los niveles también están estandarizados. Cada prioridad se asigna con una abreviatura estándar y un número como se describe a continuación. La séptima prioridad es el nivel más alto de todos.

  • emerger = Emergencia - 0
  • alerta = Alertas - 1
  • errar = Errores - 3
  • advertir = Advertencias - 4
  • aviso = Notificación - 5
  • información = Información - 6
  • depurar = Depuración - 7

Palabras clave especiales de Rsyslog:

  • * = todas las instalaciones o prioridades
  • ninguno = Las instalaciones no tienen prioridades dadas, por ejemplo: correo.ninguno

C. La tercera parte del esquema syslog está representado por el destino directiva. Rsyslog Daemon puede enviar mensajes de registro para que se escriban en un archivo en el sistema de archivos local (principalmente en un archivo en /var/log/ Directorio) o para ser conectado a otro proceso local o que se envíe a una consola de usuario local (a stDout), o envíe el mensaje a un servidor syslog remoto a través del protocolo TCP/UDP, o incluso descarte el mensaje a /dev/nulo.

Para configurar CentOS/RHEL 7 Como servidor de registro central, primero debemos verificar y asegurarnos de que el /var La partición donde se registran todos los archivos de registro es lo suficientemente grande (algunos mínimos de GB) para poder almacenar todos los archivos de registro que serán enviados por otros dispositivos. Es una buena decisión utilizar una unidad separada (LVM, RAID) para montar el /var/log/ directorio.

Requisitos

  1. Centos 7.3 Procedimiento de instalación
  2. Rhel 7.3 Procedimiento de instalación

Cómo configurar Rsyslog en el servidor CentOS/RHEL 7

1. Por defecto, Rsyslog El servicio se instala automáticamente y debe ejecutarse en CentOS/RHEL 7. Para verificar si el demonio se inicia en el sistema, emita el siguiente comando con privilegios raíz.

# systemCtl Status rsyslog.servicio 
Verifique el servicio RSYSLOG

Si el servicio no se ejecuta de forma predeterminada, ejecute el siguiente comando a continuación para iniciar el demonio rsyslog.

# SystemCTL Start rsyslog.servicio 

2. Si el paquete RSYSLOG no está instalado en el sistema que tiene la intención de usar como un servidor de registro centralizado, emita el siguiente comando para instalar el paquete RSYSLOG.

# yum install rsyslog 

3. El primer paso que debemos hacer en el sistema para configurar Rsyslog Daemon como un servidor de registro centralizado, por lo que puede recibir mensajes de registro para clientes externos, es abrir y editar, utilizando su editor de texto favorito, el archivo de configuración principal desde /etc/rsyslog.confusión, como se presenta en el siguiente extracto.

# vi /etc /rsyslog.confusión 

En el archivo de configuración principal de RSYSLOG, Búsqueda y desacomode las siguientes líneas (elimine el hashtag # Firmar en la línea que comienza) para proporcionar recepción de transporte UDP al servidor RSYSLOG a través de 514 puerto. UDP es el protocolo estándar utilizado para la transmisión log por RSYSLOG.

$ Modload iMudp $ Udpserverrun 514 
Configurar el servidor RSYSLOG

4. El protocolo UDP no tiene la sobrecarga de TCP, lo que hace que sea más rápido para transmitir datos que el protocolo TCP. Por otro lado, el protocolo UDP no asegura la confiabilidad de los datos transmitidos.

Sin embargo, si necesita usar el protocolo TCP para la recepción de registro, debe buscar y desenchufar las siguientes líneas desde /etc/rsyslog.confusión Archivo para configurar el demonio rsyslog para vincular y escuchar un socket TCP en el puerto 514. Los sockets de escucha TCP y UDP para la recepción se pueden configurar en un servidor RSYSLOG simultáneamente.

$ Modload IMTCP $ InputTCPServerrun 514 

5. En el siguiente paso, no cierre el archivo todavía, cree una nueva plantilla que se utilizará para recibir mensajes remotos. Esta plantilla instruirá al servidor RSYSLOG local donde guardar los mensajes recibidos enviados por los clientes de la red Syslog. La plantilla debe agregarse antes del comienzo del Directivas globales Bloque como se ilustra en el extracto a continuación.

$ Template remotelogs, "/var/log/%hostname%/%ProgramName%.registro"  . ?Remotelogs & ~ 
Crear plantilla de rsyslog

Lo anterior $ plantilla remotelogs La directiva instruye a Rsyslog Daemon que recopile y escriba todos los mensajes de registro recibidos en archivos distintos, según el nombre de la máquina del cliente y la instalación del cliente remoto (aplicación) que generó los mensajes basados ​​en las propiedades definidas que presenta la configuración de la plantilla: %HostName% y %ProgramName%.

Todos estos archivos de registro se escribirán en el sistema de archivos local en un archivo dedicado que lleva el nombre del nombre de host de Client Machine y se almacenan en/var/log/directorio.

El & ~ La regla de redirección instruye al servidor RSYSLOG local que deje de procesar el mensaje de registro recibido más y descarte los mensajes (no escribirlos en archivos de registro internos).

El Remotelogs El nombre es un nombre arbitrario dado a esta directiva de plantilla. Puedes usar cualquier nombre que puedas encontrar mejor para tu plantilla.

Para escribir todos los mensajes recibidos de los clientes en un solo archivo de registro que lleva el nombre de la dirección IP del cliente remoto, sin filtrar la instalación que generó el mensaje, use el extracto a continuación.

$ plantilla fromip, "/var/log/%fromhost-ip%.registro"  . ?Fromip & ~ 

Otro ejemplo de una plantilla donde todos los mensajes con indicador de la instalación de autenticación se registrarán en una plantilla llamada "Tmplauth".

$ TMPLATH TMPLAUTH, "/var/log/%hostname%/%ProgramName%.registrar "Authpriv.* ?Tmplauth 

A continuación se muestra un extracto de una definición de plantilla del servidor RSYSLOG 7:

Template (name = "tmplmsg" type = "string" string = "/var/log/remoto/msg/%hostname%/%ProgramName :::: Secpath-Replace%.registro" ) 

El extracto de plantilla anterior también se puede escribir como:

Template (name = "tmplmsg" type = "list") constant (valor = "/var/log/remoto/msg/") Propiedad (name = "hostname") constant (value = "/") Property (name = "ProgramName" SecurePath = "Reemplazar") Constant (valor = ".registro")  

Para escribir plantillas complejas de rsyslog, lea el manual de archivo de configuración de Rsyslog emitiendo hombre rsyslog.confusión comandar o consultar la documentación en línea de Rsyslog.

6. Después de editar el archivo de configuración de RsysLog con su propia configuración como se explicó anteriormente, reinicie el demonio rsyslog para aplicar los cambios emitiendo el siguiente comando:

# Servicio de reinicio de Rsyslog 

7. Por ahora, el servidor RSYSLOG debe configurarse para actuar como un servidor de registro centralizado y grabar mensajes de los clientes syslog. Para verificar los enchufes de red RSYSLOG, ejecute el comando NetStat con privilegios raíz y use GREP para filtrar la cadena RSYSLOG.

# netstat -tulpn | grep rsyslog 
Verificar el socket de red RSYSLOG

8. Si tiene Selinux habilitado en CentOS/RHEL 7, emita el siguiente comando para configurar Selinux para permitir el tráfico de Rsyslog según el tipo de socket de red.

# semanage -a -t syslogd_port_t -p UDP 514 # semanage -a -t syslogd_port_t -p tcp 514 

9. Si el firewall está habilitado y activo, ejecute el siguiente comando a continuación para agregar las reglas necesarias para abrir los puertos de Rsyslog en Firewalld.

# firewall-cmd --Permanent --add-puerto = 514/tcp # firewall-cmd --permanent --add-puerto = 514/UDP # firewall-cmd -Reload 

Eso es todo! Rsyslog ahora está configurado en modo servidor y puede centralizar los registros de clientes remotos. En el siguiente artículo, veremos cómo configurar el cliente RSYSLOG en el servidor CentOS/RHEL 7.

Usando el servidor RSYSLOG como punto de monitoreo central para mensajes de registro remoto, puede inspeccionar archivos de registro y observar el estado de salud de los clientes o depurar los problemas del cliente más fácilmente cuando los sistemas se bloquean o están bajo algún tipo de ataque.