Cómo enviar logs de Ubuntu a un servidor Graylog
Graylog es un sistema de gestión de registros centralizado en una plataforma. Es uno de los sistemas de gestión de registros más populares en el mundo DevOps, con soporte multiplataforma y puede instalarse en un entorno de contenedores como Docker y Kubernetes.
Como sistema de gestión de registros, Graylog admite múltiples entradas para distintos tipos de aplicaciones y sistemas. Puedes utilizar la entrada Syslog para sistemas operativos tipo Unix, Windows EventLog para sistemas Windows, utilizando GELF (Graylog Extended Log Format) para tus aplicaciones personalizadas.
En este tutorial, aprenderás a configurar el envío de registros desde la máquina Ubuntu al servidor Graylog. Esta demostración utiliza la última máquina Ubuntu 22.04 como cliente y el servidor Graylog v4.3. Si quieres saber cómo configurar un servidor Graylog en Debian 11, echa un vistazo aquí.
Requisitos previos
- Un servidor Graylog instalado – Esta demo utiliza Graylog v4.3 instalado en el servidor Debian.
- Una máquina cliente Ubuntu – Esta cúpula utiliza el servidor Ubuntu 22.04.
- Un usuario no root con privilegios de administrador Sudo.
Configurar la entrada de Graylog
Antes de empezar a configurar la máquina cliente Ubuntu, tendrás que configurar la entrada en tu servidor Graylog.
Graylog admite diferentes tipos de entradas para el sistema de registro, esto incluye el Syslog, Journald, Windows eventlog, Raw/Plaintext, archivos, etc.
Para los sistemas Linux, puedes enviar registros al servidor Graylog fácilmente utilizando la entrada Syslog. Sólo tienes que crear una entrada en tu servidor Graylog con el tipo Syslog y que se ejecute automáticamente en un puerto y una dirección IP determinados.
Abre tu navegador web y visita la instalación de tu servidor Graylog (es decir, http://graylog.hwdomain.io/). Accede a tu servidor Graylog con el usuario por defecto admin y tu contraseña segura.
Ahora haz clic en el menú Sistema y en Entradas, y aparecerá una nueva página.
En la página desplegable de entradas, selecciona aquí el tipo de entrada«Syslog UDP» y haz clic en el botón«Lanzar nueva entrada«.
Ahora tendrás que configurar la entrada Syslog en el servidor Graylog:
- Aquí se seleccionará automáticamente el Nodo, así que déjalo por defecto.
- Introduce el Título de tu nueva entrada, por ejemplo,«Syslog Linux UDP«.
- Aquí puedes especificar la dirección IP de tu entrada. Puede ser la dirección IP local de tu servidor o puedes utilizar simplemente 0.0.0.0 para ejecutar la entrada en todas las direcciones IP del servidor.
- El puerto aquí puedes utilizar un puerto diferente para tu entrada. Sólo asegúrate de que no hay otros servicios ejecutándose en ese puerto, y asegúrate de que el puerto no está en el rango entre 1-1024. En esta demostración, estamos utilizando el puerto UDP 5148.
Ahora pulsa el botón Guardar para confirmar la creación de la entrada.
Ahora, en la página de entradas, verás todas las entradas disponibles que se están ejecutando en tu servidor Graylog. En la siguiente captura de pantalla puedes ver que la entrada «Syslog Linux UDP» se ejecuta en el puerto UDP 5148 con la dirección bind 0.0.0.0, lo que significa que se ejecuta en todas las direcciones IP del servidor.
Configurar el cliente de Ubuntu para enviar registros
Ahora es el momento de configurar la máquina cliente Ubuntu para que envíe logs al servidor Graylog. Y esto puede hacerse utilizando el servicio Rsyslog.
En primer lugar, conéctate a tu máquina Ubuntu utilizando el comando ssh que se indica a continuación.
ssh user@SERVER-IP
Comprueba el paquete Rsyslog en la máquina Ubuntu y asegúrate de que está instalado.
sudo dpkg -l | grep rsyslog sudo apt info rsyslog
En la siguiente captura de pantalla, puedes ver que el paquete rsyslog está instalado por defecto. El«ii» en el campo significa instalado.
Ahora verifica el servicio Rsyslog utilizando el siguiente comando.
sudo systemctl is-enabled rsyslog sudo systemctl status rsyslog
Verás que el servicio rsyslog está habilitado, lo que significa que se ejecutará automáticamente al iniciarse el sistema. Y el estado actual del servicio rsyslog es en ejecución.
Para enviar logs desde la máquina cliente de Ubuntu al servidor Graylog utilizando rsyslog, tendrás que crear una nueva configuración adicional de rsyslog. La configuración por defecto de rsyslog es el archivo«/etc/rsyslog.conf«, y la configuración adicional de rsyslog puede almacenarse en el directorio «/etc/rsyslog.d».
Crea una nueva configuración adicional de rsyslog«/etc/rsyslog.d/60-graylog.conf» utilizando el editor nano.
sudo nano /etc/rsyslog.d/60-graylog.conf
Añade la siguiente configuración al archivo.
*.*@192.168.5.10:5148;RSYSLOG_SyslogProtocol23Format
Guarda y cierra el archivo cuando hayas terminado.
La dirección IP es 192.168.5.10 aquí está la dirección IP del servidor Graylog, que está ejecutando las entradas en el puerto UDP 5148.
Ahora reinicia el servicio rsyslog para aplicar los nuevos cambios y la nueva configuración utilizando el siguiente comando.
sudo systemctl restart rsyslog
Y ya has completado la configuración básica de rsyslog para enviar logs al servidor Graylog.
Comprobación de los logs desde el servidor Graylog
Ahora vuelve a tu navegador web y al panel de control de Graylog. Haz clic en el menú Buscar de la parte superior y obtendrás todos los registros de la máquina cliente Ubuntu como se muestra a continuación.
Desde el panel de búsqueda de Graylog, puedes filtrar los mensajes de registro de tus servidores o aplicaciones, comprobar los mensajes de registro en tiempo real, comprobar los mensajes de registro de periodos de tiempo específicos, etc.
Conclusión
¡Enhorabuena! Ya has configurado correctamente la máquina cliente Ubuntu utilizando el servicio Rsyslog para enviar registros al servidor Graylog. También has aprendido la configuración básica de las Entradas Graylog creando un nuevo tipo de Entrada Syslog UDP en el servidor Graylog. Otra forma de enviar logs es utilizando el Syslog TCP, archivos, JSON y beats de Elastic.