Monitoramento é um trabalho fundamental na vida de qualquer sysadmin.
Não importa se você é responsável pelo serviço de correio, pelo servidor de arquivos, pelo servidor web ou pela telefonia da empresa. Monitorar seus recursos e identificar problemas atuais e prováveis ocorrências futuras é a chave para um downtime reduzido nos sistemas da empresa, e, consequemente, uma maior lucratividade e sucesso nos negócios.
Especificamente no que se refere a telefonia, um item que precisa ser monitorado e que muitas vezes acaba sendo ignorado é a qualidade do sinal dos chips GSM utilizados em sua central telefônica.
Um chip GSM indisponível pode significar uma ligação com maior custo, ou, até mesmo, uma ligação não realizada e qualquer destas alternativas é certamente indesejável.
Então, se você utiliza Asterisk e seus chips estão inseridos em produtos da Khomp (placa ou EBS), este post é para você.
Requisitos
- Servidor Asterisk funcional
- Driver Khomp 4.0 ou superior funcional
- Serial da placa ou EBS Khomp (pode ser obtido com o comando khomp summary no Asterisk)
- Número dos canais onde estão conectados os chips (pode ser obtido com o comando khomp channels show no Asterisk – atenção à nota existente neste texto)
- Serviço SNMP funcional
Configurando o SNMP
Antes de mais nada, precisamos identificar se o KQueryServer da Khomp está ouvindo na porta 14161. Isso pode ser feito com o comando:
netstat -natup | grep -i 14161
Espere receber uma saída similar a esta:
udp 0 0 0.0.0.0:14161 0.0.0.0:* 12920/kqueryserver
Caso a porta não esteja sendo ouvida, verifique sua configuração do driver da Khomp. A documentação online pode ter a resposta dos seus problemas, mas em último caso você pode abrir um chamado com o suporte da empresa, que poderá lhe auxiliar nesta questão.
Após vencer esta etapa, é preciso então configurar seu SNMP para usar a ferramenta KQueryServer da Khomp como proxy SNMP.
Para isso, basta adicionar no seu arquivos /etc/snmp/snmpd.conf a seguinte linha:
proxy -v 1 -c khomp localhost:14161 .1.3.6.1.4.1.32624
Garanta também que a comunidade public possa ser lida. Isso pode ser feito com a seguinte linha:
rocommunity public
Recarregue o snmp e teste o funcionamento do proxy com este comando no próprio servidor VoIP:
snmpget -v 1 -c public localhost .1.3.6.1.4.1.32624.1.3.5.7.0
Você deve receber como saída a versão do API Khomp em uso, algo como:
SNMPv2-SMI::enterprises.32624.1.3.5.7.0 = STRING: “K3L API 3.2 – (rev: 19198)”
Configurando o MRTG
Depois do SNMP configurado é preciso configurar o MRTG.
O arquivo de configuração MRTG modelo, pode ser baixado aqui. Após colocá-lo no diretório /etc/, edite-o colocando os dados necessários, que são:
- host: seu servidor VoIP. Atenção: se o MRTG rodar em outro servidor, é preciso garantir que o mesmo tenha acesso a porta 161 udp.
- channel: é o canal onde está o chip, obtido pelo comando khomp channels show. NOTA: aqui há uma “pegadinha”. Sempre some +1 ao valor do canal obtido através do comando indicado.
- serial_khomp: este é o número serial da sua placa ou EBS Khomp.
Não esqueça também de adaptar o parâmetro Workdir à seu cenário.
Depois de modificar o arquivo, é preciso copiar o script mrtg_channel_gsm.sh (baixe o mesmo aqui) para o diretório /usr/local/sbin.
UPDATE 20/07/16: em algum momento na versão 4.X do driver, as OIDs do KQueryServer foram alteradas. Se você está tendo problemas com o script acima, utilize este script. Ele foi testado com a versão 4.3_007 do driver.
Após, crie ou edite o cronjob mrtg (/etc/cron.d/mrtg), adicionando a seguinte linha ao final do mesmo:
*/5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg-channel-gsm.cfg ] && [ -d "$(grep '^[[:space:]]*[^#]*[[:space:]]*WorkDir' /etc/mrtg-channel-gsm.cfg | awk '{ print $NF }')" ]; then mkdir -p /var/log/mrtg ; env LANG=C /usr/bin/mrtg /etc/mrtg-channel-gsm.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi
Por fim, acesse o diretório configurado no parâmetro WorkDir e rode o seguinte comando:
indexmaker --title="MRTG - GSM Qualidade do sinal canal <seu_canal> (<sua_operadora>)" /etc/mrtg-channel-gsm.cfg > index.html
E, para finalizar, só mais um dica: além de grafar a qualidade do sinal, você também pode usar o SNMP para monitorar o registro dos canais GSM e até mesmo a disponibilidade de seu link E1, disparando alarmes quando houver falha nos mesmo.
Acesse a documentação do KQqueryServer e veja o que mais você pode monitorar em sua telefonia.
Boa monitoração. 😉
UPDATE 26/08/14: confira no repositório o script e cfg do MRTG para monitoração usando chan_dongle.