You are on page 1of 13

Introducción a Kibana

Por

Chabir Atrahouch Echarrouti

27 diciembre, 2015

20211

Twitter

Linkedin

Facebook

ReddIt

En este tutorial veremos una pequeña introducción a Kibana, una herramienta para
visualizar y explorar los datos que se encuentran indexados en ElasticSearch.

Índice de contenidos
 1. Introducción

 2. Motivación

 3. Entorno

 4. Creación de entorno

 5. Ejemplo práctico

 6. Conclusiones

 7. Referencias

1. Introducción

¿Qué es kibana?

Kibana 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. Kibana también es conocido por el stack ELK:

 Elasticsearch

 Logstash

 Kibana

Antes de seguir con el tutorial os recomendo que veáis primero los tutoriales
de Elasticsearch y Logstash realizados por Daniel Díaz Suárez y Rodrigo de Blas
García.
2. Motivación

El stack ELK (Elasticsearch , Logstash y Kibana) es una herramienta ideal para la


agregación de logs, visualización y análisis, aunque no está diseñado
específicamente para este propósito.

Individualmente, la instalación de Elasticsearch, Logstash y Kibana y configurarlos


para que se comuniquen entre sí, no es una tarea fácil.

Afortunadamente, con Docker y Docker Compose podemos crear nuestros


contenedores con el stack ELK de forma fácil

3. Entorno

El tutorial está escrito usando el siguiente entorno:

 Hardware: MacBook Pro 15′ (2.5 GHz Intel Core i7, 16GB DDR3
SDRAM)

 Sistema Operativo: Mac OS X Yosomite 10.10.5

 NVIDIA GeForce GT 750M 2048 MB

 Docker 1.9.0

 Docker Compose 1.5.0

 Kibana 4.1.2

 Logstash 2.0.0

 Elasticsearch 1.7.3
 curl 7.43.0

4. Creación del entorno

Como se ha comentado anteriomente vamos a crear nuestro entorno con Docker,


para ello vamos a crear nuestro docker-compose.yml donde iremos creando y
configurando las distintas herramientas que forman el stack ELK.

Todas la imagenes que vamos usar son las oficiales que nos proporciona Docker
Hub

docker-compose.yml
YAML

1elasticsearch:
2 image: elasticsearch:1.7.3
3 command: elasticsearch -Des.network.host=0.0.0.0
4 ports:
5 - "9200:9200"
6
7logstash:
8 image: logstash:2.0.0
9 volumes:
10 - ./logstash/conf:/conf
11 links:
12 - elasticsearch:elasticsearch
13 command: logstash -f /conf/logspout.conf
14expose:
15- "5000"
16- "5000/udp"
17
18kibana:
19 image: kibana:4.1.2
20 links:
21 - elasticsearch
22command: kibana -q
23 ports:
24 - "5601:5601"
logspout.conf
Shell

1input {
2 udp {
3 port => 5000
4 }
5}
6
7output {
8elasticsearch {
9 hosts => "elasticsearch:9200"
10 ssl => false
11 }
12}

Vamos analizar este docker-compose.yml para entender la configuración de las


distintas herramientas (ELK)

Elasticsearch

 Arrancamos elasticsearch con la opción de aceptar peticiones desde


cualquier IP.

 Exponemos el puerto 9200 para recibir registros desde logstash y enviar


registros a kibana.

Logstash

 Creamos una unidad para poner nuestra configuración.

 Creamos un link para poder ver el contenedor de elasticsearch.

 Arracamos logstash con la configuración del fichero logspout.conf.

 Exponemos el puerto 5000 tanto tcp y udp, para recibir los registro.
kibana

 Creamos un link para poder ver el contenedor de elasticsearch.

 Arracamos kibana en modo logging off.

 Exponemos el puerto 5601 para visualizar la herramienta por vía web.

La configuración de kibana es muy simple, solo indicamos donde se encuentra


elasticsearch, donde tiene más configuración logstash y donde tenemos que definir
los inputs y filters. Para este ejemplo vamos a escuchar todas las peticiones por el
puerto 5000 por UDP.

Para poder ver las funcionalidades de Kibana tenemos que alimentar nuestro
elasticsearch. Para ello vamos a usar los logs que genera Docker cuando arrancamos
un contenedor, es decir, coger todo lo que se escribe en stdout y stderr y se lo
enviamos a logstash.

Click en la imagen para ampliar:

Para poder enviar todo lo que se escriba por stdout y stderr de los contenedores de
Docker tenemos que añadir a nuestro docker-compose el contenedor de Logspout
que pertenece gliderlabs, en concreto el módulo logspout-logstash que, de forma
automática, se encargará de enviar todo lo que ocurre en los contenedores a
logstash.
docker-compose.yml
YAML

1logspout:
2 build: logspout/
3 links:
4 - logstash
5 volumes:
6 - /var/run/docker.sock:/tmp/docker.sock
7 environment:
8 - ROUTE_URIS=logstash://logstash:5000

Con esta configuración ya tenemos el stack ELK configurado, lo siguiente es


alimentar elasticsearch para poder usar Kibana y ver las principales funcionalidades
que nos ofrece.

Arrancamos nuestro stack (ELK) con el siguiente comando.

Shell

1docker-compose up

Click en la imagen para ampliar:


Abrimos otro terminal para crear contenedores para que escriba registros en
elasticsearch. Con el siguiente comando ejecutamos un contenedor que pinta por
consola hello world!

Shell

1docker run --rm --name test --hostname=test debian:jessie bash -c 'for


i in {0..5}; do echo $i hello world!; done'

Volvemos a ejecutar el anterior comando cambiando el name, hostname y el


mensaje.

Shell

1docker run --rm --name prueba --hostname=prueba debian:jessie bash -c


'for i in {0..5}; do echo $i Hola nundo!; done'
Con esto ya estemos un conjunto de datos para poder analizarlo y visualizarlo con
Kibana

Shell

1open http://`docker-machine ip dev`:5601

Donde «dev» es el nombre de la máquina virtual donde se está ejecutando Docker.

5. Ejemplo práctico

Antes de empezar a usar la herramienta vamos a describir las distintas secciones que
forman la interfaz:

 Discover: Pantalla que nos permite filtrar y buscar registros en un intervalo


específico.

 Visualize: Pantalla donde se pueden crear, modificar y ver sus propias


visualizaciones personalizadas(Gráficos, tablas, …).

 Dashboard: Pantalla donde se pueden crear, modificar y ver sus propios


cuadros de mando personalizados .

 Settings: Pantalla que permite cambiar la configuración por defecto o


patrones de índice.

Lo primero que tenemos que hacer cuando entramos en Kibana es definir el índice
que vamos a usar para visualizar los datos. En este caso solo tenemos el índice
logstash y solo tenemos un campo que es timestamp. Click en la imagen para
ampliar
Lo siguiente es visitar la pantalla de Discover para ver los registro que tenemos
guardados en elasticsearch. Click en la imagen para ampliar:
La pantalla Discover esta compuesta por:

 Search Bar: Utilice esta opción para buscar campos específicos y/o los
mensajes completos.

 Time Filter: Arriba a la derecha (icono del reloj). Utilice esta opción para
filtrar registros en base a varios intervalos de tiempo relativos y
absolutos.

 Field Selector: Izquierda, bajo la barra de búsqueda. Seleccione los


campos a modificar que se mostrarán en la vista Anotaciones.

 Date Histogram: Gráfico de barra debajo de la barra de búsqueda. Por


defecto, muestra el recuento de todos los registros, en función del tiempo
(eje x), acompañado por el filtro de búsqueda y el tiempo. Puede hacer
clic en las barras, o hacer clic y arrastrar para reducir el filtro de tiempo.

 Log View: Parte inferior derecha. Utilice esta opción para ver los mensajes
de registro individuales, y mostrar los datos de registro filtrados por los
campos. Si no se seleccionan los campos, se muestran los mensajes de
registro enteras.

Vamos a buscar los registros que en el campo message tengan parte el texto ‘hola
mundo’con la siguiente expresión:

Shell

1message: "Hola"

Click en la imagen para ampliar:


El número de registros que han encontrado son 6, que concide con el script que
hemos ejecutado anteriormente.

En las otras 2 pantallas (Visualize y Dashboard) os animo a que creéis vustras


propias gráficas y cuadros de mandos.

6. Conclusiones

Como hemos visto utilizando el stack ELK, tenemos una manera de recoger
(Logstash), guardar y de buscar (Elasticsearch), y visualizar y analizar (Kibana).

Un caso muy útil sería en la explotación de los logs de nuestras aplicaciones.

Espero que el tutorial os haya animado a usar (o al menos probar) este stack de
tecnologías.

Puedes descargar el ejemplo de este tutorial desde aquí


7. Referencias

 Kibana. elastic.

 Use kibana. Tim Roes.

 Tutorial kibana. digitalocean.

You might also like