Pular para o conteúdo principal

Monitorando sinal rx-power gbic Mikrotik via Zabbix

Ambiente utilizado foi maquina Debian 8 Jessie + Zabbix Server 3.2.7. Após várias tentativas de conseguir essa monitoração por snmp e não funcionar (não encontrei a OID ou não existe ela rsrs), comecei a procurar uma forma de fazê-lo via ssh, e acabou dando certo.

Criei um usuário no Mikrotik(CRS212) com permissão para leitura:
Exemplo: 
Usuário – zabbix 
Senha – zabbix

Acesse o terminal do Debian Zabbix:
Digite: apt install sshpass
Será instalado esse pacote para que possamos enviar a senha junto com o comando no Linux para o Mikrotik.

Agora teste a conexão via ssh com o Mikrotik
ssh usuariomikrotik@ipdomikrotik
será feita uma pergunta:
Are you sure you want to continue connecting (yes/no)?
Responda YES

Pronto, já podemos enviar o comando direto do Debian Zabbix para o Mikrotik.
sshpass -p senhausuariomikrotik ssh usuariomikrotik@ipmikrotik interface ethernet monitor number=0  once | grep rx-power | sed 's/dBm//g' | awk '{print $2}'

Explicando o comando:

sshpass – permite enviar a senha junto com todo o comando, para não ser necessário digita-la posteriormente.

ssh – para conexão Linux ao Mikrotik

Agora abaixo os comandos que serão utilizados para pegar a informação no terminal do Mikrotik

interface – comando para entrar no diretório interface do mikrotik

ethernet – para acesso ao diretório da portas do equipamento

monitor – visualização de detalhes das portas ou de uma especifica

number – informar a porta especifica que você procura a informação x, dentro do terminal mikrotik digite “interface ethernet print” ele vai listar o número de cada interface, no meu exemplo utilizei o “0” que é referente a porta sfp1.

once – mostrar apenas uma vez, devido o valor rx-power ser dinâmico eu utilizo o onde para me retornar a informação apenas uma vez. 


Até aqui o comando lhe passará a seguinte informação (imagem abaixo), note que é bastante coisa, mas só preciso nesse momento do rx-power. Isso é o que o restante do comando vai fazer, que é tratar a saída do comando somente com o que preciso.

Obs: não entrarei em detalhes sobre cada comando, apenas o que cada um está tratando no exemplo.


| grep rx-power | sed 's/dBm//g' | awk '{print $2}'

grep – mostrará a linha onde tem a string rx-power

sed – substitui “dBm” por vazio

awk – vai mostrar apenas o segundo campo da linha onde fica o valor “-10.936”


Nesse momento temos a informação de forma totalmente manual, agora vamos configurar o Agente Zabbix para utilizar o UserParameter e realizar o comando.
Edite o arquivo /etc/zabbix/zabbix_agentd.conf, procure por UserParameter=0
Ele tem a seguinte sintaxe  UserParameter=<key>,<command>
key – nome que você vai dar ao parâmetro, pode ser qualquer um.
Seguido do comando que acabamos de testar ficando dessa forma:

UserParameter=rxpower,sshpass -p senhausuariomikrotik ssh usuariomikrotik@ipmikrotik interface ethernet monitor number=0  once | grep rx-power | sed 's/dBm//g' | awk '{print $2}'


salve e saia da edição.

Reinicie o serviço do agente Zabbix

/etc/init.d/zabbix-agent restart

Utilizaremos o comando zabbix_get para testar o UserParameter que acabamos de configurar.

zabbix_get -s 127.0.0.1 -k rxpower

Explicando o comando:
zabbix_get - O Zabbix Get é um utilitário de linha de comando que pode ser utilizado para se comunicar com o agente de monitoração do Zabbix e requisitar um dado do agente.
Parâmetro –s, especifica o DNS ou IP do host a ser consultado.
Parametro –k, especifica a chave de item que se deseja o valor.

Nesse ponto acabei encontrando o seguinte problema, ao executar o zabbix_get:

Could not create directory ‘/var/lib/zabbix//.ssh’
Host key verification failed.

E não me retornava o valor esperado, o primeiro passo foi criar o arquivo .ssh na pasta /var/lib/zabbix , apenas criei e deixei lá vazio.
Depois editei o arquivo /etc/ssh/sshd_config e adicionei as linhas

AllowUsers root
AllowUsers zabbix

Salve e saia do arquivo e reinicie o serviço ssh.

 /etc/init.d/ssh restart

Rodei o zabbix_get novamente e funcionou.

Criação do item no Zabbix
Acesse o Zabbix na interface Web e crie um host com uma interface do agente com 127.0.0.1
Vá em itens > criar item


Pronto, monitoramento sendo realizado ok.





