Professional Documents
Culture Documents
Por
27 diciembre, 2015
20211
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?
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
3. Entorno
Hardware: MacBook Pro 15′ (2.5 GHz Intel Core i7, 16GB DDR3
SDRAM)
Docker 1.9.0
Kibana 4.1.2
Logstash 2.0.0
Elasticsearch 1.7.3
curl 7.43.0
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}
Elasticsearch
Logstash
Exponemos el puerto 5000 tanto tcp y udp, para recibir los registro.
kibana
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.
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
Shell
1docker-compose up
Shell
Shell
Shell
5. Ejemplo práctico
Antes de empezar a usar la herramienta vamos a describir las distintas secciones que
forman la interfaz:
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.
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"
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).
Espero que el tutorial os haya animado a usar (o al menos probar) este stack de
tecnologías.
Kibana. elastic.