🔍 O que esse arquivo faz
Esse YAML configura o SNMP Exporter para coletar métricas do seu ER605.
👉 Ele define:
- quais OIDs coletar
- como coletar
- como transformar em métricas Prometheus
⚙️ Fluxo completo
ER605 (SNMP)
↓
SNMP Exporter (:9116)
↓
Prometheus
↓
Grafana
👉 O roteador não expõe métricas HTTP
👉 O exporter faz essa tradução
📦 Entendendo o módulo
modules:
omada_full:
👉 Isso define um perfil de coleta
No Prometheus você chama assim:
params:
module: [omada_full]
🔁 WALK vs GET
WALK
walk:
👉 Varre árvores SNMP inteiras
👉 Usado para tabelas (interfaces, memória)
GET
get:
👉 Consulta direta de um OID
👉 Mais leve
🧠 OIDs (explicação prática)
🖥️ System
1.3.6.1.2.1.1
- uptime
- informações básicas do device
⚡ CPU
hrProcessorLoad
👉 Uso de CPU por core
avg(hrProcessorLoad)
🧠 Memória
hrStorageTable
👉 Estrutura padrão SNMP
Cálculo:
(hrStorageUsed / hrStorageSize) * 100
🌐 Interfaces
ifOperStatus
- 1 = up
- 2 = down
👉 Essencial pra detectar queda de link
🚀 Tráfego (parte mais importante)
ifHCInOctets
ifHCOutOctets
👉 64-bit (correto)
Cálculo:
rate(ifHCInOctets[1m]) * 8
👉 bits por segundo
🔐 SNMPv3 (segurança)
version: 3
security_level: authNoPriv
👉 Autenticado, sem criptografia
⚠️ Observação importante
auth_protocol: MD5
👉 No ER605:
- SHA → costuma falhar
- MD5 → funciona estável
📊 Integração com Prometheus
- job_name: "omada-router"
metrics_path: /snmp
params:
auth: [omada_v3]
module: [omada_full]
static_configs:
- targets:
- <router_ip>
📈 O que você passa a enxergar
Com isso você ganha:
Infra
- uptime
- CPU
- memória
Rede
- tráfego real por interface
- erros
- descartes
- status de link
Diagnóstico real
- saturação
- perda de pacote indireta
- gargalos
🧠 Boas práticas (isso aqui é ouro)
✔️ Sempre usar 64-bit
- use
ifHC* - nunca
ifInOctets
✔️ Criar alertas úteis
Interface down
ifOperStatus == 2
Erros de rede
rate(ifInErrors[5m]) > 10
Saturação
rate(ifHCOutOctets[1m]) * 8 > 800000000
🧠 Caso real - Importância do Monitoramento do Roteador (ER605)
Ao analisar os gráficos acima, é possível observar um comportamento anômalo no consumo de CPU do roteador.
A linha amarela, que representa o uso de CPU, apresentava um padrão inconsistente, com oscilações frequentes e sem uma causa aparente — mesmo sem qualquer alteração nas regras, configurações ou carga de tráfego do ambiente.
Após investigação, foi identificado que esse comportamento estava diretamente relacionado à versão do firmware em uso.
🔍 Diagnóstico
- Consumo de CPU elevado e instável
- Oscilações constantes sem mudança de configuração
- Ausência de correlação com tráfego ou regras de firewall
🛠️ Ação Realizada
- Atualização do firmware para a versão mais recente disponível
✅ Resultado
Após a atualização:
- O consumo de CPU estabilizou
- Redução significativa da utilização (~9%)
- Eliminação das oscilações anormais
- Comportamento previsível e consistente
Esse cenário evidencia a importância do monitoramento contínuo de dispositivos de rede.
Sem visibilidade, esse tipo de problema poderia passar despercebido, impactando:
- performance da rede
- latência
- estabilidade geral do ambiente
Além disso, reforça que nem todo problema está relacionado à carga ou configuração — bugs ou limitações de firmware também podem ser a causa raiz.
🎯 Conclusão
Esse setup tira seu roteador do modo:
“tá funcionando?”
e leva pra:
“como está funcionando?”
👉 Isso é observabilidade de verdade.
Arquivo completo:
modules:
omada_full:
walk:
- 1.3.6.1.2.1.1
- 1.3.6.1.2.1.2
- 1.3.6.1.2.1.31.1.1
- 1.3.6.1.2.1.25.3.3.1.2
- 1.3.6.1.2.1.25.2.3.1
get:
- 1.3.6.1.2.1.1.3.0
metrics:
- name: sysUpTime
oid: 1.3.6.1.2.1.1.3.0
type: gauge
- name: hrProcessorLoad
oid: 1.3.6.1.2.1.25.3.3.1.2
type: gauge
indexes:
- labelname: hrProcessorIndex
type: gauge
- name: hrStorageDescr
oid: 1.3.6.1.2.1.25.2.3.1.3
type: DisplayString
indexes:
- labelname: hrStorageIndex
type: gauge
- name: hrStorageAllocationUnits
oid: 1.3.6.1.2.1.25.2.3.1.4
type: gauge
indexes:
- labelname: hrStorageIndex
type: gauge
- name: hrStorageSize
oid: 1.3.6.1.2.1.25.2.3.1.5
type: gauge
indexes:
- labelname: hrStorageIndex
type: gauge
- name: hrStorageUsed
oid: 1.3.6.1.2.1.25.2.3.1.6
type: gauge
indexes:
- labelname: hrStorageIndex
type: gauge
- name: ifDescr
oid: 1.3.6.1.2.1.2.2.1.2
type: DisplayString
indexes:
- labelname: ifIndex
type: gauge
- name: ifType
oid: 1.3.6.1.2.1.2.2.1.3
type: gauge
indexes:
- labelname: ifIndex
type: gauge
- name: ifMtu
oid: 1.3.6.1.2.1.2.2.1.4
type: gauge
indexes:
- labelname: ifIndex
type: gauge
- name: ifSpeed
oid: 1.3.6.1.2.1.2.2.1.5
type: gauge
indexes:
- labelname: ifIndex
type: gauge
- name: ifAdminStatus
oid: 1.3.6.1.2.1.2.2.1.7
type: gauge
indexes:
- labelname: ifIndex
type: gauge
- name: ifOperStatus
oid: 1.3.6.1.2.1.2.2.1.8
type: gauge
indexes:
- labelname: ifIndex
type: gauge
- name: ifInErrors
oid: 1.3.6.1.2.1.2.2.1.14
type: counter
indexes:
- labelname: ifIndex
type: gauge
- name: ifOutErrors
oid: 1.3.6.1.2.1.2.2.1.20
type: counter
indexes:
- labelname: ifIndex
type: gauge
- name: ifInDiscards
oid: 1.3.6.1.2.1.2.2.1.13
type: counter
indexes:
- labelname: ifIndex
type: gauge
- name: ifOutDiscards
oid: 1.3.6.1.2.1.2.2.1.19
type: counter
indexes:
- labelname: ifIndex
type: gauge
- name: ifName
oid: 1.3.6.1.2.1.31.1.1.1.1
type: DisplayString
indexes:
- labelname: ifIndex
type: gauge
- name: ifAlias
oid: 1.3.6.1.2.1.31.1.1.1.18
type: DisplayString
indexes:
- labelname: ifIndex
type: gauge
- name: ifHighSpeed
oid: 1.3.6.1.2.1.31.1.1.1.15
type: gauge
indexes:
- labelname: ifIndex
type: gauge
- name: ifHCInOctets
oid: 1.3.6.1.2.1.31.1.1.1.6
type: counter
indexes:
- labelname: ifIndex
type: gauge
- name: ifHCOutOctets
oid: 1.3.6.1.2.1.31.1.1.1.10
type: counter
indexes:
- labelname: ifIndex
type: gauge
auths:
omada_v3:
version: 3
security_level: authNoPriv
username: <snmp_user>
auth_protocol: MD5
password: "<snmp_password>"



Top comments (0)