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

Con ELK (ElasticSearch, Logstash y Kibana) podemos gestionar los logs de nuestros servidores de forma muy eficiente, pudiendo realizar consultas muy concreta sobre lo que realmente nos interesa y obteniendo resultados muy visuales y fáciles de entender.

Antes de nada vamos a explicar de forma muy breve que función tiene cada uno de los componentes de ELK:

Logstash:

descargaLogstash es una herramienta para la administración de logs. Esta herramienta se puede utilizar para recolectar, parsear y guardar los logs para futuras búsquedas. La aplicación se encuentra basada en jRuby y requiere de Java Virtual Machine para correr. Como corre en JVM puede ser ejecutada en cualquier Sistema Operativo que corra JVM.

 

ElasticSearch:

ElasticsearchElasticsearch es un servidor de búsqueda basado en Lucene. Provee un motor de búsqueda de texto completo, distribuido y con capacidad de multi-tenencia con una interfaz web RESTful y con documentos JSON. Elasticsearch está desarrollado en Java y está publicado como código abierto bajo las condiciones de la licencia Apache.

Kibana:

KibanaKibana es una herramienta open-source perteneciente a Elastic, que nos permite visualizar y explorar datos que se encuentran indexados en ElasticSearch, es decir, un plugin de ElasticSearch.

Descripción del entorno de pruebas:

Para realizar las pruebas vamos a instalar Logstash, ElasticSearch y Kibana en una misma máquina virtual con la siguiente configuración:

  • 1 Procesador + 4 Cores
  • 4 Gb memoria RAM
  • 1 Adaptador de red virtual
  • Sistema operativo: Ubuntu  16.04 x64
  • ElasticSearch 2.3.5
  • Logstash 2.3.4

Manos a la obra:

Para empezar vamos a instalar ElasticSearch, ya que Logstash lo requiere (en el entorno ELK) para poder almacenar los datos y Kibana también lo requiere para poder realizar las consultas.

Antes de nada quería matizar que estamos en un entorno de pruebas, así que de momento no lo vamos a securizar, lo haremos más adelante.

Instalando ElasticSearch:

Lo primero que vamos a hacer es verificar que tenemos instalado JAVA en nuestro servidor:

En esta distribución de linux ya viene preinstalada la versión OPEN JDK V. 1.8, siendo esta la recomendada por Elastic. Así que perfecto!.

Si necesitáis ayuda para instalar JAVA, aqui teneis un articulo que os puede servir.

Procedemos a descargar la versión correspondiente de ElasticSearch desde la web de Elastic:

Ahora lo instalamos con dpkg:

Como resultado tendremos ElasticSearch instalado en /usr/share/elasticsearch/  , los archivos de configuración en /etc/elasticsearch/  y el script de arranque en /etc/init.d/elasticsearch.

Para que ElasticSearch se ejecute al arrancar la máquina, necesitamos incluir el script en la secuencia de arranque:

Posteriormente arrancamos el servicio manualmente para poder proseguir:

Si comprobamos el estado del servicio con /etc/init.d/elasticsearch status  nos mostrará algo similar a esto:

También podemos comprobar si está escuchando el puerto 9200 definido por defecto y mediante el cual Logstash se comunicará con ElasticSearch:

Con todo esto ya tenemos ElasticSearch instalado y funcionando. En el próximo articulo instalaremos y configuraremos Logstash.


Referencias de interés: