Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Monitoramento de Consumo de Energia via Modbus, Prometheus e Grafana

Você terá um ambiente funcional que coleta métricas de energia via Modbus TCP, armazena no Prometheus e visualiza no Grafana. Todo o fluxo será realizado em máquinas virtuais Linux, em cerca de 2 horas.

Monitoramento de Energia com Grafana e Prometheus do zero à visualização inteligente
Ligado ao treinamento Monitoramento de Energia com Grafana e Prometheus do zero à visualização inteligente
ULC-LAB-ENER-0004 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
4
Versões da documentação consultada
mbserver (simulador Modbus TCP) a versão estável atual · prometheus-modbus-exporter a versão estável atual · Prometheus 2.48.1 · Grafana 10.2.3
Objetivo

Este laboratório ensina como coletar dados de consumo de energia de um simulador de dispositivo Modbus TCP, expor essas métricas com um exporter, armazenar no Prometheus e visualizar no Grafana. Você aprenderá a integrar sensores industriais virtuais ao stack moderno de observabilidade, útil para ambientes de TI que precisam monitorar energia em tempo real.

Topologia

Três VMs em uma rede privada: uma simula um medidor de energia Modbus TCP (192.168.56.10), outra executa o prometheus-modbus-exporter (192.168.56.20), e a terceira roda Prometheus e Grafana (192.168.56.30). O exporter coleta dados do simulador e os expõe para o Prometheus, que armazena e serve para o Grafana.

         +---------------------+
         |  VM1: Modbus Sim   |
         |  192.168.56.10     |
         +---------+----------+
                   |
                   |
         +---------v----------+
         |  VM2: Exporter     |
         |  192.168.56.20     |
         +---------+----------+
                   |
                   |
         +---------v----------+
         | VM3: Prometheus    |
         | & Grafana          |
         | 192.168.56.30      |
         +--------------------+

Equipamentos e software

ItemRequisito, licença ou versão
VM Linux (Modbus Sim)1 vCPU, 512MB RAM, porta 502/TCP
VM Linux (Exporter)1 vCPU, 512MB RAM, porta 9000/TCP
VM Linux (Prometheus+Grafana)2 vCPU, 2GB RAM, portas 9090/TCP e 3000/TCP
mbserver (simulador Modbus TCP)MIT · a versão estável atual
prometheus-modbus-exporterMIT · a versão estável atual
PrometheusApache 2.0 · 2.48.1
GrafanaAGPLv3 · 10.2.3

