Creación de un Dashboard en Kibana para monitorear logs

Creación de un Dashboard en Kibana para monitorear logs

Hola, me llamo Evgeny, soy el líder del equipo de B2B en Citymobil. Una de las tareas de nuestro equipo es mantener las integraciones para el pedido de taxis de los socios, y para garantizar un servicio estable siempre debemos entender qué está sucediendo en nuestros microservicios. Y para ello, necesitamos supervisar constantemente los registros.

En Citymobil, para trabajar con los registros utilizamos el stack ELK (ElasticSearch, Logstash, Kibana), y el volumen de datos que llega allí es enorme. Encontrar en esta masa de solicitudes problemas que pueden surgir después del despliegue de nuevo código es bastante complicado. Y para visualizar estos problemas, en Kibana hay una sección llamada Dashboard.

En Habr, hay bastantes artículos con ejemplos de cómo configurar el stack ELK para recibir y almacenar datos, pero no hay material relevante sobre la creación de un Dashboard. Por lo tanto, quiero mostrar cómo crear una representación visual de los datos en Kibana basada en los registros entrantes.

Configuración

Para que sea más claro, he creado una imagen de Docker con ELK y Filebeat. Y he colocado en el contenedor un pequeño programa programa en Go, que generará registros de prueba para nuestro ejemplo. No voy a describir en detalle la configuración de ELK, en Habr ya hay suficiente información sobre esto.

Clonamos el repositorio con la configuración docker-compose y ajustes de ELK, y lo iniciamos con el comando docker-compose up. Intencionalmente no añado la clave -d, para poder ver el proceso de funcionamiento del stack ELK.

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

Si todo está configurado correctamente, en los registros veremos una entrada (posiblemente no de inmediato, el proceso de inicio del contenedor con todo el stack puede tardar unos minutos):

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

En la dirección localhost:5061 debería abrirse Kibana.

Creación de un Dashboard en Kibana para monitorear logs
Creación de un Dashboard en Kibana para monitorear logs
Lo único que necesitamos configurar es crear un patrón de índice para Kibana con información sobre qué datos deben mostrarse. Para ello, realizaremos una solicitud curl o haremos una serie de acciones en la interfaz gráfica.

$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
    -H 'Content-Type: application/json'
    -H 'kbn-xsrf: true'
    -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

Creación de un patrón de índice a través de la interfaz gráfica
Para la configuración, seleccionamos en el menú de la izquierda la sección Discover, y llegamos a la página de creación del patrón de índice.

Creación de un Dashboard en Kibana para monitorear logs
Al hacer clic en el botón “Create index pattern”, llegamos a la página de creación del índice. En el campo “Index pattern name”, introducimos “logstash-*”. Si todo está configurado correctamente, Kibana mostrará los índices que cumplen con la regla en la parte inferior.

Creación de un Dashboard en Kibana para monitorear logs
En la siguiente página seleccionamos el campo clave con la marca de tiempo, en nuestro caso es @timestamp.

Creación de un Dashboard en Kibana para monitorear logs
Como resultado, aparecerá una página de configuración de índice, pero ahora no se requieren acciones adicionales de nuestra parte.

Creación de un Dashboard en Kibana para monitorear logs

Ahora podemos volver a la sección Discover, donde veremos los registros de logs.

Creación de un Dashboard en Kibana para monitorear logs

Tablero

En el menú de la izquierda, hacemos clic en la sección de creación de Dashboard y accedemos a la página correspondiente.

Creación de un Dashboard en Kibana para monitorear logs
Hacemos clic en «Crear nuevo dashboard» y llegamos a la página para agregar objetos al Dashboard.

Creación de un Dashboard en Kibana para monitorear logs
Hacemos clic en el botón «Crear nuevo», y el sistema nos pedirá elegir el tipo de visualización de datos. En Kibana hay una gran cantidad, pero vamos a considerar la creación de la representación gráfica «Vertical Bar» y la tabla «Data Table». Los otros tipos de visualización se configuran de manera similar. 
Creación de un Dashboard en Kibana para monitorear logs
Algunos de los objetos disponibles tienen etiquetas B y E, lo que significa que su formato es experimental o está en fase beta. Con el tiempo, el formato puede cambiar o desaparecer completamente de Kibana.

Barra Vertical

Como ejemplo, para «Vertical Bar» crearemos un histograma que muestra la relación entre estados de respuesta exitosos y no exitosos de nuestro servicio. Al finalizar la configuración, obtendremos el siguiente gráfico:

Creación de un Dashboard en Kibana para monitorear logs
Consideraremos como exitosos todos los pedidos con un estado de respuesta = 400.

Para crear el gráfico «Vertical Bar», necesitamos seleccionar la fuente de datos. Elegimos el Patron de Índice que creamos anteriormente.

Creación de un Dashboard en Kibana para monitorear logs
Por defecto, después de seleccionar la fuente de datos, aparecerá un solo gráfico continuo. Vamos a configurarlo.

