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.
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
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.