Graylog: Obtener y manipular los logs de Apache en una infraestructura de docker bajo traefik

Buenas a todo@s. En este post vamos a hacer que nuestro graylog, reciba los logs de apache montado en docker y bajo un web proxy que será traefik. A primera vista parece sencillo, pero hay que hacer un par de cosillas para que toda la info llegue correcta y podamos manipularla.

Pasos previos

Graylog

Antes que nada, tenemos que tener montado nuestro graylog. Este irá sobre docker y con traefik y lo desplegaremos con docker-compose.

Ahora añadiremos la base de datos de geolite2

Una vez con esto levantar el stack

Traefik

Ahora tenemos que hacer que Traefik pase la IP del host que accede a apache. Esto se hace con el parámetro forwardedHeaers , de lo contrario, en los logs de apache solo se verán peticiones desde la IP de traefik.

Apache

Y por último, queda configurar apache para que en los logs interprete bien la IP externa. Para ello, hay que habilitar un módulo y configurar los logs.

Habilitar el módulo:

Editar el apache.conf  o  httpd.conf  y des-comentar:

Y cambiar el formato el log. Hay que cambiar el %h  por el %a

Y reiniciar apache

Configuración

Apache

Hay que configurar apache para mandar los logs a graylog. Si se ha montado con docker. Basta con añadir en el docker-compose en la sección de apache lo siguiente:

Si no es así, hay que mirar cual es la opción que mas nos conviene. Graylog tiene una herramienta que es el sidecar para enviar logs.

Graylog

En graylog, hay que hacer unas primeras configuraciones para que funcione la geolocalización

Ir a configuración y habilitar la geo-location

Y poner en orden correcto el Message Processors Configuration. Lo importante es que el GeoIP Resolver esté al final

Ahora toca crear el input para recibir los logs. Para esto ir a la sección de Inputs y crear uno. En nuestro caso va a ser del tipo Syslog UDP .

Ahora le añadiremos un extractor de Apache. Esto puede que haya que adaptarlo cada uno a sus logs

Importar el extractor

El que vamos a utilizar es este pero un poco cambiado. Solo hay que copiar y pegarlo

Y una vez hecho esto, los logs de apache ya empezarán a tener mas campos y podremos manipularlos de una manera mas fácil

Con esto, ya se podrá empezar a crear dashboards e ir añadiendo lo que nos interese.

 

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *