quarta-feira, 21 de junho de 2017

Zabbix Monitorando SIP no Asterisk

Neste post vamos apresentar como monitorar uma linha SIP com o zabbix usando o “UserParameter”, para isso será necessário o zabbix_agent no servidor asterisk, após configurar a ponta do cliente, vamos usar o zabbix_get e assim validar antes de configurar o item e a trigger para alertar no e-mail quando a linha estiver off-line. Lembrando que todos os procedimentos postados são testados em máquinas (VMs) de laboratório e muitas vezes pode sim mudar o caminho de alguns arquivos binários ou confs, não interferindo no resultado final, sempre positivo.

O primeiro passo é entrar no arquivo de configuração "sudoers" para dar permissão ao usuário zabbix,desta forma ele consegue fazer a consulta no asteris, sem isso o zabbix_server não consegue fazer a consulta.

[root@srvzabbix ~]# vim /etc/sudoers
Defaults:zabbix !requiretty
Cmnd_Alias ZABBIX_CMD = /usr/sbin/asterisk
zabbix   ALL = (other_user)  NOPASSWD: ALL
zabbix   ALL = (root)        NOPASSWD: ZABBIX_CMD

Agora vamos entrar no arquivo “zabbix_agentd.conf” e adicionar o parâmetro que vai consultar no asterisk o status da linha sip, complementando também adicionaremos a linha “EnableRemoteCommands=1” que assim conseguimos do zabbix server executar comandos remoto no zabbix_agent.

# vim /usr/local/etc/zabbix_agentd.conf
ListenPort=10050
StartAgents=3
ServerActive=192.168.1.10
LogFile=/tmp/zabbix_agentd.log
Hostname=ZabbixCliente
Timeout=3
UnsafeUserParameters=1
EnableRemoteCommands=1
UserParameter=coletasip[*],sudo asterisk -rx 'sip show registry'|grep "$1"|cut -c 71-91

Simplificando, o comando “sudo asterisk -rx 'sip show registry' | grep "$1" | cut -c 71-91” nada mais que você executar o comando abaixo no asterisk.

Asterisk -rx ‘sip show registry’ | grep “1121990999” | cut -c 71-91

Resultado será “Registered” ou “unreachable” etc... A ideia é que a coleta seja feita e se caso o valor for diferente que “registered”, alertar no e-mail.

[root@srvzabbix ~]# zabbix_get -s 192.168.1.X -k coletasip[1121990999]
Registered
Acima validamos que o servidor zabbix está apto a fazer a coleta no cliente, agora partimos para o Item que vai fazer a coleta com o tempo determinarmos.

Criando Item:


Analisando a coleta dos dados:


Obserse que o ultimo valor coletado foi "registered".

Histórico de coletas:


Assim que o zabbix receber um valor que for diferente que registrado ele vai tomar uma ação, que é o que vamos fazer a seguir, criar a trigger.

Criando Trigger:


No meu caso eu utilizo a trigger para analisar as ultimas 3 coletas se são diferentes que "registered" ele me envia um alerta.

Agora que a Trigger foi criada, vamos simular a falha na linha SIP, eu mudei o gateway da maquina somente para simular uma queda de link.

Linha Fora:


Zabbix coletando os valores:


Observe que em seguida a linha já fica online, neste período eu já voltei o gateway e normalizou.

Zabbix identificando os Eventos:


E-mail de alerta recebido:


Bom pessoal acredito que finalizamos esse post por aqui, e lembre-se com Zabbix o "Shell" é o limite. Abraços!

Abaixo o Link do site Udemy, aonde encontra treinamentos Zabbix ministrado pelo nosso amigo Janssem, vale apena conferir. Acesse Já com desconto!

Faça parte também da nossa comunidade Zabbix Brasil.

Um comentário:

  1. Fala Juquinha, beleza?

    Preciso de uma ajuda sua em relação a monitorar o asterisk com o zabbix.

    Aqui na empresa temos uma (URA) e preciso monitorar as ligações dela, quantas ligações são feitas por dia por exemplo, será que pode me ajudar nesse quesito ou se existe algum template. Obrigado

    ResponderExcluir