Get it on Google Play

Gestión integrada de logs con ELK(Elasticsearch, Logstash y Kibana)

26-05-2016
 

Cada vez mas empresas requieren de un sistema de gestión de logs integrado, y este número no hará mas que crecer. Un sistema de gestión de logs integrado aporta muchísimo valor, por ejemplo, en seguridad, análisis del comportamiento del usuario o simplemente para la gestión de los sistemas.

En este artículo vamos a ver como podemos crearnos un sistema que nos indexe todos los logs generados por Liferay para luego explotar esa información.

Introducción a ELK(Elasticsearch, Logstash y Kibana)

ELK es un stack de varios productos para indexar y explotar información:

ElasticSearch es un sistema para indexar y buscar todo tipo de información en tiempo real. A través de su API RESTful podemos indexar y buscar información como documentos JSON.

Kibana es un sistema que se integra con ElasticSearch para explorar y visualizar datos. Permite buscar datos a través de un lenguaje de búsquedas, crear vistas y cuadros de mando.

Logstash este software nos permite procesar archivos de log e indexarlos en ElasticSearch u otros sistemas.

Logstash Pipeline

Logstash Pipeline

Instalación y configuración de ELK

Lo primero va a ser instalar instalar el stack ELK, debéis descargaros los tres productos por separados y descomprimirlos en una carpeta:

 
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.3.3/elasticsearch-2.3.3.zip

wget https://download.elastic.co/logstash/logstash/logstash-2.3.2.zip 

wget https://download.elastic.co/kibana/kibana/kibana-4.5.1-linux-x64.tar.gz

Una vez descargado y descomprimido el stack deberemos arrancar por separado ElasticSearch y Kibana:

 
# Arrancamos ElasticSearch
elasticsearch-2.3.3/bin/elasticsearch

#Arrancamos Kibana
kibana-4.5.1-linux-x64/bin/kibana

ElasticSearch por defecto escuchará en el puerto 9200 donde podremos indexarle lo que queramos(Ups, creí que ya había escrito un post sobre como se hacia, queda de deberes…). Kibana por defecto escucha en el puerto 5601 y nos pedirá que le configuremos un ‘index pattern’, podemos configurarle ‘*’ de momento.

Configurar y arrancar Logstash

Logstash se configura a partir de un fichero al que llamaremos ‘pipeline.conf’. Este fichero tiene tres grandes trozos: Configuración de la entrada de información, configuración de un filtro y configuración de la salida de información.

En nuestro caso, para ser el primer ejemplo, nos limitaremos a configurar que coja todos los ficheros de logs de Liferay y que la salida sea la indexación en ElasticSearch y también lo saque por pantalla(Para comprobar que esta indexando):

input {
    file {
        path => "/opt/BarcelonaGSE/liferay-portal-6.2-ce-ga4/tomcat-7.0.42/logs/*.log"
        start_position => beginning
	}
}

filter {
}

output {
	stdout {}

    	elasticsearch {}
}

Y arrancaremos Logstash:

bin/logstash -f pipeline.conf

Logstash procesará los ficheros de log, interpretará los distintos campos y los indexará.

Explotación de datos con Kibana

Ahora que ya tenemos los datos indexados podemos explotarlos. Kibana dispone de un lenguaje de búsqueda, por ejemplo podemos buscar todos los arranques de Liferay con la siguiente query:

message: "*Server startup in*"

A partir de tus búsquedas puedes crearte Dashboards tan chulos como el siguiente:

Kibana Dashboard

Kibana Dashboard

Interesado en formación Liferay?

 

Leave a Reply

© Albert Coronado Calzada