DEV Community

Cover image for Monitorando Windows com Prometheus e Windows Exporter
Luis Cruz
Luis Cruz

Posted on • Edited on

Monitorando Windows com Prometheus e Windows Exporter

Saber o que está acontecendo nos seus servidores e máquinas Windows em tempo real é essencial para manter a saúde do ambiente. Com o Prometheus e o Windows Exporter, você coleta métricas de CPU, memória, disco, rede e muito mais, visualizando tudo em dashboards profissionais no Grafana.

Neste artigo você vai configurar toda essa stack em minutos usando Docker.


Arquitetura da solução

O Windows Exporter roda diretamente no host Windows e expõe as métricas em /metrics. O Prometheus faz o scrape dessas métricas em intervalos configuráveis. O Grafana consulta o Prometheus e exibe os dados em dashboards.


Pré-requisitos

  • Docker com Compose V2 instalado (docker compose version)
  • Acesso de administrador na máquina Windows a monitorar
  • Porta 9182 liberada no firewall do Windows

1. Clonar o repositório

git clone https://github.com/luiscruzcwb/prometheus-windows-exporter
cd prometheus-windows-exporter
Enter fullscreen mode Exit fullscreen mode

2. Configurar o Prometheus

Navegue até a pasta prometheus e edite o arquivo prometheus.yml.

Atenção com a indentação: o YAML é sensível a espaços. Use sempre espaços, nunca tabs.

Adicione uma entrada para cada host Windows na seção de jobs:

scrape_configs:
  - job_name: 'windows-server-01'
    scrape_interval: 15s
    static_configs:
      - targets: ['IP-DO-HOST:9182']
        labels:
          hostname: 'windows-server-01'

  - job_name: 'windows-server-02'
    scrape_interval: 15s
    static_configs:
      - targets: ['IP-DO-HOST-2:9182']
        labels:
          hostname: 'windows-server-02'
Enter fullscreen mode Exit fullscreen mode

Recomende criar uma entrada por host para facilitar a identificação nos dashboards.


3. Instalar o Windows Exporter no Host

Acesse a página de releases do Windows Exporter no GitHub e baixe a versão mais recente do arquivo .msi.

  • 64 bits: windows_exporter-X.X.X-amd64.msi
  • 32 bits: windows_exporter-X.X.X-386.msi

Após o download, abra o terminal como Administrador e execute (ajuste o nome do arquivo para a versão baixada):

msiexec /i windows_exporter-0.29.2-amd64.msi
Enter fullscreen mode Exit fullscreen mode

O instalador registra o Windows Exporter como serviço do Windows e o inicia automaticamente na porta 9182.

Para confirmar que está funcionando, abra o navegador e acesse:

http://localhost:9182/metrics
Enter fullscreen mode Exit fullscreen mode

Se você ver uma saída com centenas de linhas de métricas, está tudo certo.

Firewall: caso não consiga acessar a porta de outro host, libere a porta 9182 no Windows Defender Firewall:

netsh advfirewall firewall add rule name="Windows Exporter" protocol=TCP dir=in localport=9182 action=allow

4. Subir o ambiente com Docker

Na raiz do repositório, execute:

docker compose up -d
Enter fullscreen mode Exit fullscreen mode

Aguarde o download das imagens e verifique se os containers estão saudáveis:

docker compose ps
Enter fullscreen mode Exit fullscreen mode

Acesse os serviços:

Serviço Endereço
Grafana http://localhost:3000
Prometheus http://localhost:9090

5. Acessar o Grafana

Abra http://localhost:3000 no navegador.

Usuário: admin
Senha:   grafana
Enter fullscreen mode Exit fullscreen mode

Segurança: troque a senha imediatamente após o primeiro acesso em Profile → Change password. Nunca use as credenciais padrão em ambientes de produção ou expostos à rede.

No menu lateral, acesse Dashboards e abra o dashboard Windows Exporter for Prometheus. Você verá os dados do seu host sendo coletados em tempo real.


Principais métricas coletadas

Métrica Descrição
windows_cpu_time_total Uso de CPU por estado (idle, user, privileged)
windows_memory_available_bytes Memória RAM disponível
windows_logical_disk_free_bytes Espaço livre em disco por volume
windows_net_bytes_received_total Tráfego de rede recebido
windows_net_bytes_sent_total Tráfego de rede enviado
windows_os_info Informações do SO (versão, build)
windows_service_state Estado dos serviços do Windows

Troubleshooting

Prometheus não coleta métricas do host

  • Verifique se a porta 9182 está acessível: telnet IP-DO-HOST 9182
  • Confirme se o serviço windows_exporter está rodando: Get-Service windows_exporter no PowerShell
  • Cheque o firewall conforme o passo 3

Grafana não exibe dados

  • Acesse http://localhost:9090/targets no Prometheus e confirme que o target está com status UP
  • Verifique se o IP no prometheus.yml está correto e acessível a partir do container

Erro ao subir os containers

  • Certifique-se de usar o Docker Compose V2: docker compose version (sem hífen)
  • Verifique se as portas 3000 e 9090 não estão em uso: netstat -tulnp | grep -E '3000|9090'

Para mais informações


Dúvidas ou sugestões? Deixa nos comentários! 🤘🏻

Top comments (0)