Monitoramento BGP no MikroTik com Zabbix e SNMP

10 min de leitura Redes
Monitoramento BGP no MikroTik com Zabbix e SNMP

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:

  1. 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.
  2. 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: idle
  • 2: connect
  • 3: active
  • 4: opensent
  • 5: openconfirm
  • 6: 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

  1. Navegue até Configuration (Configuração) > Templates (Modelos).
  2. Clique em Create template (Criar modelo).
  3. Name: MikroTik BGP Monitoring
  4. Groups: Selecione o grupo adequado (ex: Network Devices).
  5. Description: Template para monitoramento de sessões BGP via SNMP em roteadores MikroTik.
  6. 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:

  1. BGP Peer State: Para saber se a sessão está up ou down.
  2. BGP Inbound Prefixes: Quantidade de rotas recebidas.
  3. BGP Outbound Prefixes: Quantidade de rotas anunciadas.

4.1. Item: Estado da Sessão BGP

  1. Vá em Items (Itens) > Create item (Criar item).
  2. Name: BGP Peer State - {HOST.NAME}
  3. Type: SNMP agent
  4. Key: bgp_peer_state_snmp
  5. Type of information: Numeric (unsigned)
  6. SNMP OID: .1.3.6.1.2.1.15.4.3.1.7
  7. Update interval: 1m (1 minuto é suficiente para BGP)
  8. 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.

  1. Name: BGP Received Prefixes - {HOST.NAME}
  2. Type: SNMP agent
  3. Key: bgp_received_prefixes
  4. SNMP OID: .1.3.6.1.2.1.15.4.3.1.9
  5. Type of information: Numeric (unsigned)
  6. 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

  1. No Template criado, vá em Discovery rules (Regras de descoberta).
  2. Clique em Create discovery rule (Criar regra de descoberta).
  3. Name: Discover BGP Peers
  4. Type: SNMP
  5. SNMP OID: .1.3.6.1.2.1.15.4.3.1.2 (Este OID contém os endereços IP dos peers BGP)
  6. Delay: 1h
  7. 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.

  1. Vá em Items (Itens).
  2. Clique em Create item.
  3. Name: BGP Peer State - {#PEERIP}
  4. Type: SNMP agent
  5. Key: bgp_peer_state.{#PEERIP}
  6. 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.

  1. Vá em Triggers (Gatilhos).
  2. Clique em Create trigger.
  3. Name: Critical: BGP Session Down on {HOST.NAME} ({#PEERIP})
  4. Severity: Disaster (Desastre) ou High (Alto)
  5. 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.

  1. Navegue até Configuration (Configuração) > Hosts (Hospedeiros).
  2. Selecione seu host MikroTik existente ou crie um novo.
  3. No campo Templates, pesquise por "MikroTik BGP Monitoring".
  4. 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

  1. No host MikroTik no Zabbix, verifique a aba Latest data (Dados mais recentes).
  2. Filtre pela chave bgp_peer_state.
  3. 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:

  1. No MikroTik, desative temporariamente uma sessão BGP via /routing bgp session disable.
  2. Aguarde até a próxima execução do trigger (geralmente instantâneo se o item coletou o novo estado).
  3. Verifique a aba Events (Eventos) no Zabbix para confirmar que o alerta foi gerado.
  4. 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.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000