Pon un kibana en tu vida
Mar 22, 2019
Nunca ha sido más facil añadir soporte a tu aplicativo para que funcione con los productos de Elastic Logstash y Kibana
El otro día, para un proyecto tenía que añadir soporte a Logstash, elasticsearch y kibana.
¿Como lo hacemos? Lo más sencillo, para tener un entorno de desarrollo que tenga logstash, elasticsearch y kibana (de ahora en adelante ELK) sería poner a trabajar los 3 y apuntar desde nuestro aplicativo, para configurar un entorno de esas características tenemos varias opciones:
- Instalarlo en local (no sé si hay paquetes para windows, algo así como un lamp).
- Contratar la versión SASS (hay una trial de 30 días…).
- Con una Maquina virtual tipo Bitnami (estos ultimos tienen hasta certificadas para cloud).
- Tirar de contenedores.
Si ya has trabajado con contenedores, lo que te voy a dejar es una simple receta, que puedes añadir a tu docker-compose.yml
, o generarlo como docker-compose.override.yml
, con esto, podrás poner en marcha todo el stack, solo cuando lo necesites
version: '3.4'
services:
elasticsearch:
build:
context: elk/elasticsearch/
volumes:
- ./elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
ports:
- "9200:9200"
- "9300:9300"
environment:
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
logstash:
build:
context: elk/logstash/
volumes:
- ./elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro
- ./elk/logstash/pipeline:/usr/share/logstash/pipeline:ro
ports:
- "8080:8080"
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
depends_on:
- elasticsearch
kibana:
build:
context: elk/kibana/
volumes:
- ./elk/kibana/config/:/usr/share/kibana/config:ro
ports:
- "5601:5601"
depends_on:
- elasticsearch
Tienes el ejemplo completo aquí, en este ejemplo está hasta la configuración de un indice, y su split filter hecho para que puedas, por ejemplo desde .net (con serilog) escribir contra logstash (con el sink de http) y funcione.
Una vez montado, si vas a trabajar en .net o netcore, te recomiendo que utilices serilog y el sink de http, apuntando a la url de http://logstash:9200
si tu aplicativo está en el docker-compose
, en el caso de que todo esté en tu maquina de development, lo hagas contra http://localhost:9200
El index-pattern configurado en el ejemplo se llama miindicemolon- si necesitas cambiarlo, lo puedes hacer aqui
Share