Monitorando no Zabbix as sessões BGP do RouterOS v6 (Mikrotik) via SNMP

Ouvir tutorial

Neste tutorial vamos aprender a monitorar o status da sessão BGP no RouterOS v6 o nosso “querido” Mikrotik, bem como receber notificações se a sessão cair ou reconectar.

Como a mikrotik não disponibiliza essas informações via SNMP das sessões BGP, usaremos das artimanhas. Então juntamente com meu amigo Saulo Costa qual identificou que existe uma OID dos script que estão no RouterOS (1.3.6.1.4.1.14988.1.1.8.1.1.2) e outra (1.3.6.1.4.1.14988.1.1.18.1.1.2.***) que é possivel executar-lo bem como ter retornos, e ai meu amigo as mentes voaram longe!

Acompanhe o raciocínio:

1º Crie um script em seu RouterOS

Darei o nome do script de bgp_snmp

A idéa é pegar as informações no scrip e apenas imprimi-las. Experimente executar o script agora!

Você terá uma saída em JSON com as informações que iremos coletar lá no Zabbix.

2º Configure o SNMP

Será necessário habiliar o write-access, então tenha certeza de ter uma community fora dos padrões (ex public {mando te matar!}) bem como restringir o acesso apenas para IP ou Prefixos de seus servidores.
Segue um exemplo:

3º Teste do seu servidor Zabbix

No exemplo meu router tem o IP 10.50.50.30 e minha community é sUpErS3cret0. Se você não tem as MIBS e o comando snmpwalk não “funciona” leia aqui.

Você tera um resultado com todos os seus scripts:

O que é iportante para nós é esse numerozinho aqui: 14988.1.1.8.1.1.2.7, mais propriamente dito o final dele, neste exemplo o nº 7, este é o identificador do script. Anote ele, vamos precisar ele lá no nosso template.
Agora vamos rodar o script e fazer um get para ver se temos o retorno com o OID 1.3.6.1.4.1.14988.1.1.18.1.1.2.X. Onde X é o nº do identificador do script (neste ex 7).

Você irá receber uma saída com todos os peers do seu router:

4º Importando o template para o Zabbix

Faça download do template RR Mikrotik – BGP – SNMP Script.xml e importe o mesmo.

5º Crie/Edite um host usando o template

Informe o Nome, grupo bem como IP com agente SNMP.

Selecione o template RR Mikrotik – BGP – SNMP Script

Lembra do identificador, precisamos informa-lo aqui.

Acesse os dados recentes para verificar se os itens foram criados (lembrado que ele é executado a cada 5min) então tenha paciência de aguardar 10min ou execute manualmente.

Bem mais simplique que o metodo do outro tutorial com script python.

Espero que tenha gostado! E mais uma vez deixo meu agradecimento ao parceio Saulo. Se fizer algo legal não deixe de compartilhar! Com isso você pode criar até mesmo outros templates, para coletar outras informações. Isso é o legal de compartilhar!

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

10 Resultados

  1. Excelente, parabéns…

  2. Eldio Venancio disse:

    Boa tarde. Primeiramente parabéns pelo projeto, funcionou perfeitamente quando tem poucas sessões BGP’s configuradas. Sabes me dizer onde posso alterar as restrições para o SNMP pegar um JSOn maior, pois tenho alguns mikrotiks com + de 12 sessões configuradas e ele da erro de “Cannot receive string value: out of memory.” na tentativa de coleta por parte do item SNMP. Abraço.

    • Verifica o nome do peer, se tiver algum caracter especial, espaço poderá dar erro.

      • Eldio Venancio disse:

        Quanto aos nomes só tinha letras, numeros, “-” e “_”.
        Pelo terminal, consigo pegar todos normalmente pelo snmpwalk.
        Renomeei todos os Peers de 1 até 16(1,2,3,4…..16) e fui removendo um por um até chegar em 11.
        Parece como se o resultado do Json no itém do Zabbix comporta um determinado tamanho de string.
        No retorno dentro da opção “Testar > Obter valor” dentro do item SNMP(Retorno Json) acredito que talvez tenha alguma variável no zabbix que possa alterar o tamanho maximo da string.

      • Eldio Venancio disse:

        Fiz mais um teste. Peguei o resultado pego via snmpwalk e coloquei o resultado em “valor” em vez de “Obter valor do host”. Desta forma não deu erro. Logo acredito que seja algo com o Zabbix+apache, pois o Script e o item em si funciona corretamente. O erro só dá quando o zabbix vai obter o resultado do host.

        • Eldio Venancio disse:

          Quando ele obtém um resultado com mais de 1703 caracteres ele da erro(usei o site quantasletras.com para contar caracteres).
          Peguei os 11 que estavam funcionando e fui adicionando um numero ao final deles(ex: a1, a12,a123,a1234) até dar o erro. O meu estava dando 1621 caracteres[funcionando].A estrutura de retorno começa em {“peer”: [ e vai até ]}(Sem usar as ” no inicio e no fim)
          Quando adicionei 83 caracteres distribuídos 10 a 10 em cada Peer ocorreu o erro. Deve ser algo relacionado a alocação de memória no Zabbix.

  3. Rafael disse:

    Muito bom seu tutorial, estava precisando monitorar as sessões BGP é funcionou massa de mais, testado e aprovado, muito obrigado por postar esse conteúdo. Testado e aprovado. fica minha contribuição como forma de agradecimento. Abç.

  4. Claudio disse:

    tentei de todas as formas fazer funcionar com o zabbix versao 4.4 , teria como me manda o script do xml para esta versao ? tentei alterar apenas o xml para o meu zabbix aceitar o arquivo xml porem percebi que faltou alguns itens do xml .

  1. 28 de dezembro de 2021

    […] PARA PARA…. Quando escrevi este tutorial não existia esse tutorial aqui, recomendo você ler ele, pois descobrimos outra forma mais […]

Deixe um comentário

O seu endereço de e-mail não será publicado.