Entrar ou criar conta

Laboratório em bancada

Laboratório: Monitoramento de Serviços Linux com Prometheus e Grafana

Você terá um ambiente funcional de monitoramento, coletando métricas de uma máquina Linux via Prometheus e visualizando em dashboards Grafana. Tempo estimado: 2 a 3 horas.

Observabilidade e monitoramento do zero à resiliência com Prometheus e Grafana
Ligado ao treinamento Observabilidade e monitoramento do zero à resiliência com Prometheus e Grafana
Duração estimada
120 min
Passos
13
Validações
5
Objetivo

Este laboratório ensina a montar uma solução de observabilidade ponta a ponta usando apenas software livre. Você vai instalar e configurar Prometheus para coletar métricas do Node Exporter em um servidor Linux, e criar dashboards no Grafana para visualizar essas métricas. O laboratório cobre desde a instalação até a visualização dos dados, passando por configuração de scraping, criação de dashboards e primeiros passos em alertas.

Topologia

Uma máquina Prometheus (192.168.56.10) coleta métricas do Node Exporter rodando em um servidor Linux (192.168.56.20). O Grafana (192.168.56.11) se conecta ao Prometheus para exibir dashboards. Todas as máquinas podem ser VMs locais ou instâncias em nuvem privada.


+-------------------+           +-------------------+
|   Prometheus      |<----------|   Node Exporter   |
| 192.168.56.10     |           | 192.168.56.20     |
+-------------------+           +-------------------+
        |
        v
+-------------------+
|     Grafana       |
| 192.168.56.11     |
+-------------------+

Equipamentos e software

ItemRequisito, licença ou versão
VM ou servidor para Prometheus1 vCPU, 1GB RAM, Ubuntu 22.04 ou superior, porta 9090 aberta
VM ou servidor para Grafana1 vCPU, 1GB RAM, Ubuntu 22.04 ou superior, porta 3000 aberta
VM ou servidor para Node Exporter1 vCPU, 512MB RAM, Ubuntu 22.04 ou superior, porta 9100 aberta
PrometheusApache 2.0 · a versão estável atual
GrafanaAGPLv3 · a versão estável atual
Node ExporterApache 2.0 · a versão estável atual

