Kibana - Introducción a Elk Stack
Kibana es una herramienta de visualización de código abierto que se utiliza principalmente para analizar un gran volumen de registros en forma de gráfico de líneas, gráfico de barras, gráficos circulares, mapas de calor, etc. Kibana funciona en sincronía con Elasticsearch y Logstash, que juntos forman el llamado ELK apilar.
ELK son las siglas de Elasticsearch, Logstash y Kibana. ELK es una de las plataformas de gestión de registros más populares que se utiliza en todo el mundo para el análisis de registros.
En la pila ELK -
Logstashextrae los datos de registro u otros eventos de diferentes fuentes de entrada. Procesa los eventos y luego los almacena en Elasticsearch.
Kibana es una herramienta de visualización, que accede a los registros de Elasticsearch y puede mostrar al usuario en forma de gráfico de líneas, gráfico de barras, gráficos circulares, etc.
En este tutorial, trabajaremos en estrecha colaboración con Kibana y Elasticsearch y visualizaremos los datos en diferentes formas.
En este capítulo, entendamos cómo trabajar con ELK stack juntos. Además, también verá cómo:
- Cargue datos CSV de Logstash a Elasticsearch.
- Utilice índices de Elasticsearch en Kibana.
Cargar datos CSV de Logstash a Elasticsearch
Usaremos datos CSV para cargar datos usando Logstash a Elasticsearch. Para trabajar en el análisis de datos, podemos obtener datos del sitio web kaggle.com. El sitio de Kaggle.com tiene todo tipo de datos cargados y los usuarios pueden usarlo para trabajar en el análisis de datos.
Hemos tomado los datos de countries.csv de aquí: https://www.kaggle.com/fernandol/countries-of-the-world. Puede descargar el archivo csv y usarlo.
El archivo csv que vamos a utilizar tiene los siguientes detalles.
Nombre de archivo: countriesdata.csv
Columnas: "País", "Región", "Población", "Área"
También puede crear un archivo csv ficticio y usarlo. Usaremos logstash para volcar estos datos de countriesdata.csv a elasticsearch.
Inicie elasticsearch y Kibana en su terminal y manténgalo funcionando. Tenemos que crear el archivo de configuración para logstash que tendrá detalles sobre las columnas del archivo CSV y también otros detalles como se muestra en el archivo logstash-config que se muestra a continuación:
input {
file {
path => "C:/kibanaproject/countriesdata.csv"
start_position => "beginning"
sincedb_path => "NUL"
}
}
filter {
csv {
separator => ","
columns => ["Country","Region","Population","Area"]
}
mutate {convert => ["Population", "integer"]}
mutate {convert => ["Area", "integer"]}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
=> "countriesdata-%{+dd.MM.YYYY}"
}
stdout {codec => json_lines }
}
En el archivo de configuración, hemos creado 3 componentes:
Entrada
Necesitamos especificar la ruta del archivo de entrada, que en nuestro caso es un archivo csv. La ruta donde se almacena el archivo csv se proporciona al campo de ruta.
Filtrar
Tendrá el componente csv con separador usado que en nuestro caso es coma, y también las columnas disponibles para nuestro archivo csv. Como logstash considera todos los datos que ingresan como una cadena, en caso de que queramos que alguna columna se use como entero, se debe especificar el mismo valor flotante usando mutate como se muestra arriba.
Salida
Para la salida, necesitamos especificar dónde debemos colocar los datos. Aquí, en nuestro caso, estamos usando elasticsearch. Los datos que se deben proporcionar a elasticsearch son los hosts donde se está ejecutando, lo hemos mencionado como localhost. El siguiente campo en es el índice que le hemos dado el nombre de países-fecha actual. Tenemos que usar el mismo índice en Kibana una vez que los datos se actualizan en Elasticsearch.
Guarde el archivo de configuración anterior como logstash_countries.config . Tenga en cuenta que debemos proporcionar la ruta de esta configuración al comando logstash en el siguiente paso.
Para cargar los datos del archivo csv a elasticsearch, necesitamos iniciar el servidor de elasticsearch -
Ahora, corre http://localhost:9200 en el navegador para confirmar si elasticsearch se está ejecutando correctamente.
Tenemos elasticsearch en ejecución. Ahora vaya a la ruta donde está instalado logstash y ejecute el siguiente comando para cargar los datos en elasticsearch.
> logstash -f logstash_countries.conf
La pantalla anterior muestra la carga de datos desde el archivo CSV a Elasticsearch. Para saber si tenemos el índice creado en Elasticsearch podemos verificar lo mismo de la siguiente manera:
Podemos ver el índice countriesdata-28.12.2018 creado como se muestra arriba.
El detalle del índice - países-28.12.2018 es el siguiente -
Tenga en cuenta que los detalles del mapeo con propiedades se crean cuando los datos se cargan desde logstash a elasticsearch.
Usar datos de Elasticsearch en Kibana
Actualmente, tenemos Kibana ejecutándose en localhost, puerto 5601 - http://localhost:5601. Aquí se muestra la interfaz de usuario de Kibana:
Tenga en cuenta que ya tenemos Kibana conectado a Elasticsearch y deberíamos poder ver index :countries-28.12.2018 dentro de Kibana.
En la interfaz de usuario de Kibana, haga clic en la opción Menú de administración en el lado izquierdo -
Ahora, haga clic en Administración de índices -
Los índices presentes en Elasticsearch se muestran en la gestión de índices. El índice que vamos a utilizar en Kibana es countriesdata-28.12.2018.
Por lo tanto, como ya tenemos el índice de búsqueda elástica en Kibana, a continuación entenderemos cómo usar el índice en Kibana para visualizar datos en forma de gráfico circular, gráfico de barras, gráfico de líneas, etc.