Roteiro

  1. Preparar as VMs e rede privada

    Crie três VMs Linux (Ubuntu Server recomendado) na mesma rede privada. Isso isola o laboratório e evita conflitos.

    O que você deve ver: VMs acessíveis entre si via ping.

  2. Instalar e configurar o simulador Modbus TCP

    No VM1, instale o mbserver para simular um medidor de energia via Modbus TCP.

    sudo apt update && sudo apt install golang-go git -y
    git clone https://github.com/tbrandon/mbserver.git
    cd mbserver
    go build .
    ./mbserver --host 0.0.0.0 --port 502

    O que você deve ver: mbserver ouvindo na porta 502.

  3. Popular registradores Modbus com valores simulados

    Insira valores fictícios nos registradores do mbserver para simular consumo de energia.

    curl -X PUT 'http://localhost:8080/register/holding/0' -d 'value=1234'

    O que você deve ver: Registro 0 atualizado com valor 1234.

  4. Instalar o prometheus-modbus-exporter

    No VM2, instale o exporter que coleta dados Modbus e expõe para Prometheus.

    sudo apt install python3-pip -y
    pip3 install prometheus-modbus-exporter

    O que você deve ver: prometheus-modbus-exporter instalado.

  5. Configurar o prometheus-modbus-exporter

    Crie um arquivo de configuração YAML para o exporter apontando para o mbserver.

    cat > modbus.yaml <<EOF
    modules:
      energy_meter:
        host: 192.168.56.10
        port: 502
        unit_id: 1
        registers:
          - name: power_consumption
            address: 0
            type: holding
            count: 1
    EOF

    O que você deve ver: Arquivo modbus.yaml criado com parâmetros corretos.

  6. Executar o prometheus-modbus-exporter

    Inicie o exporter para expor métricas em /metrics na porta 9000.

    prometheus-modbus-exporter --config modbus.yaml --listen 0.0.0.0:9000 &

    O que você deve ver: Exporter ouvindo em 0.0.0.0:9000/metrics.

  7. Instalar o Prometheus

    No VM3, instale o Prometheus para coletar as métricas do exporter.

    sudo useradd --no-create-home --shell /bin/false prometheus
    wget https://github.com/prometheus/prometheus/releases/download/v2.48.1/prometheus-2.48.1.linux-amd64.tar.gz
    tar xvf prometheus-2.48.1.linux-amd64.tar.gz
    sudo mv prometheus-2.48.1.linux-amd64/prometheus /usr/local/bin/
    sudo mv prometheus-2.48.1.linux-amd64/promtool /usr/local/bin/

    O que você deve ver: Prometheus instalado e binários disponíveis.

  8. Configurar o Prometheus para coletar do exporter

    Edite o prometheus.yml para adicionar o exporter como target.

    cat > prometheus.yml <<EOF
    scrape_configs:
      - job_name: 'modbus_exporter'
        static_configs:
          - targets: ['192.168.56.20:9000']
    EOF

    O que você deve ver: Arquivo prometheus.yml com target do exporter.

  9. Iniciar o Prometheus

    Execute o Prometheus apontando para o novo arquivo de configuração.

    prometheus --config.file=prometheus.yml &

    O que você deve ver: Prometheus ouvindo em 0.0.0.0:9090.

  10. Instalar o Grafana

    No VM3, instale o Grafana para visualização das métricas.

    sudo apt install -y software-properties-common
    sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
    wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
    sudo apt update
    sudo apt install grafana -y
    sudo systemctl start grafana-server
    sudo systemctl enable grafana-server

    O que você deve ver: Grafana rodando na porta 3000.

  11. Adicionar Prometheus como fonte de dados no Grafana

    Acesse o Grafana (http://192.168.56.30:3000), faça login e adicione o Prometheus como fonte de dados.

    O que você deve ver: Fonte de dados Prometheus conectada.

  12. Criar dashboard para consumo de energia

    No Grafana, crie um painel visualizando a métrica power_consumption coletada do Modbus.

    O que você deve ver: Dashboard exibe gráfico de consumo de energia.

Como saber que funcionou

TesteComandoCritério
Verificar exportercurl http://192.168.56.20:9000/metricsSaída inclui power_consumption.
Verificar Prometheuscurl http://192.168.56.30:9090/targetsTarget modbus_exporter está UP.
Consultar métrica no PrometheusBusca por power_consumption retorna valor.
Visualizar painel no GrafanaGráfico mostra valores do registrador Modbus.

Troubleshooting

SintomaCausa provávelCorreção
Exporter não coleta dadosConfiguração de endereço IP ou porta incorretaVerifique modbus.yaml e conectividade entre VMs
Prometheus não encontra exporterFirewall bloqueando porta 9000 ou erro no prometheus.ymlAjuste regras de firewall e revise configuração
Grafana não conecta ao PrometheusURL da fonte de dados incorretaCorrija a URL para http://192.168.56.30:9090
Dashboard não exibe dadosQuery incorreta ou ausência de coletaRevise a query e valide coleta no Prometheus

Segurança e hardening

  • Isolar as VMs em rede privada sem acesso externo
  • Utilizar senhas fortes para acesso ao Grafana
  • Restringir portas abertas apenas ao necessário
  • Não expor o mbserver ou exporter para a internet

Checklist final

Referências

  1. Documentação do Prometheus · Prometheus (CNCF) (prometheus.io)
  2. Documentação do Grafana · Grafana Labs (grafana.com)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
2 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.