Introdução ao Monitoramento de Roteadores VyOS com SNMP e Grafana
No cenário atual de infraestrutura de TI, a visibilidade em tempo real da saúde da rede é crítica. Para administradores de sistemas que gerenciam roteadores baseados em VyOS, o monitoramento contínuo não é apenas uma conveniência, mas uma necessidade operacional. O VyOS, um sistema operacional de roteamento de código aberto baseado em Linux, oferece suporte robusto ao protocolo SNMP (Simple Network Management Protocol), permitindo a extração de métricas detalhadas sobre tráfego, uso de CPU, memória e integridade do link.
No entanto, coletar esses dados é apenas metade da equação. A verdadeira inteligência surge quando transformamos números brutos em gráficos visuais e alertas proativos. É aqui que o Grafana entra em cena. Ao integrar o VyOS ao Grafana através de um intermediário como o Prometheus ou InfluxDB, você cria um painel centralizado capaz de detectar gargalos de banda, picos de latência e falhas iminentes antes que elas impactem os usuários finais.
Neste tutorial técnico, guiaremos você pelo processo completo de configuração. Começaremos pela instalação do servidor SNMP no VyOS, passando pela configuração das permissões de segurança, até a coleta dos dados e sua visualização final no Grafana. Este guia é essencial para sysadmins, engenheiros de rede e profissionais de DevOps que buscam elevar o nível de maturidade de sua infraestrutura.
Etapa 1: Preparação do Ambiente VyOS
O primeiro passo é garantir que o serviço SNMP esteja instalado e configurado corretamente dentro do VyOS. Por padrão, algumas instalações podem vir com o serviço desativado ou configurado apenas para localhost. Vamos habilitar e configurar o agente SNMPv2c ou v3.
Instalando e Ativando o Serviço SNMP
Para começar, acesse o terminal do VyOS via SSH ou console serial. Navegue até o modo de configuração:
vyos@vyos:~$ configure
[edit]
Agora, defina os parâmetros básicos do SNMP. Recomendamos fortemente o uso de uma string de comunidade (community string) forte se estiver usando SNMPv2c, ou a configuração de autenticação e privacidade se optar pelo SNMPv3. Para fins deste tutorial, utilizaremos SNMPv2c pela simplicidade, mas em produção, avalie o v3.
Defina a localização física do equipamento e o contato administrativo:
[edit]
set service snmp location 'Datacenter São Paulo - Rack A04'
set service snmp contact '[email protected]'
Configure a string de comunidade. Substitua sua_senha_snmp por uma sequência complexa e única:
[edit]
set service snmp community public authorization 'sua_senha_snmp'
Defina os endereços IP permitidos para consultar o SNMP. Isso é crucial para a segurança. Nunca deixe aberto para 0.0.0.0/0 em produção. Permita apenas o IP do seu servidor de monitoramento (Grafana/Prometheus):
[edit]
set service snmp client 192.168.1.50/32 authorization 'sua_senha_snmp'
Finalize a configuração e salve:
[edit]
commit
save
exit
Verificando a Conectividade
Antes de prosseguir, teste se o VyOS está respondendo às requisições SNMP. No seu servidor Linux que rodará o Grafana, instale as ferramentas snmpwalk e execute:
snmpwalk -v 2c -c sua_senha_snmp 192.168.1.100 sysUpTime
Se você receber uma resposta com o tempo de atividade do roteador, a comunicação básica está estabelecida.
Etapa 2: Coleta de Métricas com Node Exporter e Prometheus
O Grafana não se comunica diretamente com SNMP de forma nativa para métricas de infraestrutura de rede complexas. O padrão da indústria é utilizar o Prometheus como banco de dados de séries temporais e um coletor de métricas. Para VyOS, a melhor abordagem é usar o snmp_exporter do Prometheus.
O snmp_exporter atua como uma ponte: ele consulta o VyOS via SNMP e expõe os dados em formato HTTP/JSON no estilo Prometheus, que o Grafana entende perfeitamente.
Instalando o Prometheus Stack
No servidor Linux (recomendamos Ubuntu Server ou Debian), vamos utilizar Docker Compose para facilitar a gestão. Crie um diretório de projeto:
mkdir ~/vyos-monitoring && cd ~/vyos-monitoring
Crie o arquivo docker-compose.yml:
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
restart: unless-stopped
snmp-exporter:
image: prom/snmp-exporter:latest
container_name: snmp-exporter
ports:
- "9116:9116"
volumes:
- ./snmp.yml:/etc/snmp_exporter/snmp.yml
- ./config/:/config
restart: unless-stopped
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin123
volumes:
- grafana_data:/var/lib/grafana
restart: unless-stopped
volumes:
prometheus_data:
grafana_data:
Configurando o snmp.yml
O arquivo snmp.yml define quais OIDs (Object Identifiers) serão coletadas. Para VyOS, precisamos mapear as interfaces de rede e os recursos do sistema. Baixe um exemplo base da biblioteca oficial ou crie uma configuração mínima focada em interface:
# snmp.yml
modules:
vyos_interface:
auth:
community: "sua_senha_snmp"
version: 2
lookups:
- source_indexes: ['ifIndex']
lookup: 'ifDescr'
metrics:
- name: ifInOctets
oid: 1.3.6.1.2.1.2.2.1.10
type: GAUGE
help: "The total number of octets received on the interface"
- name: ifOutOctets
oid: 1.3.6.1.2.1.2.2.1.16
type: GAUGE
help: "The total number of octets transmitted out of the interface"
- name: ifInErrors
oid: 1.3.6.1.2.1.2.2.1.14
type: COUNTER
help: "Inbound errors"
Nota Técnica: O VyOS segue o padrão IF-MIB. Os OIDs acima são padrões RFC 1213. Para monitorar CPU e Memória, você precisará adicionar módulos específicos do VyOS ou usar o MIB privado se disponível, mas para a maioria dos casos de tráfego de rede, o IF-MIB é suficiente.
Iniciando os Serviços
Crie também o arquivo prometheus.yml apontando para o exporter:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'vyos-router'
static_configs:
- targets: ['snmp-exporter:9116']
metrics_path: /snmp
params:
module: [vyos_interface]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- target_label: address
replacement: '192.168.1.100' # IP do VyOS
- source_labels: [__param_target]
target_label: instance
Inicie o ambiente:
docker-compose up -d
Etapa 3: Visualização no Grafana
Agora que os dados estão fluindo, precisamos conectá-los ao Grafana para criar uma interface visual intuitiva.
Adicionando o DataSource
Acesse o painel do Grafana em http://seu-servidor-ip:3000. Faça login com as credenciais definidas no docker-compose (admin/admin123).
- Vá para Configuration > Data Sources.
- Clique em Add data source e selecione Prometheus.
- No campo Prometheus server URL, insira:
http://prometheus:9090. - Clique em Save & Test. Você deve ver uma mensagem de sucesso.
Importando Dashboards Prontos
Ao invés de construir gráficos do zero, a comunidade VyOS e Prometheus oferece dashboards prontos. No Grafana, vá para + Create > Import.
Use o ID do dashboard da comunidade. Um dos mais populares para monitoramento de roteadores via SNMP é o ID 11315 ou 8966. Cole o ID no campo e clique em Load.
Se preferir criar manualmente, siga estes passos:
- Crie um novo Dashboard.
- Adicione um Painel (Add Panel).
- No query editor, selecione o datasource Prometheus.
- Insira uma expressão PromQL. Para ver a largura de banda de entrada (Ingress) em bits por segundo:
rate(node_snmp_ifInOctets[5m]) * 8
Dica Pro: Como o VyOS exporta bytes, multiplicar por 8 converte para bits. Utilize a função rate() para calcular a taxa de variação ao longo do tempo, evitando gráficos acumulativos que nunca descem.
{{ifDescr}} para identificar qual interface está sendo monitorada.Etapa 4: Boas Práticas e Segurança
A configuração básica é apenas o começo. Para uma infraestrutura robusta, considere as seguintes otimizações:
Otimização de Coleta
O SNMP pode ser pesado se configurado incorretamente. No VyOS, evite polling muito frequente (abaixo de 15 segundos) para não sobrecarregar a CPU do roteador. Ajuste o scrape_interval no prometheus.yml conforme necessário.
Filtragem de Interfaces
Roteadores VyOS possuem muitas interfaces virtuais (tunnel, loopback). Para não poluir seus gráficos, filtre apenas as interfaces físicas ou WANs importantes. No snmp_exporter, você pode usar regex nos labels para excluir interfaces específicas.
Alertas no Grafana
Não basta ver o gráfico; é preciso ser alertado. Configure Alert Rules no Prometheus ou diretamente no Grafana.
Exemplo de regra de alerta: Se o tráfego de entrada na interface WAN exceder 80% da capacidade do link por mais de 5 minutos, envie uma notificação para Slack ou Email.
# Exemplo de expressão de alerta no Grafana
(node_snmp_ifInOctets{ifDescr=~"wan.*"} * 8) > (1000000000 * 0.8)
Onde 1000000000 representa 1 Gbps e 0.8 é 80%.
Conclusão
A integração do VyOS com o ecossistema Prometheus e Grafana transforma a gestão de rede de uma tarefa reativa para uma prática proativa. Ao seguir os passos descritos — desde a configuração segura do SNMP no roteador até a visualização avançada no Grafana — você ganha controle total sobre o desempenho da sua infraestrutura.
Lembre-se: monitoramento é um ciclo contínuo. Revise seus dashboards semanalmente, ajuste os limiares de alerta e explore novas métricas conforme a complexidade da sua rede cresce. Com essa base sólida, sua equipe estará preparada para resolver problemas de conectividade com precisão cirúrgica.
Para mais informações sobre OIDs SNMP específicas do VyOS, consulte a documentação oficial do projeto VyOS e os MIBs padrão IETF disponíveis em repositórios públicos.