Cómo configurar el servidor de registro central con Rsyslog en Linux

Cómo configurar el servidor de registro central con Rsyslog en Linux

Registro son un componente crítico de cualquier software u sistema operativo. Los registros generalmente registran las acciones del usuario, los eventos del sistema, la actividad de la red y mucho más, dependiendo de lo que estén destinados. Uno de los sistemas de registro más utilizados en los sistemas Linux es rsyslog.

Rsyslog es un sistema de procesamiento de registro potente, seguro y de alto rendimiento que acepta datos de diferentes tipos de fuente (sistemas/aplicaciones) y lo genera en múltiples formatos.

Ha evolucionado de un regular syslog Daemon a un sistema de registro de nivel empresarial totalmente realizado. Está diseñado en un modelo de cliente/servidor, por lo tanto, se puede configurar como un cliente y/o como un servidor de registro central para otros servidores, dispositivos de red y aplicaciones remotas.

Entorno de prueba

Para el propósito de esta guía, utilizaremos los siguientes hosts:

  • Servidor: 192.168.241.140
  • Cliente: 172.31.21.58

Cómo instalar y configurar el servidor RSYSLOG

La mayoría de las distribuciones de Linux vienen con el rsyslog paquete preinstalado. En caso de que no esté instalado, puede instalarlo utilizando su herramienta de Administrador de paquetes de Linux como se muestra.

$ sudo yum update && yum install rsyslog #centos 7 $ sudo apt opdate && apt install rsyslog #ubuntu 16.04, 18.04 

Una vez rsyslog Instalado, debe iniciar el servicio por ahora, habilitarlo para iniciar automáticamente al arranque y verificar su estado con el comando SystemCTL.

$ sudo SystemCtl Inicio RSYSLOG $ sudo SystemCTL Habilitar rsyslog $ sudo systemctl status rsyslog 

El archivo principal de configuración de Rsyslog se encuentra en /etc/rsyslog.confusión, que carga módulos, define las directivas globales, contiene reglas para procesar mensajes de registro y también incluye todos los archivos de configuración en /etc/rsyslog.d/ Para varias aplicaciones/servicios.

$ sudo vim /etc /rsyslog.confusión 

Por defecto, rsyslog usa el imbournal y imusock módulos para importar mensajes de registro estructurados desde diario de systemd y para aceptar mensajes syslog de aplicaciones que se ejecutan en el sistema local a través de sockets Unix, respectivamente.

Módulos rsyslog para registrar

Para configurar rsyslog como un servidor de registro de red/central, debe establecer el protocolo (ya sea UDP o TCP o ambos) se utilizará para la recepción remota de syslog, así como el puerto en el que escucha.

Si quieres usar un UDP Conexión, que es más rápida pero poco confiable, de búsqueda e incommentación de las líneas a continuación (reemplace 514 Con el puerto en el que desea que escuche, esto debería coincidir con la dirección del puerto a la que los clientes envían mensajes, veremos esto más al configurar un cliente RSYSLOG).

$ Modload iMudp $ Udpserverrun 514 

Usar TCP Conexión (que es más lenta pero más confiable), búsqueda y descomposición de las líneas a continuación.

$ Modload IMTCP $ InputTCPServerrun 514 

En este caso, queremos usar las conexiones UDP y TCP al mismo tiempo.

Configurar el servidor de registro de Rsyslog

A continuación, necesitas definir el conjunto de reglas para procesar registros remotos en el siguiente formato.

instalación.Destino de Severity_Level (dónde almacenar registro) 

Dónde:

  • instalación: ¿Es el tipo de mensaje de generación de procesos/aplicaciones, incluyen Auth, Cron, Daemon, Kernel, Local0 ... Local7. Usando * significa todas las instalaciones.
  • nivel de severidad: Es el tipo de mensaje de registro: emerg-0, alert-1, crit-2, err-3, warn-4, aviso-5, info-6, depug-7. Usando * significa todos los niveles de gravedad y ninguno implica que no hay nivel de gravedad.
  • destino: ¿Es el archivo local o el servidor RSYSLOG remoto (definido en el formulario IP: puerto).

Usaremos lo siguiente conjunto de reglas para recopilar registros de hosts remotos, utilizando el Remotelogs plantilla. Tenga en cuenta que estas reglas deben presentarse ante cualquier regla para procesar mensajes locales, como se muestra en la captura de pantalla.

$ Template remotelogs, "/var/log/%hostname%/%ProgramName%.registro" *.* ?Remotelogs & ~ 
Definir el conjunto de reglas para rsyslog-logging

Mirando lo anterior conjunto de reglas, La primera regla es “$ Plantilla remotelogs",/var/log/%hostname%/%ProgramName%.registro"".

