Introdução ao Monitoramento de BGP no MikroTik com Zabbix
O protocolo Border Gateway Protocol (BGP) é a espinha dorsal da internet, responsável por trocar informações de roteamento entre sistemas autônomos. Para administradores de rede e sysadmins, garantir a estabilidade e visibilidade das sessões BGP em equipamentos MikroTik é uma tarefa crítica. Falhas silenciosas na adjacência BGP podem resultar em perda total de conectividade com provedores upstream ou parceiros de peering, causando impactos severos nos serviços.
A solução robusta para esse cenário combina a coleta de métricas via SNMP (Simple Network Management Protocol) com a plataforma de monitoramento Zabbix. Enquanto scripts no MikroTik podem alertar sobre falhas em tempo real, o Zabbix oferece histórico, dashboards visuais e integração com sistemas de ticketing. Este tutorial detalha o processo completo de configuração do SNMP no roteador MikroTik e a criação dos templates e items necessários para monitorar as sessões BGP no Zabbix.
Pré-requisitos de Infraestrutura
Antes de iniciar a configuração, certifique-se de que os seguintes componentes estão disponíveis e acessíveis:
- MikroTik RouterOS (versão 6.x ou 7.x): Acesso administrativo via SSH ou Winbox.
- Servidor Zabbix: Instalado, em execução e com acesso web configurado.
- Zabbix Agent ou SNMP Poller: Para este guia, utilizaremos o método SNMP Poller, que é nativo ao servidor Zabbix e não requer instalação de agente no roteador MikroTik.
- Comunicação de Rede: O servidor Zabbix deve ter acesso UDP na porta 161 do MikroTik.
Etapa 1: Configuração do SNMP no MikroTik
O primeiro passo é habilitar e configurar o serviço SNMP no roteador MikroTik para permitir que o Zabbix consulte os dados. É fundamental definir uma string de comunidade segura e limitar o acesso ao endereço IP do servidor Zabbix.
1.1. Definir a Comunidade SNMP
Acesse o terminal do MikroTik ou o Winbox e execute os comandos abaixo para configurar a comunidade. Substitua SEU_COMUNIDADE_SEGURA por uma string complexa e IP_DO_ZABBIX pelo endereço IP do servidor Zabbix.
/snmp set \
community=SEU_COMUNIDADE_SEGURA \
enabled=yes \
addresses=IP_DO_ZABBIX/32 \
port=161 \
authentication-protocol=md5 \
authentication-passphrase=SUA_SENHA_AUTENTICACAO \
privacy-passphrase=SUA_SENHA_PRIVACY
Nota Técnica: Em versões recentes do RouterOS, é recomendado usar autenticação com chave (MD5/SHA) em vez de strings simples para maior segurança. Se estiver usando uma versão antiga ou preferir simplicidade inicial, pode omitir os parâmetros de passphrase, mas isso expõe seus dados.
1.2. Verificar a Configuração
Verifique se o serviço está ativo e escutando na porta correta:
/snmp print
O resultado deve mostrar enabled=yes e o endereço correto em addresses.
1.3. Teste de Conectividade Básica
No servidor Zabbix (ou em uma máquina com ferramentas SNMP instaladas), teste a conectividade usando o comando snmpwalk:
snmpwalk -v2c -c SEU_COMUNIDADE_SEGURA IP_DO_MIKROTIK system
Se receber dados sobre hostname, uptime e localização, o SNMP está funcionando corretamente.
Etapa 2: Compreensão do MIB e Estrutura de Dados BGP
O Zabbix utiliza o protocolo SNMP para obter valores específicos definidos no Management Information Base (MIB). Para monitorar BGP, precisamos focar no MIB-II estendido e nos MIBs específicos da MikroTik.
As informações mais críticas sobre sessões BGP estão contidas em duas áreas principais:
- MIB-II (RFC 4273 - BGPv4-MIB): Contém dados padrão da indústria, como estado da vizinhança e número de prefixos recebidos.
- MikroTik Private MIB: Oferece detalhes extras específicos do RouterOS, como o tipo de sessão (eBGP/iBGP) e métricas de tráfego específicas.
O OID (Object Identifier) chave para o estado da sessão BGP no padrão SNMP é 1.3.6.1.2.1.15.4.3.1.7 (na árvore bgpPeerState). Os valores possíveis são:
1: idle2: connect3: active4: opensent5: openconfirm6: established (Sessão ativa)
Etapa 3: Criação do Template no Zabbix
Agora, configuraremos o Zabbix para coletar esses dados. Acessaremos a interface web do Zabbix e criaremos um template dedicado.
3.1. Criar o Template
- Navegue até Configuration (Configuração) > Templates (Modelos).
- Clique em Create template (Criar modelo).
- Name: MikroTik BGP Monitoring
- Groups: Selecione o grupo adequado (ex: Network Devices).
- Description: Template para monitoramento de sessões BGP via SNMP em roteadores MikroTik.
- Clique em Add (Adicionar).
3.2. Configurar o Host Macro
Para facilitar a manutenção, use macros para definir a comunidade SNMP. Vá na aba Macros do template recém-criado e adicione:
{$SNMP_COMMUNITY} = SEU_COMUNIDADE_SEGURA
Etapa 4: Criação dos Items (Itens de Dados)
Os items são as configurações que dizem ao Zabbix o que coletar. Criaremos três itens principais:
- BGP Peer State: Para saber se a sessão está up ou down.
- BGP Inbound Prefixes: Quantidade de rotas recebidas.
- BGP Outbound Prefixes: Quantidade de rotas anunciadas.
4.1. Item: Estado da Sessão BGP
- Vá em Items (Itens) > Create item (Criar item).
- Name: BGP Peer State - {HOST.NAME}
- Type: SNMP agent
- Key: bgp_peer_state_snmp
- Type of information: Numeric (unsigned)
- SNMP OID:
.1.3.6.1.2.1.15.4.3.1.7 - Update interval: 1m (1 minuto é suficiente para BGP)
- Clique em Add.
Aviso Importante sobre Múltiplas Sessões: O OID acima retorna uma lista se houver múltiplos peers. Para monitorar peers específicos, você deve usar a funcionalidade de LLD (Low Level Discovery) ou especificar o índice do peer no OID. A abordagem mais comum em MikroTik é mapear o IP do peer ao índice na tabela BGP.
Para simplificar este tutorial e garantir funcionamento imediato, utilizaremos uma abordagem direta assumindo que você conhece o índice ou usará a descoberta automática. Se preferir monitorar todos os peers de forma dinâmica, recomenda-se usar um script no Zabbix para gerar os items dinamicamente via LLD.
4.2. Item: Prefixos Recebidos (Inbound)
Para coletar o número de prefixos recebidos, utilizamos o OID .1.3.6.1.2.1.15.4.3.1.9.
- Name: BGP Received Prefixes - {HOST.NAME}
- Type: SNMP agent
- Key: bgp_received_prefixes
- SNMP OID:
.1.3.6.1.2.1.15.4.3.1.9 - Type of information: Numeric (unsigned)
- Clique em Add.
Etapa 5: Implementação de Low Level Discovery (LLD)
A maneira mais profissional de monitorar BGP no MikroTik é descobrir automaticamente todos os peers e criar items para cada um. Isso evita que você precise editar o template toda vez que adicionar um novo upstream.
5.1. Criar a Regra de Descoberta SNMP
- No Template criado, vá em Discovery rules (Regras de descoberta).
- Clique em Create discovery rule (Criar regra de descoberta).
- Name: Discover BGP Peers
- Type: SNMP
- SNMP OID:
.1.3.6.1.2.1.15.4.3.1.2(Este OID contém os endereços IP dos peers BGP) - Delay: 1h
- Clique em Add.
5.2. Configurar as Macros de Descoberta{#lld-ip}
Após criar a regra, o Zabbix criará macros como {#PEERIP}. Agora, precisamos vincular items a essa descoberta.
- Vá em Items (Itens).
- Clique em Create item.
- Name: BGP Peer State - {#PEERIP}
- Type: SNMP agent
- Key: bgp_peer_state.{#PEERIP}
- SNMP OID:
.1.3.6.1.2.1.15.4.3.1.7.{#INDEX}
Explicação Técnica: O {#INDEX} é uma macro automática gerada pelo Zabbix durante a descoberta SNMP, correspondente ao índice do peer na tabela BGP. Isso garante que o estado consultado corresponda exatamente ao IP descoberto.
Etapa 6: Criação de Triggers (Gatilhos)
Triggers definem quando o Zabbix deve gerar um alerta. Para BGP, o mais crítico é detectar a queda da sessão.
- Vá em Triggers (Gatilhos).
- Clique em Create trigger.
- Name: Critical: BGP Session Down on {HOST.NAME} ({#PEERIP})
- Severity: Disaster (Desastre) ou High (Alto)
- Expression:
{MikroTik BGP Monitoring:bgp_peer_state.{#PEERIP}.last()}=1 or {MikroTik BGP Monitoring:bgp_peer_state.{#PEERIP}.last()}<6 and {MikroTik BGP Monitoring:bgp_peer_state.{#PEERIP}.last()}>0
Lógica da Expressão: Se o valor for 1 (idle) ou qualquer valor menor que 6 (established), mas maior que 0, significa que a sessão caiu ou está tentando reconectar.
Etapa 7: Vinculação ao Host MikroTik
Com o template pronto, é hora de aplicá-lo ao equipamento físico.
- Navegue até Configuration (Configuração) > Hosts (Hospedeiros).
- Selecione seu host MikroTik existente ou crie um novo.
- No campo Templates, pesquise por "MikroTik BGP Monitoring".
- Selecione o template e clique em Update (Atualizar).
Etapa 8: Validação e Troubleshooting
Após vincular o template, aguarde alguns minutos para o Zabbix iniciar a coleta de dados.
8.1. Verificar Disponibilidade
- No host MikroTik no Zabbix, verifique a aba Latest data (Dados mais recentes).
- Filtre pela chave
bgp_peer_state. - Os valores devem aparecer. Se estiverem vazios, verifique as permissões de firewall e a string de comunidade.
8.2. Testar Alertas
Para validar o sistema de alertas:
- No MikroTik, desative temporariamente uma sessão BGP via
/routing bgp session disable. - Aguarde até a próxima execução do trigger (geralmente instantâneo se o item coletou o novo estado).
- Verifique a aba Events (Eventos) no Zabbix para confirmar que o alerta foi gerado.
- Reative a sessão e verifique se o evento é marcado como "Resolved" (Resolvido).
Boas Práticas de Segurança e Otimização
Para manter sua infraestrutura de monitoramento segura e eficiente, considere as seguintes práticas:
- VLAN Dedicada: Se possível, rode o tráfego SNMP em uma VLAN administrativa isolada.
- SNMPv3: Para ambientes de alta segurança, migre para SNMPv3. O Zabbix suporta SNMPv3 com autenticação e privacidade (AES/DES), mas a configuração é mais complexa. No MikroTik, use
/snmp set protocol=3. - Rate Limiting: No MikroTik, considere limitar o número de requisições SNMP por segundo para evitar sobrecarga da CPU durante picos de monitoramento.
- Histórico: Não armazene dados de BGP por longos períodos. Sessões BGP mudam frequentemente; manter histórico de mais de 30 dias consome espaço desnecessário no banco de dados do Zabbix.
Conclusão
A integração entre MikroTik e Zabbix via SNMP oferece uma visibilidade poderosa sobre a saúde das suas conexões BGP. Ao automatizar a descoberta de peers e configurar triggers precisos, os sysadmins podem detectar falhas de roteamento antes que elas impactem os usuários finais.
Lembre-se de adaptar os OIDs conforme a versão do RouterOS, pois mudanças maiores na estrutura de MIB podem ocorrer em atualizações futuras. Mantenha seus templates versionados e documente quaisquer customizações específicas da sua rede. Com essa base sólida, você está preparado para escalar seu monitoramento para outras funcionalidades do MikroTik, como análise de tráfego e monitoramento de links MPLS.