Entrar ou criar conta

Laboratório em bancada

Laboratório: Observabilidade Completa com Prometheus, Node Exporter, Grafana, Loki e OpenTelemetry Collector

Você terá uma pilha de observabilidade rodando em duas VMs: Prometheus coleta métricas do Node Exporter, Grafana exibe dashboards, Loki armazena logs e o OpenTelemetry Collector envia traces simulados. Duração aproximada: 2 horas.

Observabilidade com Prometheus e Grafana
Ligado ao treinamento Observabilidade com Prometheus e Grafana
Duração estimada
120 min
Passos
14
Validações
5
Objetivo

Este laboratório demonstra como montar uma solução de observabilidade aberta, integrando métricas, logs e traces em ambientes Linux. Você vai instalar e configurar Prometheus, Node Exporter, Grafana, Loki e OpenTelemetry Collector, conectando cada componente para monitorar e visualizar dados de uma máquina Linux comum. O objetivo é entender, na prática, como cada peça se conecta e como visualizar informações essenciais para operação e troubleshooting em produção.

Topologia

Duas máquinas virtuais Linux (Ubuntu 22.04 ou similar) em rede privada. VM1: Prometheus, Grafana, Loki, OpenTelemetry Collector. VM2: Node Exporter. Prometheus coleta métricas do Node Exporter (VM2) e do próprio host (VM1). Grafana conecta-se ao Prometheus e ao Loki para dashboards. OpenTelemetry Collector envia traces simulados para o Grafana Tempo (opcional, mas configurado para demonstração). Endereços de exemplo: VM1 (192.168.56.10), VM2 (192.168.56.11).

            +-------------------+n            |    VM1           |n            |------------------|n            | Prometheus       |n            | Grafana          |n            | Loki             |n            | OpenTelemetry    |n            +--------+---------+n                     |n                     |n            +--------v---------+n            |    VM2           |n            |------------------|n            | Node Exporter    |n            +------------------+n

Equipamentos e software

ItemRequisito, licença ou versão
VM Linux (VM1)2 vCPU, 2GB RAM, 10GB disco, Ubuntu 22.04 ou compatível
VM Linux (VM2)1 vCPU, 1GB RAM, 5GB disco, Ubuntu 22.04 ou compatível
PrometheusApache 2.0 · 2.48.1
Node ExporterApache 2.0 · 1.7.0
GrafanaAGPLv3 · 10.3.3
LokiAGPLv3 · 2.9.3
OpenTelemetry CollectorApache 2.0 · 0.99.0