La directiva $ plantilla le dice a Rsyslog Daemon que recopile y escriba todos los mensajes remotos recibidos en registros distintos en /var/log, basado en el nombre de host (Nombre de la máquina del cliente) y la instalación del cliente remoto (programa/aplicación) que generó los mensajes según lo definido por la configuración presente en la plantilla Remotelogs.

La segunda línea "*.* ?Remotelogs " significa registrar mensajes de todas las instalaciones en todos los niveles de gravedad utilizando el Remotelogs configuración de plantilla.

La línea final "& ~" instruye a rsyslog que deje de procesar los mensajes una vez que se escribe en un archivo. Si no incluye "& ~", En su lugar, los mensajes se escribirán en los archivos locales.

Hay muchas otras plantillas que puede usar, para obtener más información, consulte la página de RsysLog Configuration Man (hombre rsyslog.confusión) o consulte la documentación en línea de Rsyslog.

Eso es todo con la configuración del servidor rsyslog. Guardar y cerrar el archivo de configuración. Para aplicar los cambios recientes, reinicie Rsyslog Daemon con el siguiente comando.

$ sudo systemctl reiniciar rsyslog 

Ahora verifique los enchufes de la red Rsyslog. Utilizar el Comando SS (o NetStat con los mismos indicadores) Comando y vaya a la salida a GREP para filtrar las conexiones RSYSLOGD.

$ sudo ss -tulnp | Grep "rsyslog" 
Verifique el estado de la red RSYSLOG

Siguiente Centos 7, si usted tiene Selinux habilitado, ejecute los siguientes comandos para permitir el tráfico RSYSLOG basado en el tipo de socket de red.

$ sudo semanage -a -t syslogd_port_t -p udp 514 $ sudo semanage -a -t syslogd_port_t -p tcp 514 

Si el sistema tiene firewall habilitado, debe abrir el puerto 514 para permitir ambos UDP/TCP conexiones al servidor rsyslog, ejecutando.

------------- En CentOS ------------- $ sudo firewall-cmd --Permanent --add-puerto = 514/UDP $ sudo firewall-cmd --Permanent --add-puerto = 514/tcp $ sudo firewall-cmd ------------- En ubuntu ------------- $ sudo UFW Permitir 514/UDP $ sudo UFW Permitir 514/TCP $ sudo UFW RELOAD 

Cómo configurar el cliente RSYSLOG para enviar registros al servidor RSYSLOG

Ahora en el sistema del cliente, verifique si el servicio RSYSLOG se está ejecutando o no con el siguiente comando.

$ sudo systemctl status rsyslog 

Si no está instalado, instálelo e inicie el servicio como se muestra anteriormente en.

$ sudo yum update && yum install rsyslog #centos 7 $ sudo apt opdate && apt install rsyslog #ubuntu 16.04, 18.04 $ sudo SystemCtl Inicio Rsyslog $ sudo SystemCtl Habilitar rsyslog $ sudo systemctl status rsyslog 

Una vez que el servicio RSYSLOG esté en funcionamiento, abra el archivo de configuración principal donde realizará cambios en la configuración predeterminada.

$ sudo vim /etc /rsyslog.confusión 

Para obligar al demonio rsyslog a actuar como un cliente de registro y reenviar todos los mensajes de registro generados localmente al servidor RSYSLOG remoto, agregue esta regla de reenvío, al final del archivo como se muestra en la siguiente captura de pantalla.

*. * @@ 192.168.100.10: 514 
Configurar el cliente RSYSLOG

La regla anterior enviará mensajes de todas las instalaciones y en todos los niveles de gravedad. Para enviar mensajes desde una instalación específica, por ejemplo, auténtico, Use la siguiente regla.

auténtico. * @@ 192.168.100.10: 514 

Guarde los cambios y cierre el archivo de configuración. Para aplicar la configuración anterior, reinicie el demonio rsyslog.

$ sudo systemctl reiniciar rsyslog 

Cómo monitorear el registro remoto en el servidor RSYSLOG

El paso final es verificar si el rsyslog realmente está recibiendo y registrando mensajes del cliente, debajo /var/log, en la forma nombre de host/nombre de programa.registro.

Ejecute un comando ls a una lista larga del directorio de registros de padres y verifique si se llama un directorio IP-172.31.21.58 (o sea cual sea el nombre de host de su máquina de su cliente).

 $ ls -l/var/log/ 
Verifique el registro del cliente RSYSLOG

Si el directorio existe, verifique los archivos de registro dentro de él, ejecutando.

$ sudo ls -l/var/log/ip-172-31-21-58/ 
Verifique los registros del cliente RSYSLOG
Resumen

Rsyslog es un sistema de procesamiento de registro de alto rendimiento, diseñado en una arquitectura de cliente/servidor. Esperamos que pueda instalar y configurar Rsyslog Como servidor de registro central/de red y como cliente como se demuestra en esta guía.

También es posible que desee consultar páginas manuales relevantes de Rsyslog para obtener más ayuda. No dude en darnos algún comentario o hacer preguntas.