Creación de un tablero en Kibana para monitorear registros

Creación de un tablero en Kibana para monitorear registros

Hola, mi nombre es Eugene, soy un líder de equipo B2B en Citymobil. Una de las tareas de nuestro equipo es respaldar las integraciones para pedir un taxi a los socios y, para garantizar un servicio estable, siempre debemos comprender lo que sucede en nuestros microservicios. Y para esto necesita monitorear constantemente los registros.

En Citymobil, usamos la pila ELK (ElasticSearch, Logstash, Kibana) para trabajar con registros, y la cantidad de datos que llegan allí es enorme. Encontrar problemas en esta masa de solicitudes que pueden aparecer después de la implementación de un nuevo código es bastante difícil. Y para su identificación visual, Kibana cuenta con una sección de Dashboard.

Hay bastantes artículos sobre Habré con ejemplos de cómo configurar una pila ELK para recibir y almacenar datos, pero no hay materiales relevantes sobre la creación de un Tablero. Por lo tanto, quiero mostrar cómo crear una representación visual de datos basada en registros entrantes en Kibana.

Ajuste

Para que quede más claro, creé una imagen de Docker con ELK y Filebeat. Y se coloca en un recipiente un pequeño программу en Go, que para nuestro ejemplo generará registros de prueba. No describiré en detalle la configuración de ELK, hay suficiente escrito al respecto en Habré.

Clonar el repositorio de configuración docker-compose y configuración ELK, y ejecútelo con el comando docker-compose up. Intencionalmente no agregar una clave -dpara ver el progreso de la pila ELK.

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

Si todo está configurado correctamente, veremos una entrada en los registros (quizás no de inmediato, el proceso de lanzamiento de un contenedor con toda la pila puede demorar varios 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 localhost:5061 Kibana debería abrirse.

Creación de un tablero en Kibana para monitorear registros
Creación de un tablero en Kibana para monitorear registros
Lo único que necesitamos configurar es crear un patrón de índice para Kibana con información sobre qué datos mostrar. Para ello ejecutaremos una petición curl o realizaremos 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 GUI
Para configurar, seleccione la sección Descubrir en el menú de la izquierda y acceda a la página de creación de patrones de Índice.

Creación de un tablero en Kibana para monitorear registros
Al hacer clic en el botón "Crear patrón de índice", accedemos a la página de creación de índice. En el campo "Nombre del patrón de índice", ingrese "logstash-*". Si todo está configurado correctamente, debajo de Kibana se mostrarán los índices que se incluyen en la regla.

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

Creación de un tablero en Kibana para monitorear registros
Esto abrirá la página de configuración del índice, pero no se requiere ninguna otra acción de nuestra parte en este momento.

Creación de un tablero en Kibana para monitorear registros

Ahora podemos ir de nuevo a la sección Descubrir, donde veremos las entradas de registro.

Creación de un tablero en Kibana para monitorear registros

Panel De Control

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

Creación de un tablero en Kibana para monitorear registros
Haga clic en "Crear nuevo tablero" y acceda a la página para agregar objetos al Tablero.

Creación de un tablero en Kibana para monitorear registros
Haga clic en el botón "Crear nuevo" y el sistema le pedirá que seleccione el tipo de visualización de datos. Kibana tiene una gran cantidad de ellos, pero veremos cómo crear una representación gráfica de la "Barra vertical" y una "Tabla de datos" tabular. Otros tipos de presentación se configuran de manera similar. 
Creación de un tablero en Kibana para monitorear registros
Algunos objetos disponibles están etiquetados como B y E, lo que significa que el formato es experimental o está en pruebas beta. Con el tiempo, el formato puede cambiar o desaparecer por completo de Kibana.

Barra vertical

Para el ejemplo de la "Barra vertical", creemos un histograma de la proporción de estados de respuesta exitosos y no exitosos de nuestro servicio. Al final de la configuración, obtenemos el siguiente gráfico:

Creación de un tablero en Kibana para monitorear registros
Clasificaremos todas las solicitudes con un estado de respuesta < 400 como exitosas y >= 400 como problemáticas.

Para crear un gráfico de "barra vertical", debemos seleccionar una fuente de datos. Seleccione el patrón de índice que creamos anteriormente.

Creación de un tablero en Kibana para monitorear registros
De forma predeterminada, aparecerá un único gráfico sólido después de seleccionar una fuente de datos. Vamos a configurarlo.

Creación de un tablero en Kibana para monitorear registros
En el bloque "Cubos", presione el botón "Agregar", seleccione "X-asis" y configure el eje X. Dejemos a un lado las marcas de tiempo para la recepción de entradas en el registro. En el campo "Agregación", seleccione "Histograma de fecha", y en el "Campo" seleccione "@timestamp", indicando el campo de tiempo. Dejemos "Intervalo mínimo" en el estado "Auto" y se ajustará automáticamente a nuestra pantalla. 

Creación de un tablero en Kibana para monitorear registros
Al hacer clic en el botón "Actualizar", veremos un gráfico con el número de solicitudes cada 30 segundos.

Creación de un tablero en Kibana para monitorear registros
Ahora configuremos las columnas a lo largo del eje Y. Ahora estamos mostrando el número total de solicitudes en el intervalo de tiempo seleccionado.

Creación de un tablero en Kibana para monitorear registros
Cambiemos el valor de "Agregación" a "Sum Bucket", lo que nos permitirá combinar datos para solicitudes exitosas y no exitosas. En el bloque Cubo -> Agregación, seleccione la agregación por "Filtros" y configure el filtrado por "statusCode >= 400". Y en el campo "Etiqueta personalizada", indicamos nuestro nombre del indicador para una visualización más comprensible en la leyenda del gráfico y en la lista general.

Creación de un tablero en Kibana para monitorear registros
Al hacer clic en el botón "Actualizar" debajo del bloque de configuración, obtendremos un gráfico con solicitudes de problemas.

Creación de un tablero en Kibana para monitorear registros
Si hace clic en el círculo al lado de la leyenda, aparecerá una ventana en la que puede cambiar el color de las columnas.

Creación de un tablero en Kibana para monitorear registros
Ahora agreguemos datos sobre solicitudes exitosas al gráfico. En la sección "Métricas", haga clic en el botón "Agregar" y seleccione "Eje Y".

Creación de un tablero en Kibana para monitorear registros
En la métrica creada, hacemos la misma configuración que para las solicitudes erróneas. Solo en el filtro especificamos "statusCode < 400".

Creación de un tablero en Kibana para monitorear registros
Al cambiar el color de la nueva columna, obtenemos una visualización de la proporción de solicitudes exitosas y problemáticas.

Creación de un tablero en Kibana para monitorear registros
Al hacer clic en el botón "Guardar" en la parte superior de la pantalla y especificar el nombre, veremos el primer gráfico en el Tablero.

Creación de un tablero en Kibana para monitorear registros

Tabla de Datos

Ahora considere la vista tabular "Tabla de datos". Vamos a crear una tabla con una lista de todas las URL que se solicitaron y el número de esas solicitudes. Al igual que con el ejemplo de la barra vertical, primero seleccionamos una fuente de datos.

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

Creación de un tablero en Kibana para monitorear registros
Solo cambiaremos el bloque "Cubos". Haga clic en el botón "Agregar" y seleccione "Dividir filas".

Creación de un tablero en Kibana para monitorear registros
En el campo "Agregación", seleccione "Términos". Y en el campo que aparece "Campo" seleccione "url.keyword".

Creación de un tablero en Kibana para monitorear registros
Especificando el valor de "Url" en el campo "Etiqueta personalizada" y haciendo clic en "Actualizar", obtendremos la tabla deseada con el número de solicitudes de cada una de las URL para el período de tiempo seleccionado.

Creación de un tablero en Kibana para monitorear registros
En la parte superior de la pantalla, haga clic en el botón "Guardar" nuevamente y especifique el nombre de la tabla, por ejemplo, Urls. Volvamos al Tablero y veamos ambas vistas creadas.

Creación de un tablero en Kibana para monitorear registros

Trabajar con el panel

Al crear el Tablero, configuramos solo los parámetros de la vista principal en la configuración del objeto de visualización. No tiene sentido especificar datos para filtros en objetos, por ejemplo, "rango de fechas", "filtrado por agente de usuario", "filtrado por país de solicitud", etc. Es mucho más conveniente especificar el período de tiempo deseado o establecer el filtrado necesario en el panel de consulta, que se encuentra sobre los objetos.

Creación de un tablero en Kibana para monitorear registros
Los filtros agregados en este panel se aplicarán a todo el Tablero y todos los objetos de visualización se reconstruirán de acuerdo con los datos filtrados reales.

Conclusión

Kibana es una poderosa herramienta que le permite visualizar cualquier dato de manera conveniente. Traté de mostrar la configuración de los dos tipos principales de pantalla. Pero otros tipos se configuran de manera similar. Y la gran cantidad de configuraciones que dejé "detrás de escena" le permitirán personalizar los gráficos de manera muy flexible para satisfacer sus necesidades.

Fuente: habr.com

Añadir un comentario