Coleta de métricas do Windows no Elasticsearch com o Metricbeat e visualização com o Grafana

Neste post, veremos outro dos componentes maravilhosos do Elasticsearch, dentro dos pacotes Beats também encontraremos um utilitário que nos ajudará a processar e coletar métricas de nossos computadores Windows ou Linux, conhecido como Metricbeat. Veremos como exportar essas métricas para o Logstash para processá-las e armazená-las no Elasticsearch para depois visualizá-las com Kibana ou Grafana!

 

 

Nada mau, debemos dejar el agente liviano Metricbeat instalado y corriendo en las máquinas de las que queremos absorber sus métricas, sea un equipo con SO Windows, Linux o Mac OS. Descargamos Metricbeat de https://www.elastic.co/downloads/beats/metricbeat, lo descomprimiremos y , (Por exemplo) lo dejamos en ‘ C:\Program Files\metricbeat\’. Tendremos su fichero de configuración llamado ‘metricbeat.yml’ y otro fichero de referencia con todas las opciones que podremos utilizar, llamado ‘metricbeat.reference.yml’. En este ejemplo veremos sobre una máquina Windows cómo recopilar métricas básicas como son la CPU, Memória, Disco o Red, pero que opcionalmente si corre algún servicio interesante le habilitaremos el módulo correspondiente para recopilar también dichos datos. Descargaremos Metricbeat, lo configuraremos y lo instalaremos como servicio.

 

Configurando Metricbeat,

Poço, antes de comenzar a tocar el fichero de configuración de Metricbeat; en la carpeta ‘modules.dtendremos todos los módulos adicionales de los que podremos además obtener métricas, sean servicios de servicios web, bases de datos, plataformas virtuales, como por ejemplo apache, mongodb, Mysql, vsphere, PostgreSQLEn cada módulo podremos habilitar que se obtengan más o menos métricas.

Neste exemplo, en ‘system.ymlveremos que redireccionará cada 10 segundos las métricas de CPU, Memória, Red o información de los procesos entre otros, podremos comentar o descomentar lo que necesitemos, podremos definir este módulo o el que nos interese especificando la info que nos interese recopilar. Más adelante veremos como habilitar los módulos que nos interese, ya que si no tendrán la extensión ‘.disabled’.

[Código-fonte]- módulo: system
period: 10s
metricsets:
cpu
#- load
– memória
– rede
process
process_summary
#- núcleo
#- diskio
#- socket
process.include_top_n:
by_cpu: 5 # include top 5 processes by CPU
by_memory: 5 # include top 5 processes by memory

– módulo: system
period: 1m
metricsets:
filesystem
fsstat
processors:
drop_event.when.regexp:
system.filesystem.mount_point: ‘^/(sys|cgroup|proc|dev|etc|anfitrião|Lib)($|/)’

– módulo: system
period: 15m
metricsets:
– Tempo de atividade[/Código-fonte]

 

Depois, en el fichero de configuración ‘metricbeat.ymlrealizaremos el resto de configuración, en la sección de ===== General ===== podremos añadir tags o campos adicionales por si nos interesaría asociar este Metricbeat del equipo a distintas palabras claves, para que possam ser usados em diferentes pesquisas, como indicar se é um servidor, é um banco de dados ou servidor web, ou ter IIS, su SO…

[Código-fonte]Tags: ["Servidor", "Windows 2016 R2", "OS-DC-01"]

Campos:
globo_environment: Produção[/Código-fonte]

 

Na seção Saída, podremos enviar directamente a Elasticsearch los datos, pero como en otros posts, particularmente prefiero enviar los datos a Logstash para tratarlos. Así que comentaremos toda la parte de Output contra Elasticsearch y configuramos contra el servidor de Logstash y su puerto, que em un anterior documento vimos en la parte de “Configurando o Logstash” el fichero a crear. Lo dicho tocamos el output dejando algo así:

[Código-fonte]#——— Saída do Logstash ———
saída.logstash:
# Os anfitriões do Logstash
#Hosts: ["localhost:5044"]
Hosts: ["DIRECCION_IP_LOGSTASH:5044"][/Código-fonte]

 

