ULC Lab · implementação reproduzível
Laboratório: Monitoramento de Equipamento de Rede com Prometheus e Grafana em Ambiente Local
Você terá um ambiente funcional de monitoramento de um roteador Linux via SNMP usando Prometheus e Grafana, rodando em VMs ou máquinas físicas locais. O laboratório leva cerca de 2 horas.

- Duração estimada
- 120 min
- Passos
- 13
- Validações
- 4
- Versões da documentação consultada
- Prometheus a versão estável atual · Grafana a versão estável atual · snmpd a versão estável atual · prometheus/snmp_exporter a versão estável atual
Este laboratório ensina a montar um ambiente de monitoramento de rede ISP do zero, usando apenas software livre. Você vai instalar e configurar Prometheus para coletar métricas SNMP de um roteador Linux, visualizar os dados no Grafana e criar alertas básicos. O foco é entender como integrar coleta, visualização e alertas em uma rede típica de ISP, como a da Upnetix.
Topologia
Três máquinas: uma com Prometheus, uma com Grafana, uma roteador Linux (pode ser VM ou física). O Prometheus coleta métricas SNMP do roteador. O Grafana acessa o Prometheus via HTTP. Endereços de exemplo: Prometheus (192.168.56.10), Grafana (192.168.56.11), Roteador Linux (192.168.56.1).
+-----------------+
| Grafana |
| 192.168.56.11 |
+-------+---------+
|
|
+-------v---------+
| Prometheus |
| 192.168.56.10 |
+-------+---------+
|
|
+-------v---------+
| Roteador Linux |
| 192.168.56.1 |
+-----------------+Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| VM ou máquina física para Prometheus | 1 vCPU, 1GB RAM, 1 porta de rede, Ubuntu 22.04 ou equivalente |
| VM ou máquina física para Grafana | 1 vCPU, 1GB RAM, 1 porta de rede, Ubuntu 22.04 ou equivalente |
| VM ou máquina física para roteador Linux | 1 vCPU, 512MB RAM, 1 porta de rede, Ubuntu 22.04 ou equivalente |
| Prometheus | Apache 2.0 · a versão estável atual |
| Grafana | AGPLv3 · a versão estável atual |
| snmpd | BSD-like · a versão estável atual |
| prometheus/snmp_exporter | Apache 2.0 · a versão estável atual |
Roteiro
- Preparar as máquinas
Garanta que as três máquinas estão acessíveis entre si na rede privada, com IPs fixos. Use VMs, bare metal ou cloud local.
O que você deve ver: Ping entre as máquinas funciona.
- Instalar e configurar SNMP no roteador Linux
O Prometheus não coleta SNMP nativamente. O roteador Linux simula um equipamento de rede com SNMP habilitado.
sudo apt update && sudo apt install snmpd sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bkp sudo bash -c 'echo "rocommunity public 0.0.0.0/0" > /etc/snmp/snmpd.conf' sudo systemctl restart snmpdO que você deve ver: Serviço snmpd ativo e ouvindo na porta UDP 161.
- Testar SNMP localmente
Confirme que o SNMP responde no roteador.
snmpwalk -v2c -c public localhost systemO que você deve ver: Retorno com informações do sistema via SNMP.
- Liberar SNMP no firewall do roteador Linux
Permita conexões UDP na porta 161 para o IP do Prometheus.
sudo ufw allow from 192.168.56.10 to any port 161 proto udpO que você deve ver: SNMP acessível do Prometheus.
- Instalar o SNMP Exporter no Prometheus
O Prometheus precisa do snmp_exporter para converter SNMP em métricas.
cd /opt sudo wget https://github.com/prometheus/snmp_exporter/releases/latest/download/snmp_exporter-<versao>-linux-amd64.tar.gz sudo tar xvf snmp_exporter-*-linux-amd64.tar.gz sudo mv snmp_exporter-*-linux-amd64/snmp_exporter /usr/local/bin/ sudo useradd --no-create-home --shell /bin/false snmp_exporter sudo tee /etc/systemd/system/snmp_exporter.service > /dev/null <<EOF [Unit] Description=Prometheus SNMP Exporter After=network.target [Service] User=snmp_exporter Group=snmp_exporter Type=simple ExecStart=/usr/local/bin/snmp_exporter Restart=on-failure [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now snmp_exporterO que você deve ver: snmp_exporter rodando na porta 9116.
- Testar o SNMP Exporter
Verifique se o snmp_exporter responde.
curl http://localhost:9116/metricsO que você deve ver: Página com métricas Prometheus formatadas.
- Instalar Prometheus
Prometheus será o coletor central.
cd /opt sudo wget https://github.com/prometheus/prometheus/releases/latest/download/prometheus-<versao>.linux-amd64.tar.gz sudo tar xvf prometheus-*.linux-amd64.tar.gz sudo mv prometheus-*.linux-amd64/prometheus /usr/local/bin/ sudo mv prometheus-*.linux-amd64/promtool /usr/local/bin/ sudo mkdir -p /etc/prometheus /var/lib/prometheus sudo useradd --no-create-home --shell /bin/false prometheus sudo chown prometheus:prometheus /etc/prometheus /var/lib/prometheus sudo tee /etc/systemd/system/prometheus.service > /dev/null <<EOF [Unit] Description=Prometheus After=network.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus Restart=on-failure [Install] WantedBy=multi-user.target EOFO que você deve ver: Prometheus instalado, pronto para configurar.
- Configurar Prometheus para coletar do SNMP Exporter
Adicione o SNMP Exporter como target no Prometheus.
sudo tee /etc/prometheus/prometheus.yml > /dev/null <<EOF scrape_configs: - job_name: 'snmp' static_configs: - targets: ['192.168.56.10:9116'] metrics_path: /snmp params: module: ["if_mib"] relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 192.168.56.10:9116 EOF sudo systemctl daemon-reload sudo systemctl enable --now prometheusO que você deve ver: Prometheus rodando e coletando do SNMP Exporter.
- Testar coleta de métricas SNMP
Acesse a interface web do Prometheus para ver as métricas.
Acesse http://192.168.56.10:9090/targets no navegadorO que você deve ver: Target SNMP aparece como UP.
- Instalar Grafana
Grafana será o painel de visualização.
sudo apt-get 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-get update sudo apt-get install grafana sudo systemctl enable --now grafana-serverO que você deve ver: Grafana rodando na porta 3000.
- Conectar Grafana ao Prometheus
Adicione Prometheus como fonte de dados no Grafana.
Acesse http://192.168.56.11:3000 (login padrão admin/admin). Em 'Configuration' > 'Data Sources', adicione Prometheus com URL http://192.168.56.10:9090O que você deve ver: Fonte de dados Prometheus conectada.
- Criar painel básico no Grafana
Visualize métricas SNMP coletadas.
No Grafana, crie um dashboard, adicione painel, escolha a query 'ifInOctets' ou similar (consulte a documentação do snmp_exporter para nomes exatos).O que você deve ver: Gráfico com tráfego de interface do roteador Linux.
- Configurar alerta simples no Prometheus
Crie uma regra de alerta para tráfego alto.
sudo tee /etc/prometheus/alert.rules.yml > /dev/null <<EOF groups: - name: snmp_alerts rules: - alert: InterfaceHighTraffic expr: rate(ifInOctets[5m]) > 1000000 for: 5m labels: severity: warning annotations: summary: 'Tráfego alto na interface SNMP' EOF Adicione ao prometheus.yml: rule_files: - "alert.rules.yml" Reinicie o Prometheus.O que você deve ver: Regra de alerta carregada; alertas aparecem em /alerts.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Verificar se o SNMP Exporter coleta métricas do roteador Linux | curl 'http://localhost:9116/snmp?target=192.168.56.1&module=if_mib' | Métricas SNMP retornadas no formato Prometheus. |
| Verificar se o Prometheus coleta do SNMP Exporter | Acesse http://192.168.56.10:9090/targets | Target SNMP com status UP. |
| Verificar visualização no Grafana | Dashboard exibe métricas do roteador Linux. | |
| Verificar alerta no Prometheus | Acesse http://192.168.56.10:9090/alerts | Alerta aparece quando condição é atendida. |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| SNMP Exporter não coleta métricas | Firewall bloqueando UDP 161 ou comunidade SNMP incorreta | Verifique regras de firewall e snmpd.conf |
| Prometheus não encontra o target SNMP | Erro no prometheus.yml ou snmp_exporter não rodando | Cheque a configuração e status do serviço |
| Dashboard do Grafana vazio | Query incorreta ou fonte de dados mal configurada | Revise a query e a configuração da fonte de dados |
| Alerta não dispara | Regra de alerta mal escrita ou não incluída no prometheus.yml | Verifique sintaxe e inclusão do arquivo de regras |
Segurança e hardening
- Altere a comunidade SNMP padrão 'public' para uma string forte em produção
- Restrinja o acesso ao SNMP Exporter e Prometheus apenas a IPs autorizados
- Use autenticação forte no Grafana e altere a senha padrão
- Aplique atualizações de segurança em todos os softwares
Checklist final
Referências
- Prometheus - Getting started · Prometheus (CNCF) (prometheus.io)
- Grafana - Getting started · Grafana Labs (grafana.com)
- 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
