Coletar métricas de desempenho no Elasticsearch e visualizá-las no Grafana
Neste post vamos tentar ver como visualizar qualquer métrica de desempenho de um computador Windows Server ou de seus serviços, como o SQL Server, Troca… com a intenção de poder visualizá-los em tempo real no Grafana.
A ideia será recolhê-los através de um dos agentes do Stack da Elastic, neste caso usaremos o Metricbeat, e depois este encarregar-se-á de os armazenar no Elasticsearch; e com o Grafana acedemos aos dados e visualizamo-los como nos interessar. Há algum tempo escrevi um post onde falávamos sobre como implementar o Metricbeat e como recolher as réplicas do sistema, se quiseres dá-lhe uma vista de olhos, hoje o que nos toca são os contadores de desempenho do perfmon ou Monitor de Recursos, ou como quisermos chamar-lhe.
Instalando o Metricbeat
A instalação do Metricbeat já a conhecemos, é muito simples, bastará fazer o download do ficheiro ZIP de x64 de https://www.elastic.co/es/downloads/beats/metricbeat e descomprimir em ‘C:\Program Files\metricbeat’. Para criar o serviço do Metricbeat executamos:
cd 'C:\Program Files\metricbeat\'
.\install-service-metricbeat.ps1
Editamos el fichero de configuración de Metricbeat, y al menos creamos la conexión contra nuestro servidor de Elasticsearch y el de Kibana:
... # ---------------------------- Elasticsearch Output ---------------------------- output.elasticsearch: # Array of hosts to connect to. Hosts: ["https (em inglês)://FQDN_ELASTIC:9200"] ssl.verification_mode: none username: "USUARIO" senha: "PALAVRA-PASSE" index: "metricbeat-%{+yyyy. MM.dd}" ... # =================================== Kibana =================================== setup.kibana: anfitrião: "https (em inglês)://FQDN_KIBANA:5601" ssl.verification_mode: nenhum ...
Probamos la configuración:
.\metricbeat.exe test config -c .\metricbeat.yml -e
Cargamos los dashboards de Kibana (si los dashboards ya los hemos importado alguna vez podremos ignorar el primer comando) y arrancamos el servicio:
.\metricbeat.exe setup
Start-Service metricbeat
Si queremos quitar el servicio, vaya desinstalar filebeat alguna vez:
.\uninstall-service-metricbeat.ps1
Ativando métricas dos serviços e contadores de desempenho do Windows
Poço, pois teremos que ativar este módulo, lo realizaremos con el siguiente comando:
.\metricbeat.exe modules enable windows
O próximo passo será saber quais contadores de desempenho temos, isto podemos ver com este comando do PowerShell:
Get-Counter -ListSet *
E será apenas uma questão de indicar ao Metricbeat quais queremos recolher, editamos o ficheiro de configuração do módulo 'C:\Program Files\metricbeat\modules.d\windows.yml’ e indicamos-lhe, Exemplo:
# Module: windows
# Docs: https (em inglês)://www.elastic.co/guide/en/beats/metricbeat/7.x/metricbeat-module-windows.html
- módulo: windows
metricsets:
- service
period: 1m
- módulo: windows
metricsets: [perfmon]
period: 10s
perfmon.ignore_non_existent_counters: true
perfmon.group_measurements_by_instance: true
perfmon.queries:
- object: "PhysicalDisk"
field : "Disco"
instância: "*"
counters:
- Nome: "Disk Writes/sec"
- Nome: "% Disk Write Time"
field: "write_time"
format: "flutuar"
- object: "PhysicalDisk"
field : "Disco"
instância: "*"
counters:
- Nome: "Disk Reads/sec"
- Nome: "% Tempo de Leitura de Disco"
field: "tempo_de_leitura"
format: "flutuar"
- object: "MSSQL$VEEAMSQL2012:Bases de Dados"
field : "database"
instância: "*"
counters:
- Nome: "Ficheiro de Dados(s) Tamanho (KB)"
...
Grabamos el fichero, reiniciamos o serviço do Metricbeat e agora vamos verificar o que temos no Elasticsearch em termos de dados. Como de costume, iremos para o Kibana e, assim que os dados chegarem, podemos ir para "Gerenciamento" > "Gerenciamento de pilha" > "Kibana" > "Padrões de índice" > "Criar padrão de índice" para criar o padrão de índice, Como eu disse, como de costume (neste caso e sem as aspas) ‘metricbeat-*’ e teremos os dados já no Elasticsearch armazenados de forma correta. Agora poderíamos conectar-nos a partir de “Analytics” > “Discover” ao nosso índice do Metricbeat e visualizar que está a recolher dados.
Uma vez que os dados estejam no Elasticsearch, resta seguir os passos que já vimos várias vezes em outros posts, que seria, (eu) criar conector ou Fonte de Dados do Grafana para o Elasticsearch e (Ii) começar a fazer o dashboard ou os dashboards que necessites. Este é apenas um exemplo dos dados recolhidos de um servidor SQL Server, onde vemos certos contadores bastante interessantes e comuns, assim como tamanhos e crescimentos das bases de dados, Conexões, latências…
Imaginem as possibilidades disto, qualquer serviço instalado no Windows dispõe dos seus próprios contadores, que poderemos recolher com a periodicidade que nos interessar, ao nível de 1s, 10s, 30s… e a sua visualização igualmente, com atualização em tempo real ou para realizar relatórios com a sua análise após a ingestão de muitos dados e poder analisar crescimentos…
Nada, acabo com isto, uma maneira rápida de ver os contadores que tem um SQL Server:
SELECIONE CONTAGEM(*) FROM sys.dm_os_performance_counters;
E é isso, espero que vos sirva para ver possibilidades nos vossos ambientes, que podemos recolher qualquer dado de que precisemos, Pare isso mais tarde, trabalhá-lo, criar dashboards personalizados para diferentes perfis, relatórios semanais… Ale que me alongo, un abrazo a tod@s!













