Una vez configurado Metricbeat, para instalar Metricbeat como un servicio ejecutamos:

[Código-fonte].\install-service-metricbeat.ps1[/Código-fonte]

 

E o que eu disse, podemos habilitar módulos especificos si queremos monitorización adicional en nuestra máquina, en este servidor dispongo de un MySQL y un Apache, debería habilitarlos:

[Código-fonte].\metricbeat.exe modules enable apache mysql[/Código-fonte]

 

Como de costume, la primera vez que añadamos en Elasticsearch métricas de Metricbeat, debemos cargar la plantilla para que nos genere los índices con los campos de manera correcta:

.\metricbeat.exe setup –template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=[“SERVIDOR_ELASTICSEARCH:9200”]’

 

Podremos probar si tenemos bien configurado los ficheros de configuración, desde un PowerShell con privilegios de administrador, vamos al path donde tenemos Metricbeats, y ejecutamos:

[Código-fonte].\metricbeat.exe test config -c .\metricbeat.yml -e[/Código-fonte]

 

E iniciamos el servicio y si queremos, podemos ver el estado de la conexión de Metricbeats con Logstash o Elasticsearch (depende lo que escogimos):

[Código-fonte]Start-Service metricbeat
Get-Content .\logs\metricbeat -Wait[/Código-fonte]

 

E é isso! Ya deberemos tener Metricbeat recoleccionando métricas! Ahora vamos a visualizarlasviene la mágia!

 

Do Kibana,

Si queremos visualizar las métricas con Kibana, primero crearemos el patrón del índice, después verificaremos que llegan datos y luego ya nos podríamos poner a pintar!

 

Abrimos Kibana, Nós vamos “Gestão” > “Padrões de índice” > “Criar padrão de índice” e indicamos ‘metricbeat-*como patrón, Clique em “Next step”,

 

Selecionar ‘@timestampcomo columna de tiempo y creamos el patrón desde “Criar padrão de índice”.

 

Y desde “Descobrir”, seleccionando el patrón que acabamos de crear ya podremos apreciar que nos están llegando datos, como de costume, podemos desde aquí ver qué nos llega, jugar a añadir columnas y hacer filtros para luego crear las visualizaciones desde “Visualizar” y ver las métricas que estamos monitorizando en tiempo real pero en formato de gráficas, impasse, columnas, quesos

 

De Grafana,

Antes de poder visualizar los datos, recordar que debemos de dar de alta el origen de datos y conectar Grafana con los índices de Metricbeat en Elasticsearch!

 

Abrimos Grafana, vamos a “Configuración” > “Data Sources”, indicaremos un nombre a la conexión, na URL, devemos indicar a URL do nosso Elasticsearch 'http://DIRECCION_IP_ELASTIC:9200’. Seleccionamos ‘metricbeat-*’ para usar como nombre para los índices, indicamos o campo @timestamp para o campo de tempo e selecionamos a versão do Elasticsearch, pulsamos en “Save & Test”,

 

Y ya podremos en un Dashboard añadir paneles para visualizar las métricas que generan las máquinas que tienen Metricbeat instalado! En un Panel de ejemplo, en este caso será una gráfica de líneas, donde visualizaremos todos las métricas que generan un par de máquinas. Seleccionamos nuestro conector contra los índices de Metricbeat en Elasticsearch, y podemos usar consultas Lucene desde aquí para visualizar lo que nos interese.

 

E nada, en un ratito podremos analizar que datos nos están llegando y cómo presentarlos y dibujarlos con Grafana, ya veréis como no resulta tán complicado y podemos visualizar de una manera muy agradable cualquier información que recopilemos, espero os haya resultado interesante!

 

Postagens recomendadas

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Não hesite em contactar-me, Vou tentar ajudá-lo sempre que puder, Compartilhar é viver ;) . Desfrute de documentos!!!

Livro: VMware por vExperts

11 Abril de 2019