Comentários

  1. Boa tarde, pode me auxiliar com relação a um SW HP?
    Estou tentando coletar os sinais RX e TX dos Transceivers. Até consegui as mibs e configurei, mas alguns apresentam resultados que não consegui traduzir ainda. TX retorna 250, 88 por exemplo, e RX -3.21 K. Outros transceivers me reportam sempre 2.15 G, tanto RX com TX.

    ResponderExcluir
    Respostas
    1. Olá amigo, ainda não trabalhei com esse equipamento que você descreveu, aqui utilizo apenas Mikrotik, mas posta tua duvida no grupo Zabbix Brasil no Telegram, a galera lá já encarou de tudo, vou deixar o link aqui (https://telegram.me/joinchat/AI7jrT05Fqe8BscujO5IfQ), vou dar uma olhadinha lá se alguém já teve essa sua mesma necessidade, eu encontre algo posto aqui.

      Excluir
  2. Seuguem as OIDs de TX e RX

    .1.3.6.1.4.1.14988.1.1.19.1.1.9.1 - Value Type INTEGER - SFP Optical Tx
    .1.3.6.1.4.1.14988.1.1.19.1.1.10.1 - Value Type INTEGER - SFP Optical Rx

    Dependendo da versão do Mikrotik, será preciso atualizar o IOS.

    ResponderExcluir
  3. Bom dia, estou tentando obter os dados através desse acesso, mas não estou conseguindo, e estou tendo somente essa resposta com o zabbix_get:

    sh: 1: sh: 1: seds/dBm//g: not foundawk{print$2}: not found

    Host key verification failed.
    Comando colocado no UserParameter do Agente

    UserParameter=rxpower,sshpass -p xxx ssh
    zabbix@xxxxxx -p xxx interface ethernet monitor number=0 once | grep
    rx-power | sed's/dBm//g' | awk'{print$2}'

    Onde o X são as informações do mikrtik o mesmo está com o SO 6.40.3

    poderiam me ajudar nessa por favor

    ResponderExcluir
    Respostas
    1. Com essa versão do RouterOS basta você utilizar as OID's
      .1.3.6.1.4.1.14988.1.1.19.1.1.9.1 - Value Type INTEGER - SFP Optical Tx
      .1.3.6.1.4.1.14988.1.1.19.1.1.10.1 - Value Type INTEGER - SFP Optical Rx

      que vc vai conseguir pegar o TX e RX
      quando fiz o tutorial ainda não funcionava essas OID's

      Excluir
  4. root@Srv-zabbix:~# snmpwalk -v 2c -c public xxx.xxx.xxx.xxx
    .1.3.6.1.4.1.14988.1.1.19.1.1.10.1
    SNMPv2-SMI::enterprises.14988.1.1.19.1.1.10.1 = No more variables left in this MIB View (It is past the end of the MIB tree)

    ao consultar estou recebendo a seguinte mensagem. o que devo esta fazendo de errado?
    Obs: o xxx corresponde ao ip do meu mikrotik (ocultado)
    Obrigado

    ResponderExcluir
    Respostas
    1. Qual a versão do MK?
      essa OID vai funcionar somente a partir da 6,40 se não me engano.

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

Monitoração de status ONU Fiberhome com Zabbix

Cenário utilizado foi um Debian 8 com Zabbix 3.2 e Banco Mysql, esse tutorial exige que você já tenha familiaridade com comandos snmp para coleta de informações de seus dispositivos e criação de itens e triggers no Zabbix, primeiro passo é garantir que o servidor Zabbix tenha acesso snmp a OLT Fiberhome e segundo obter o arquivo MIB e coloca-lo no /usr/share/snmp/mibs do Zabbix-Server. Teste a comunicação snmp entre servidor e OLT, acesse o terminal do Zabbix-Server.

Digite:

snmpwalk -v2c -c [comunidade] [ip-da-olt]

terá uma saída semelhante a imagem:









Pronto, a comunicação está funcionando.

Agora podemos buscar por informações especificas sobre a OLT nesse link podemos encontrar vários parâmetros para utilizar junto ao comando snmpwalk, no nosso exemplo utilizaremos apenas dois, o "authOnuListMac" vai listar todas as Onu's autorizadas e seus respectivos Mac's.

Digite no terminal Zabbix:

snmpwalk -v2c -c [comunidade]  [ip-da-olt] authOnuListMac


















O outro parâmetro é o &qu…

Lista de códigos dos países Ubiquiti

Algumas vezes precisamos acessar dispositivos via ssh, em caso de rádios da Ubiquiti você vai se deparar com códigos que referenciam a um determinado país, ao acessar o dispositivo via ssh seja com terminal linux ou via putty no windows com o comando "cat /tmp/system.cfg" para listar as configurações,  a linha "radio.1.countrycode=CÓDIGO" informa com qual país o rádio está configurado, segue abaixo a listagem de códigos:

<option value=”32″>Argentina</option>
<option value=”51″>Armenia</option>
<option value=”533″>Aruba</option>
<option value=”36″>Australia</option>
<option value=”40″>Austria</option>
<option value=”31″>Azerbaijan</option>
<option value=”48″>Bahrain</option>
<option value=”52″>Barbados</option>
<option value=”112″>Belarus</option>
<option value=”56″>Belgium</option>
<option value=”84″>Belize</option>
<option value=”68″>Bolivi…