Monitoreo de componentes ELK con Metricbeat

El monitoreo de sistemas en producción requiere una visión clara del estado de los servicios críticos. En entornos basados en Elastic Stack (ELK), donde se procesan y analizan grandes volúmenes de logs, es fundamental asegurar que cada componente —Elasticsearch, Kibana y Logstash— funcione de manera óptima. Esta guía muestra cómo implementar un sistema de supervisión integrado usando Metricbeat para recopilar métricas de rendimiento y salud de cada componente del stack.

Arquitectura general

La arquitectura típica incluye múltiples instancias de Metricbeat instaladas en servidores donde corren los servicios ELK. Cada instancia recolecta métricas a través de endpoints HTTP expuestos por los componentes, luego envía estos datos a Elasticsearch para su almacenamiento y análisis. Finalmente, Kibana permite visualizar las métricas en paneles interactivos, facilitando la detección temprana de fallos o cuellos de botella.

Instalación y configuración de Metricbeat

Descarga Metricbeat desde el sitio oficial de Elastic:

https://www.elastic.co/cn/downloads/past-releases#metricbeat

Recopilación de métricas de Elasticsearch

Activa el módulo específico para Elasticsearch:

./metricbeat modules enable elasticsearch-xpack

Por defecto, Metricbeat intentará conectarse a http://localhost:9200. Si el nodo está en otra ubicación, actualiza el archivo modules.d/elasticsearch-xpack.yml para incluir el host correcto en la sección hosts.

Supervisión de Kibana

Habilita el módulo de Kibana:

./metricbeat modules enable kibana-xpack

Este módulo por defecto apunta a http://localhost:5601. Ajusta el valor de hosts en modules.d/kibana-xpack.yml si el servicio no está en el localhost.

Monitoreo de Logstash

Activar el módulo correspondiente:

./metricbeat modules enable logstash-xpack

Los datos se obtienen por defecto desde http://localhost:9600. Modifica modules.d/logstash-xpack.yml para ajustar la dirección si es necesario.

Supervisión de Beats (como Filebeat)

Para que Metricbeat pueda monitorear otros Beats, primero deben exponer un endpoint HTTP.

Configuración del endpoint HTTP en Filebeat

Agrega al archivo filebeat.yml:

http:
 enabled: true
 host: 0.0.0.0
 port: 5066

Habilitar el módulo Beat en Metricbeat

./metricbeat modules enable beat-xpack

El módulo por defecto accede a http://localhost:5066. Cambia el valor de hosts en modules.d/beat-xpack.yml si el Beat está en otro servidor o puerto.

Configuración de salida de datos

Define el destino donde Metricbeat enviará las métricas. Edita metricbeat.yml:

output.elasticsearch:
 hosts: ["http://localhost:9200"]
 # protocol: "https"
 # username: "elastic"
 # password: "changeme"

Reemplaza los valores según tu entorno real, especialmente si usas autenticación o HTTPS.

Iniciar Metricbeat

./metricbeat -e

El flag -e activa el registro detallado en consola, útil durante pruebas.

Recopilación de logs de Elasticsearch mediante Filebeat

Además de métricas, es clave monitorizar los logs internos de Elasticsearch para detectar errores, advertencias o comportamientos inusuales.

Habilitar el módulo Elasticsearch en Filebeat

./filebeat modules enable elasticsearch

Configurar rutas de logs

Edita modules.d/elasticsearch.yml:

- module: elasticsearch
 server:
   enabled: true
   var.paths:
     - /app/elk/elasticsearch/logs/*_server.json

 gc:
   enabled: true
   var.paths:
     - /app/elk/elasticsearch/logs/gc.log.[0-9]*
     - /app/elk/elasticsearch/logs/gc.log

 audit:
   enabled: true
   var.paths:
     - /app/elk/elasticsearch/logs/*_audit.json

 slowlog:
   enabled: true
   var.paths:
     - /app/elk/elasticsearch/logs/*_index_search_slowlog.json
     - /app/elk/elasticsearch/logs/*_index_indexing_slowlog.json

 deprecation:
   enabled: true
   var.paths:
     - /app/elk/elasticsearch/logs/*_deprecation.json

Asegúrate de ajustar las rutas de archivos según la estructura de tus directorios.

Configurar salida a Elasticsearch

En filebeat.yml:

output.elasticsearch:
 hosts: ["localhost:9200"]
 # protocol: "https"
 # username: "elastic"
 # password: "changeme"

Iniciar Filebeat

./filebeat -c filebeat.yml -e

Visualización en Kibana

Accede a Kibana y navega hasta el menú Stack Monitoring. Allí podrás ver gráficos en tiempo real sobre uso de CPU, memoria, latencia de búsqueda, cola de eventos, entre otros indicadores clave para cada componente del stack.

Etiquetas: Elasticsearch Kibana Logstash Metricbeat Filebeat

Publicado el 9-14 16:09