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, vamos configurá-lo e instalá-lo como serviço.
A Configurar o Metricbeat,
Poço, antes de começar a tocar no ficheiro de configuração do Metricbeat; na pasta ‘modules.d’ teremos todos os módulos adicionais dos quais poderemos ainda obter métricas, sejam serviços de web, bases de dados, plataformas virtuais, como por exemplo apache, mongodb, Mysql, vsphere, PostgreSQL… Em cada módulo poderemos habilitar para que se obtenham mais ou menos métricas.
Neste exemplo, em ‘system.yml’ veremos que encaminhará a cada 10 segundos as métricas de CPU, Memória, Rede ou informação dos processos entre outros, poderemos comentar ou descomentar o que precisarmos, poderemos definir este módulo ou aquele que nos interesse especificando a informação que nos interesse recolher. 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: sistema
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: sistema
period: 1m
metricsets:
– filesystem
– fsstat
processors:
– drop_event.when.regexp:
system.filesystem.mount_point: ‘^/(sys|cgroup|proc|dev|etc|anfitrião|Lib)($|/)’
– módulo: sistema
period: 15m
metricsets:
– Tempo de atividade[/Código-fonte]
Depois, en el fichero de configuración ‘metricbeat.yml’ realizaremos 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 prefiro enviar os dados para o Logstash para os tratar. Então, comentaremos toda a parte de Output contra o Elasticsearch e configuramos contra o servidor de Logstash e a sua porta, que em um documento anterior vimos na parte de “Configurando o Logstash” o ficheiro a criar. Como dito, tocamos no output deixando algo assim:
[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]
Uma vez configurado o Metricbeat, para instalar o Metricbeat como serviço, executamos:
[Código-fonte].\install-service-metricbeat.ps1[/Código-fonte]
E o que eu disse, podemos habilitar módulos específicos se quisermos monitorização adicional na nossa máquina, neste servidor disponho de um MySQL e um Apache, deveria habilitá-los:
[Código-fonte].\metricbeat.exe modules enable apache mysql[/Código-fonte]
Como de costume, a primeira vez que adicionarmos métricas de Metricbeat no Elasticsearch, 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 visualizarlas… viene la mágia!
Do Kibana,
Si queremos visualizar las métricas con Kibana, primero crearemos el patrón del índice, depois verificaremos que chegam dados e então já nos poderíamos pôr a pintar!
Abrimos o Kibana, Nós vamos “Gestão” > “Padrões de índice” > “Criar padrão de índice” e indicamos ‘metricbeat-*’ como padrão, Clique em “Next step”,
Selecionar ‘@timestamp‘ como coluna de tempo e criamos o padrão a partir de “Criar padrão de índice”.
E a partir de “Descobrir”, selecionando o padrão que acabámos de criar já poderemos apreciar que nos estão a chegar dados, como de costume, podemos daqui ver o que nos chega, brincar a adicionar colunas e fazer filtros para depois criar as visualizações a partir de “Visualizar” e ver as métricas que estamos a monitorizar em tempo real mas em formato de gráficos, impasse, columnas, queijos…
De Grafana,
Antes de poder visualizar os dados, lembrar que devemos registar a origem dos dados e conectar o Grafana com os índices do Metricbeat no Elasticsearch!
Abrimos o Grafana, vamos a “Configuração” > “Fontes de Dados”, 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!

















































