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.

- Duração estimada
- 120 min
- Passos
- 14
- Validações
- 5
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 +------------------+nEquipamentos e software
| Item | Requisito, 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 |
| Prometheus | Apache 2.0 · 2.48.1 |
| Node Exporter | Apache 2.0 · 1.7.0 |
| Grafana | AGPLv3 · 10.3.3 |
| Loki | AGPLv3 · 2.9.3 |
| OpenTelemetry Collector | Apache 2.0 · 0.99.0 |
Roteiro
- 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 -yO que você deve ver: Ambas as VMs atualizadas e acessíveis via ping/SSH.
- 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/prometheusO que você deve ver: Diretório /opt/prometheus com binários e arquivos de configuração.
- 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.ymlO que você deve ver: Arquivo com targets: 'localhost:9090' e '192.168.56.11:9100'.
- 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.
- 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/.
- 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.
- 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 grafanaO que você deve ver: Grafana instalado e disponível para iniciar.
- Iniciar Grafana na VM1
Inicie o serviço Grafana.
sudo systemctl start grafana-servern sudo systemctl enable grafana-serverO que você deve ver: Grafana ouvindo em http://localhost:3000.
- 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/lokiO que você deve ver: Binário loki disponível em /usr/local/bin/.
- Configurar e iniciar Loki
Crie um arquivo de configuração simples e inicie o Loki.
nano loki-config.yamlO 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 &
- 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/.
- 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.yamlO que você deve ver: Arquivo otelcol-config.yaml criado. Collector rodando após executar: /usr/local/bin/otelcol --config otelcol-config.yaml &
- 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.
- 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
| Teste | Comando | Critério |
|---|---|---|
| Verificar targets no Prometheus | curl http://localhost:9090/targets | Targets 'localhost:9090' e '192.168.56.11:9100' como UP. |
| Verificar métricas do Node Exporter | curl http://192.168.56.11:9100/metrics | Saída com métricas como node_cpu_seconds_total. |
| Acessar Grafana | Acesse http://localhost:3000 no navegador | Tela de login e, após, dashboards disponíveis. |
| Verificar logs no Loki | curl http://localhost:3100/ready | Resposta HTTP 200 OK. |
| Verificar traces no Grafana | Painel de traces mostrando dados simulados do OpenTelemetry Collector. |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Target do Node Exporter DOWN no Prometheus | Firewall bloqueando porta 9100 ou Node Exporter não iniciado | Verifique firewall e reinicie Node Exporter. |
| Grafana não inicia | Porta 3000 ocupada ou erro de instalação | Verifique processos na porta 3000 e reinstale Grafana se necessário. |
| Loki não responde na porta 3100 | Configuração incorreta ou porta bloqueada | Revise loki-config.yaml e libere porta 3100. |
| Traces não aparecem no Grafana | Collector não configurado corretamente ou backend não conectado | Revise otelcol-config.yaml e consulte a documentação. |
| Dashboards vazios no Grafana | Datasource não configurado corretamente | Reconfigure 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.