Creación de un Dashboard en Kibana para monitorear logs
En el bloque «Buckets», hacemos clic en el botón «Agregar», elegimos «Eje X» y configuramos el eje X. Lo ajustaremos para que muestre las marcas de tiempo de llegada de los registros en el log. En el campo «Aggregación», seleccionamos «Date Histogram» y, en «Campo», elegimos «@timestamp», que indica el campo temporal. Dejamos el «Intervalo mínimo» en «Auto», y se ajustará automáticamente a nuestra visualización. 

Creación de un Dashboard en Kibana para monitorear logs
Al hacer clic en el botón «Actualizar», veremos un gráfico con la cantidad de solicitudes cada 30 segundos.

Creación de un Dashboard en Kibana para monitorear logs
Ahora configuraremos las columnas en el eje Y. Actualmente, se muestra el número total de solicitudes en el intervalo de tiempo seleccionado.

Creación de un Dashboard en Kibana para monitorear logs
Cambiaremos el valor de «Aggregación» a «Sum Bucket», lo que nos permitirá combinar los datos de las solicitudes exitosas y no exitosas. En el bloque Bucket -> Aggregation, elegimos la agregación por «Filters» y establecemos el filtrado por «statusCode >= 400». En el campo «Etiqueta personalizada», indicamos nuestro nombre para que sea más claro en la leyenda del gráfico y en la lista general.

Creación de un Dashboard en Kibana para monitorear logs
Al hacer clic en el botón «Actualizar» debajo del bloque de configuración, obtendremos un gráfico con las solicitudes problemáticas.

Creación de un Dashboard en Kibana para monitorear logs
Si haces clic en el círculo junto a la leyenda, se abrirá una ventana donde podrás cambiar el color de las columnas.

Creación de un Dashboard en Kibana para monitorear logs
Ahora añadiremos al gráfico los datos sobre las solicitudes exitosas. En la sección «Métricas», hacemos clic en el botón «Agregar» y seleccionamos «Eje Y».

Creación de un Dashboard en Kibana para monitorear logs
En la métrica creada, realizamos las mismas configuraciones que para las solicitudes erróneas. Solo que en el filtro indicamos «statusCode < 400».

Creación de un Dashboard en Kibana para monitorear logs
Al cambiar el color de la nueva columna, obtendremos una representación de la relación entre solicitudes problemáticas y exitosas.

Creación de un Dashboard en Kibana para monitorear logs
Al hacer clic en el botón «Guardar» en la parte superior de la pantalla e indicar un nombre, veremos el primer gráfico en el Dashboard.

Creación de un Dashboard en Kibana para monitorear logs

Tabla de Datos

Ahora veamos la representación tabular «Tabla de Datos». Crearemos una tabla con la lista de todas las URL a las que se hicieron solicitudes y el número de esas solicitudes. Al igual que en el ejemplo con la Barra Vertical, primero seleccionamos la fuente de datos.

Creación de un Dashboard en Kibana para monitorear logs
Después de esto, en la pantalla se mostrará una tabla con una columna que muestra el número total de solicitudes durante el intervalo de tiempo seleccionado.

Creación de un Dashboard en Kibana para monitorear logs
Solo modificaremos el bloque «Buckets». Hacemos clic en el botón «Agregar» y seleccionamos «Dividir filas».

Creación de un Dashboard en Kibana para monitorear logs
En el campo «Agregación» seleccionamos «Términos». Y en el campo que aparece, elegimos «url.keyword».

Creación de un Dashboard en Kibana para monitorear logs
Al indicar en el campo «Etiqueta personalizada» el valor «Url» y hacer clic en «Actualizar», obtendremos la tabla deseada con el número de solicitudes para cada URL durante el intervalo de tiempo seleccionado.

Creación de un Dashboard en Kibana para monitorear logs
En la parte superior de la pantalla nuevamente haremos clic en el botón «Guardar» e indicaremos el nombre de la tabla, por ejemplo, Urls. Regresaremos al Dashboard y veremos ambas representaciones creadas.

Creación de un Dashboard en Kibana para monitorear logs

Trabajando con el Dashboard

Al crear un Dashboard, en las configuraciones de los objetos de visualización, solo establecimos los parámetros básicos de vista. No tiene sentido indicar en los objetos los datos para los filtros, por ejemplo, «rango de fechas», «filtrado por user agent», «filtrado por país de solicitud», etc. Es mucho más conveniente especificar el intervalo de tiempo deseado o establecer el filtrado necesario en el panel de solicitudes que se encuentra encima de los objetos.

Creación de un Dashboard en Kibana para monitorear logs
Los filtros añadidos en este panel se aplicarán a todo el Dashboard, y todos los objetos de visualización se reestructurarán de acuerdo con los datos filtrados actuales.

Conclusión

Kibana es una poderosa herramienta que permite visualizar cualquier dato de manera conveniente. He tratado de mostrar la configuración de dos tipos principales de visualización. Pero otros tipos se configuran de manera similar. Y la abundancia de configuraciones que dejé «fuera de cámara» te permitirá personalizar gráficos de manera muy flexible según tus necesidades.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster