Pruebas con ELK (Elasticsearch, Logstash y Kibana) (2)

Como en el anterior articulo dejamos funcionando nuestro servidor con ElasticSearch, en este vamos a instalar y configurar Logstash.  Para ello, lo primero que haremos es descargarnos Logstash desde la web oficial de Elastic:

Instalamos el paquete con el siguiente comando:

Como resultado tendremos Logstash instalado en /opt/logstash/ , los archivos de configuración en /etc/logstash/conf.d/  y el script de arranque en /etc/init.d/logstash .

En esta implantación de prueba, vamos a decirle a Logstash que nos almacene en ElasticSearch los inicio de sesión registrados en auth.log . Con este fin crearemos un fichero de configuración auth-log.conf dentro de /etc/logstash/conf.d/  .

Más adelante profundizaremos en todos los aspectos de la configuración de Logstash, pero de momento solo comentar que el fichero de configuración consta de tres partes:

Input:

En este apartado del fichero de configuración indicamos a Logstash que datos obtiene y de donde obtenerlos:

Como se puede ver en el ejemplo, obtiene un fichero ( file ) de tipo auth ubicado en /var/log/auth.log .

Filter:

Este es uno de los apartados más importantes y complejos del fichero de configuración, ya que es donde se trata la información entrante y se le da formato al paquete JSON que será posteriormente enviado a ElasticSearch:

De este apartado pordemos extraer que solo va a atender las entradas de tipo AUTH,  dando formato al campo message de {269a43e619103fec20a2ff1fa4c6fa62e033dc304f85b3cc053bbec70bac83ad}SYSLOGLINE basado en las plantillas de Grok Constructor, también formateamos correctamente la fecha y por último añadimos un campo llamado origen con el valor «auth».

Output:

Llegamos al punto donde configuramos la salida de los datos ya formateados:

En este apartado hemos indicado a Logstash que envíe los datos obtenidos y filtrados a ElasticSearch, como el servidor es local y con la configuración por defecto no es necesario especificar nada. Asimismo también indicamos con stdout la funcionalidad de dar salida por shell (stdout no lo veremos si lo ejecutamos como servicio).

Todo Junto:

Si unimos todas las partes nos quedará un fichero de configuración como este:

Antes de realizar la primera prueba es necesario aumentar los privilegios del usuario logstash ya que sino no podrá acceder a los ficheros sitos en  /var/log:

Para comprobar que funciona correctamente podemos iniciar logstash especificando el fichero de configuración y activando el modo Debug:

Si ahora que tenemos Logstash funcionando,  iniciamos sesión desde otra ventana de terminal con sudo su  nos mostrará algo similar a esto en el terminal donde tenemos Logstash:

Como podemos observar Logstash registra correctamente el inicio de sesión, por lo que podemos registrarlo como servicio en el arranque e iniciarlo:

Comprobamos que se ha iniciado correctamente en /var/logs/logstash/logstash.log :

Ahora podremos comprobar si Logstash ha enviado correctamente los datos a ElasticSearch. Para ello primero tenemos que consultar a ElasticSearch por los índices creados:

Como podemos ver, se ha creado el índice logstash-2016.08.26 , así que consultamos todos los registros de ese índice en ElasticSearch:

Con esto queda demostrado que Logstash y Elasticsearch están funcionando perfectamente, por lo que solo nos quedará instalar Kibana para poder gestionar mejor los registros creados desde Logstash.

Todo esto y más en el próximo articulo.

 

 

 


Referencias de interés: