8.1 Configuración del índice para logs de Docker
Para la demo, creé una imagen de Docker con ELK y Filebeat, que incluye un programa de prueba para generar logs. En este ejemplo, nos enfocaremos en configurar el índice para los logs de Docker en Kibana.
Paso 1: Clonar el repositorio e iniciar el stack ELK
Descarga el repositorio con las configuraciones de Docker Compose para el stack ELK e inícialo:
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker compose up
Para facilitar, la clave -d
se omitió para que puedas ver el proceso de inicio del stack ELK. El inicio puede tomar algunos minutos. Después de un inicio exitoso, debería aparecer el siguiente registro en los logs:
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],
"pid":6,"message":"http server running at http://0:5601"}
Paso 2: Acceso a Kibana
Abre un navegador web y ve a http://localhost:5601.

Paso 3: Configuración del índice para logs
Selecciona en el menú izquierdo de Kibana la sección Discover para ir a la página de creación del índice.

Paso 4: Crear un nuevo índice
Haz clic en el botón Create index pattern para abrir el formulario de configuración. En el campo Index pattern name introduce logstash-*
. Si la configuración es correcta, Kibana mostrará los índices que coinciden con la regla.

Paso 5: Selección del campo temporal
En la siguiente página selecciona el campo clave con la marca de tiempo — @timestamp
.

Paso 6: Comprobar el índice
Después de completar la configuración, verás la página de configuración del índice. Por ahora, no se requieren pasos adicionales.

Paso 7: Ver logs
Vuelve a la sección Discover, donde se mostrarán los registros de los contenedores Docker.

8.2 Creación de dashboards para la visualización de logs
Paso 1. Crea dashboards para visualizar logs
En el menú de la izquierda, hacemos clic en la sección "Dashboard", eso nos llevará a la página donde se crean los dashboards.

Paso 2. Tocamos en «Create new dashboard», y nos llevan a una pantalla donde ya se pueden agregar objetos al Dashboard.

Paso 3. Hacemos clic en el botón «Create new», y Kibana pedirá seleccionar cómo mostrar los datos. Hay un montón de opciones, pero para el ejemplo veamos dos: gráficos al estilo «Vertical Bar» y una representación tabular «Data Table». Todo lo demás se configura de manera similar.

8.3 Histograma de logs
Vamos a crear un histograma tipo «Vertical Bar» que muestre la relación entre solicitudes exitosas y no exitosas del servicio. Después de configurarlo, tendremos algo como esto:

Las solicitudes exitosas son aquellas con un código de respuesta < 400, todas las >= 400 las consideramos problemáticas.
Primero tienes que elegir la fuente de datos para el gráfico. Usamos el Index Pattern que creamos antes.

Después de seleccionar la fuente, por defecto aparecerá un gráfico común. Vamos a configurarlo.

En la sección «Buckets» haz clic en «Add», selecciona «X-axis» y configura el eje X. Aquí pondremos marcas de tiempo. En el campo «Aggregation» elige «Date Histogram», y en «Field» especifica «@timestamp». El campo «Minimum interval» se puede dejar en «Auto».

Haz clic en «Update», y en el gráfico se mostrará la cantidad de solicitudes cada 30 segundos.

Ahora configuramos las columnas en el eje Y. Actualmente muestra el número total de solicitudes en un intervalo de tiempo. Cambiemos la agregación a «Sum Bucket» para agregar solicitudes exitosas y problemáticas. En la sección Bucket → Aggregation seleccionamos «Filters» y configuramos el filtro: «statusCode >= 400». En el campo «Custom label» escribe un nombre claro para la métrica.

Haz clic en «Update», y el gráfico mostrará solo las solicitudes problemáticas.

¿Quieres cambiar el color de las columnas? Haz clic en el círculo de la leyenda del gráfico, y aparecerá una ventana para seleccionar el color.

Ahora agregaremos datos sobre solicitudes exitosas. En la sección «Metrics» haz clic en «Add» y selecciona «Y-axis». Configúralo de manera similar, pero para el filtro especifica «statusCode < 400».

Cambia el color para la nueva columna, y obtendremos una visualización de la relación entre las solicitudes exitosas y las problemáticas.

No olvides guardar el gráfico haciendo clic en «Save» en la parte superior de la pantalla. Escribe un nombre, y aparecerá en el Dashboard.

8.4 Tabla de logs
Vamos a crear una tabla «Data Table» para ver la lista de todas las URL a las que se hicieron solicitudes y su cantidad. Empezamos, como en el caso de Vertical Bar, eligiendo la fuente de datos.

Después de elegir la fuente, en la pantalla aparecerá una tabla con una sola columna, donde se muestra el número total de solicitudes para el intervalo de tiempo seleccionado.

Ahora configuramos la tabla. Vamos al bloque «Buckets», hacemos clic en «Add» y elegimos «Split rows».

En el campo que aparece «Aggregation» seleccionamos «Terms», y en «Field» indicamos «url.keyword».

En el campo «Custom label» introducimos un nombre claro, por ejemplo «Url». Luego hacemos clic en «Update» — y nuestra tabla está lista. En ella se muestra la cantidad de solicitudes a cada URL para el intervalo de tiempo seleccionado.

Para guardar la tabla, hacemos clic en «Save» en la parte superior de la pantalla, indicamos un nombre (por ejemplo, «Urls»), y volvemos al Dashboard. Ahora vemos ambas visualizaciones que hemos creado.

GO TO FULL VERSION