Roteiro

  1. Preparar as VMs e rede

    Crie duas VMs Linux em rede privada. Garanta acesso SSH entre elas. Atualize os pacotes.

    sudo apt update && sudo apt upgrade -y

    O que você deve ver: Ambas as VMs atualizadas e acessíveis via ping/SSH.

  2. Instalar Prometheus na VM1

    Baixe e instale Prometheus na VM1. Ele será o coletor central de métricas.

    wget https://github.com/prometheus/prometheus/releases/download/v2.48.1/prometheus-2.48.1.linux-amd64.tar.gzn tar -xzf prometheus-2.48.1.linux-amd64.tar.gzn sudo mv prometheus-2.48.1.linux-amd64 /opt/prometheus

    O que você deve ver: Diretório /opt/prometheus com binários e arquivos de configuração.

  3. Configurar Prometheus para coletar métricas

    Edite prometheus.yml para coletar métricas do próprio host e do Node Exporter na VM2.

    sudo nano /opt/prometheus/prometheus.yml

    O que você deve ver: Arquivo com targets: 'localhost:9090' e '192.168.56.11:9100'.

  4. Iniciar Prometheus

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

    cd /opt/prometheusn ./prometheus --config.file=prometheus.yml &

    O que você deve ver: Prometheus ouvindo em http://localhost:9090.

  5. Instalar Node Exporter na VM2

    Node Exporter expõe métricas do sistema operacional para Prometheus.

    wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gzn tar -xzf node_exporter-1.7.0.linux-amd64.tar.gzn sudo mv node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/

    O que você deve ver: Binário node_exporter disponível em /usr/local/bin/.

  6. Iniciar Node Exporter na VM2

    Inicie o Node Exporter para expor métricas na porta 9100.

    /usr/local/bin/node_exporter &

    O que você deve ver: Node Exporter ouvindo em http://localhost:9100/metrics.

  7. Instalar Grafana na VM1

    Grafana será usado para visualização de métricas e logs.

    sudo apt-get install -y apt-transport-https software-properties-commonn wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -n echo 'deb https://packages.grafana.com/oss/deb stable main' | sudo tee /etc/apt/sources.list.d/grafana.listn sudo apt updaten sudo apt install -y grafana

    O que você deve ver: Grafana instalado e disponível para iniciar.

  8. Iniciar Grafana na VM1

    Inicie o serviço Grafana.

    sudo systemctl start grafana-servern sudo systemctl enable grafana-server

    O que você deve ver: Grafana ouvindo em http://localhost:3000.

  9. Instalar Loki na VM1

    Loki armazena logs e integra-se ao Grafana.

    wget https://github.com/grafana/loki/releases/download/v2.9.3/loki-linux-amd64.zipn unzip loki-linux-amd64.zipn sudo mv loki-linux-amd64 /usr/local/bin/loki

    O que você deve ver: Binário loki disponível em /usr/local/bin/.

  10. Configurar e iniciar Loki

    Crie um arquivo de configuração simples e inicie o Loki.

    nano loki-config.yaml

    O que você deve ver: Arquivo loki-config.yaml criado. Loki ouvindo na porta 3100 após executar: /usr/local/bin/loki -config.file=loki-config.yaml &

  11. Instalar OpenTelemetry Collector na VM1

    O Collector irá simular envio de traces para a pilha.

    wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.99.0/otelcol_0.99.0_linux_amd64.tar.gzn tar -xzf otelcol_0.99.0_linux_amd64.tar.gzn sudo mv otelcol /usr/local/bin/

    O que você deve ver: Binário otelcol disponível em /usr/local/bin/.

  12. Configurar e iniciar OpenTelemetry Collector

    Crie um arquivo de configuração mínimo para enviar traces simulados para o backend (exemplo: logging exporter).

    nano otelcol-config.yaml

    O que você deve ver: Arquivo otelcol-config.yaml criado. Collector rodando após executar: /usr/local/bin/otelcol --config otelcol-config.yaml &

  13. Acessar Grafana e configurar datasources

    Acesse http://localhost:3000, faça login (admin/admin), adicione Prometheus como datasource (http://localhost:9090) e Loki (http://localhost:3100).

    O que você deve ver: Datasources Prometheus e Loki criados no Grafana.

  14. Importar dashboards e visualizar dados

    Importe dashboards oficiais de Node Exporter e Loki pelo ID na interface do Grafana. Visualize métricas, logs e traces.

    O que você deve ver: Dashboards mostrando métricas do Node Exporter, logs do sistema e traces simulados.

Como saber que funcionou

TesteComandoCritério
Verificar targets no Prometheuscurl http://localhost:9090/targetsTargets 'localhost:9090' e '192.168.56.11:9100' como UP.
Verificar métricas do Node Exportercurl http://192.168.56.11:9100/metricsSaída com métricas como node_cpu_seconds_total.
Acessar GrafanaAcesse http://localhost:3000 no navegadorTela de login e, após, dashboards disponíveis.
Verificar logs no Lokicurl http://localhost:3100/readyResposta HTTP 200 OK.
Verificar traces no GrafanaPainel de traces mostrando dados simulados do OpenTelemetry Collector.

Troubleshooting

SintomaCausa provávelCorreção
Target do Node Exporter DOWN no PrometheusFirewall bloqueando porta 9100 ou Node Exporter não iniciadoVerifique firewall e reinicie Node Exporter.
Grafana não iniciaPorta 3000 ocupada ou erro de instalaçãoVerifique processos na porta 3000 e reinstale Grafana se necessário.
Loki não responde na porta 3100Configuração incorreta ou porta bloqueadaRevise loki-config.yaml e libere porta 3100.
Traces não aparecem no GrafanaCollector não configurado corretamente ou backend não conectadoRevise otelcol-config.yaml e consulte a documentação.
Dashboards vazios no GrafanaDatasource não configurado corretamenteReconfigure datasources e teste conexões na interface do Grafana.

Segurança e hardening

  • Altere as senhas padrão do Grafana imediatamente após o primeiro login.
  • Restrinja acesso às portas dos serviços (9090, 9100, 3000, 3100) apenas à rede interna.
  • Não exponha Prometheus, Grafana ou Loki diretamente à internet sem autenticação e TLS.
  • Revise permissões dos arquivos de configuração e logs para evitar vazamento de dados sensíveis.

Checklist final

Referências

  1. Documentação oficial do Prometheus
  2. Documentação oficial do Node Exporter
  3. Documentação oficial do Grafana
  4. Documentação oficial do Loki
  5. Documentação oficial do OpenTelemetry Collector