En esta publicación, aprenderá cómo exportar los registros de sus servidores con Rsyslog en Centos 8
En este artículo, veremos cómo configurar un demonio Rsyslog de CentOS/RHEL 8 para enviar mensajes de registro a un servidor Rsyslog remoto. Esta configuración asegura que el espacio del disco en su máquina esté disponible para otros fines.
En CentOS 8, el demonio Rsyslog ya está instalado y funcionando de forma predeterminada. Ejecute los siguientes comandos para ver si el servicio rsyslog está activo en el sistema.
# grep rsyslog | rpm –q
# rsyslogd –v
Si el paquete Rsyslog no está instalado en su sistema CentOS, ejecute el siguiente comando para instalarlo.
# yum install rsyslog
Exporte los registros de sus servidores con Rsyslog
Modifique el archivo de configuración de rsyslog de la siguiente manera para obligar al demonio Rsyslog instalado en un sistema CentOS 8 a funcionar como un cliente de registro y enviar todos los mensajes de registro generados localmente a un servidor Rsyslog distante:
Para comenzar a modificar, abra el archivo de configuración principal:
# vim /etc/rsyslog.conf
Luego, como se muestra en el extracto a continuación, agregue la siguiente línea al final del archivo.
# *. * @192.168.1.59:514
Asegúrese de que la dirección IP y el FQDN del servidor rsyslog remoto se reemplacen correctamente en la línea anterior. La línea anterior le dice al demonio Rsyslog que envíe todos los mensajes de registro a la dirección IP 192.168.1.59 a través del puerto 514/UDP, independientemente de la instalación o la gravedad.
Agregue otro carácter @ delante del host remoto si el servidor de registro remoto está configurado para aceptar solo conexiones TCP o si desea utilizar un protocolo de red de transporte confiable como TCP, como se ilustra en el siguiente ejemplo:
# *. * @@logs.domain.lan:514
Los caracteres especiales, como =o!, se pueden anteponer a los niveles de prioridad en Linux rsyslog para indicar "esta prioridad solamente" para el signo igual y "no esta prioridad o superior a esta" para!
A continuación se muestran algunos ejemplos de calificadores de nivel de prioridad de Rsyslog:
kern.info =Registros del kernel con una prioridad de información o superior.
kern.=info =Solo se permiten mensajes del kernel con prioridad de información.
kern.info;kern.!err =Solo se permiten mensajes del núcleo con información de prioridades, aviso y advertencia.
kern.debug;kern.!=advertencia =Excepto por la advertencia, todas las prioridades del kernel son iguales.
kern.* =Todos los mensajes con prioridad en el kernel
kern.ninguno =Independientemente de la prioridad, no registre ningún mensaje de instalación del núcleo asociado.
Por ejemplo, si solo desea enviar un subconjunto de mensajes de instalaciones a un servidor de registro remoto, como todos los mensajes de correo asociados, independientemente de su prioridad, agregue la siguiente línea al archivo de configuración de rsyslog:
# mail.* @192.168.1.59:514
Finalmente, para que la configuración actualizada surta efecto, el servicio Rsyslog debe reiniciarse con el siguiente comando:
# systemctl restart rsyslog.service
Si el demonio Rsyslog no se activa durante el arranque por algún motivo, ejecute el siguiente comando para habilitar el servicio en todo el sistema:
# systemctl enable rsyslog.service
Enviar registros del servidor web a un servidor de registro remoto
Al agregar la siguiente línea al archivo de configuración principal de Apache, como se muestra a continuación, el servidor HTTP se puede configurar para transmitir mensajes de registro a un servidor syslog remoto.
# vim /etc/httpd/conf/httpd.conf
En el archivo de configuración principal de Apache, agregue la siguiente línea.
CustomLog "| /bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-access.log | /usr/bin/logger -thttpd -plocal1.notice'" combined
La línea le dice al demonio HTTP que escriba mensajes de registro en el archivo de registro del sistema de archivos, pero también le dice que los envíe a un servidor syslog lejano designándolos como provenientes de la instalación local1.
Si también desea enviar mensajes de registro de errores de Apache a un servidor syslog remoto, cree una nueva regla similar a la anterior, pero cambie el nombre del archivo de registro httpd y el nivel de gravedad del archivo de registro para que coincida con la prioridad del error. , como se muestra en el siguiente ejemplo:
ErrorLog "|/bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-error.log | /usr/bin/logger -thttpd -plocal1.err'"
Una vez que haya cambiado las líneas anteriores, deberá reiniciar el demonio de Apache para que los cambios surtan efecto:
# systemctl restart httpd.service
Al agregar las siguientes líneas de código a un archivo de configuración de nginx, el servidor web de Nginx tiene la capacidad integrada de registrar directamente sus mensajes en un servidor syslog remoto a partir de la versión 1.7.1.
error_log syslog:server=192.168.1.59:514,facility=local7,tag=nginx,severity=error;
access_log syslog:server=192.168.1.59:514,facility=local7,tag=nginx,severity=info main;/code>
Para recibir los registros enviados por el servidor web Apache, realice los siguientes cambios en el archivo de configuración rsyslog en el servidor Rsyslog remoto.
local1.* @Apache_IP_address:514
Eso concluye nuestra discusión. Configuró con éxito el demonio Rsyslog para que se ejecute en modo cliente, así como instruyó a Apache o Nginx para enrutar los mensajes de registro a un servidor syslog remoto.
Si su sistema se estropea, debería poder averiguar qué salió mal mirando el contenido de los archivos de registro guardados en el servidor syslog remoto.
Ahora ya sabe cómo exportar los registros de sus servidores mediante Rsyslog.
Visite nuestra página de inicio para obtener más guías