Roteiro

  1. Preparar as VMs ou servidores

    Crie três VMs Linux (ou use três servidores) com IPs fixos na mesma sub-rede privada. Isso isola o laboratório e facilita o acesso entre os componentes.

    O que você deve ver: As máquinas respondem a ping entre si.

  2. Instalar o Node Exporter

    O Node Exporter coleta métricas do sistema operacional. Instale na máquina 192.168.56.20.

    sudo useradd --no-create-home --shell /bin/false node_exporter
    wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-*.linux-amd64.tar.gz
    tar xvfz node_exporter-*.linux-amd64.tar.gz
    sudo cp node_exporter-*/node_exporter /usr/local/bin/
    sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
    echo '[Unit]
    Description=Node Exporter
    [Service]
    User=node_exporter
    ExecStart=/usr/local/bin/node_exporter
    [Install]
    WantedBy=default.target' | sudo tee /etc/systemd/system/node_exporter.service
    sudo systemctl daemon-reload
    sudo systemctl start node_exporter
    sudo systemctl enable node_exporter

    O que você deve ver: Node Exporter ativo na porta 9100.

  3. Testar o Node Exporter

    Verifique se o Node Exporter está coletando métricas.

    curl http://localhost:9100/metrics

    O que você deve ver: Saída com várias métricas em formato texto.

  4. Instalar o Prometheus

    Prometheus fará o scraping das métricas. Instale na máquina 192.168.56.10.

    wget https://github.com/prometheus/prometheus/releases/latest/download/prometheus-*.linux-amd64.tar.gz
    tar xvfz prometheus-*.linux-amd64.tar.gz
    sudo cp prometheus-*/prometheus /usr/local/bin/
    sudo cp prometheus-*/promtool /usr/local/bin/
    sudo mkdir /etc/prometheus
    sudo cp -r prometheus-*/consoles /etc/prometheus/
    sudo cp -r prometheus-*/console_libraries /etc/prometheus/
    sudo useradd --no-create-home --shell /bin/false prometheus
    sudo chown -R prometheus:prometheus /etc/prometheus
    sudo mkdir /var/lib/prometheus
    sudo chown prometheus:prometheus /var/lib/prometheus

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

  5. Configurar o Prometheus para coletar do Node Exporter

    Edite o arquivo de configuração para adicionar o Node Exporter como alvo. Isso define de onde o Prometheus vai coletar métricas.

    sudo nano /etc/prometheus/prometheus.yml

    O que você deve ver: Arquivo editado. Inclua: scrape_configs: - job_name: 'node' static_configs: - targets: ['192.168.56.20:9100']

  6. Iniciar o Prometheus

    Rode o serviço Prometheus usando systemd.

    echo '[Unit]
    Description=Prometheus
    [Service]
    User=prometheus
    ExecStart=/usr/local/bin/prometheus \
      --config.file=/etc/prometheus/prometheus.yml \
      --storage.tsdb.path=/var/lib/prometheus/
    [Install]
    WantedBy=default.target' | sudo tee /etc/systemd/system/prometheus.service
    sudo systemctl daemon-reload
    sudo systemctl start prometheus
    sudo systemctl enable prometheus

    O que você deve ver: Prometheus ativo na porta 9090.

  7. Testar o Prometheus

    Verifique se o Prometheus está rodando e acessível na interface web.

    curl http://localhost:9090

    O que você deve ver: Página HTML do Prometheus.

  8. Verificar targets no Prometheus

    Confirme se o Node Exporter aparece como alvo ativo.

    Acesse http://192.168.56.10:9090/targets no navegador

    O que você deve ver: Node Exporter listado como UP.

  9. Instalar o Grafana

    Grafana será usado para criar dashboards. Instale na máquina 192.168.56.11.

    sudo apt-get install -y apt-transport-https software-properties-common wget
    wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
    echo 'deb https://packages.grafana.com/oss/deb stable main' | sudo tee /etc/apt/sources.list.d/grafana.list
    sudo apt-get update
    sudo apt-get install grafana
    sudo systemctl start grafana-server
    sudo systemctl enable grafana-server

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

  10. Acessar o Grafana

    Abra o navegador em http://192.168.56.11:3000. O login padrão é admin/admin.

    O que você deve ver: Interface web do Grafana.

  11. Adicionar Prometheus como fonte de dados no Grafana

    No Grafana, adicione o Prometheus como fonte de dados. Isso conecta o Grafana ao Prometheus.

    No menu lateral: Configuration > Data Sources > Add data source > Prometheus. URL: http://192.168.56.10:9090

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

  12. Criar um dashboard básico no Grafana

    Crie um dashboard simples para visualizar métricas do Node Exporter, como uso de CPU e memória.

    No Grafana: Dashboards > New > Add Query. Exemplo de métrica: node_cpu_seconds_total

    O que você deve ver: Dashboard mostrando gráficos de métricas do Node Exporter.

  13. Configurar um alerta simples no Grafana

    Configure um alerta para uso de CPU acima de 80%. Isso demonstra a integração de alertas.

    No painel do gráfico: Alert > Create Alert > Conditions: WHEN avg() OF query(A, 5m, now) IS ABOVE 0.8

    O que você deve ver: Alerta criado e status visível no painel.

Como saber que funcionou

TesteComandoCritério
Node Exporter responde na porta 9100curl http://192.168.56.20:9100/metricsMétricas em texto são exibidas.
Prometheus coleta métricas do Node ExporterAcesse http://192.168.56.10:9090/targetsTarget 'node' aparece como UP.
Grafana acessa o PrometheusFonte de dados Prometheus conectada sem erro.
Dashboard mostra métricasGráficos exibem dados em tempo real.
Alerta dispara em condição simuladaStatus do alerta muda conforme condição definida.

Troubleshooting

SintomaCausa provávelCorreção
Node Exporter não responde na porta 9100Serviço não iniciado ou firewall bloqueandoVerifique status com 'systemctl status node_exporter' e ajuste firewall.
Prometheus não coleta métricasErro no endereço do target ou sintaxe do YAMLRevise o arquivo prometheus.yml e reinicie o serviço.
Grafana não conecta ao PrometheusURL incorreta ou porta bloqueadaConfirme URL e conectividade de rede entre as VMs.
Dashboard não mostra dadosQuery mal construída ou fonte de dados erradaRefaça a query e valide a fonte de dados.
Alerta não disparaCondição de alerta mal configuradaRevise as condições e simule a situação de alerta.

Segurança e hardening

  • Utilize usuários dedicados para Prometheus e Node Exporter, sem permissões de root.
  • Restrinja o acesso às portas 9090, 9100 e 3000 apenas à rede interna do laboratório.
  • Altere as senhas padrão do Grafana após o primeiro acesso.
  • Não exponha as interfaces web para a internet sem autenticação e HTTPS.
  • Consulte a documentação oficial para hardening adicional.

Checklist final

Referências

  1. Documentação oficial do Prometheus
  2. Documentação oficial do Grafana
  3. Repositório Prometheus
  4. Repositório Grafana