asterisk

Um recurso pouco explorado no Asterisk é a monitoração via SNMP.

O Asterisk já implementa há bastante tempo o SNMP, e a MIB ainda é a mesma desde 2008. Mas, algumas empresas, como por exemplo, a Khomp, estendem o recurso padrão disponibilizando uma série de outras informações muito úteis que merecem ser monitoradas (status do link E1, por exemplo).

Neste post, vou dar um exemplo bem simples de como monitorar a evolução das chamadas ativas usando o MRTG e o SNMP nativo do Asterisk.

mrtg_logo

Para começar instale os pacotes necessários para a implementação:

apt-get install librrds-perl mrtg-rrd

Após, é preciso que o suporte a SNMP esteja configurado no Asterisk (módulo res_snmp) e que o mesmo esteja ativo no arquivo /etc/asterisk/res_snmp.conf.

Depois que o Asterisk estiver funcionando corretamente e com suporte a SNMP, iremos configurar o SNMP para que as informações do Asterisk possam ser obtidas.

Para isso, abra o arquivo /etc/snmp/snmpd.conf e adicione as seguintes linhas no final:

# Enable AgentX support
master agentx
# Set permissions on AgentX socket and containing
# directory such that process in group 'asterisk'
# will be able to connect
agentXSocket /var/agentx/master
agentXPerms 0660 0550 nobody asterisk

Reinicie o SNMP para que as novas configurações entrem em produção.

Após, crie o script /usr/local/sbin/calls_snmp_mrtg.sh com o segundo conteúdo.

#! /bin/bash
host=localhost
community=public
version=1
oid=.1.3.6.1.4.1.22736.1.2.6
value=`/usr/bin/snmpwalk -c $community -v $version $host $oid| grep -i ASTERISK-MIB| cut -f 4 -d " "`
# Saída da primeira linha do MRTG (cor verde) - incoming
echo 0
# Saída da segunda linha do MRTG (cor azul) - outcoming
echo $value
# Uptime
echo 0
# Nome
echo 0

Não esqueça de dar permissão de execução para o mesmo.
Crie agora o arquivo /etc/mrtg-asterisk.cfg, com os seguintes dados:

EnableIPv6: no
WorkDir: /var/www/mrtg/asterisk
Options[_]: growright,nopercent,perminute
Logformat: rrdtool
Interval: 1
PathAdd: /usr/bin/
LibAdd: /usr/lib/perl5/
Title[ligacoes_ativas-asterisk]: Ligações ativas - Asterisk
PageTop[ligacoes_ativas-asterisk]: <H1>Liga&ccedil;&otilde;es ativas - Asterisk</H1>
Target[ligacoes_ativas-asterisk]: `/usr/local/sbin/calls_snmp_mrtg.sh`
YLegend[ligacoes_ativas-asterisk]: Ligações ativas
LegendI[ligacoes_ativas-asterisk]:
LegendO[ligacoes_ativas-asterisk]: Liga&ccedil;&otilde;es ativas
ShortLegend[ligacoes_ativas-asterisk]: chamadas
MaxBytes[ligacoes_ativas-asterisk]: 100
Step[ligacoes_ativas-asterisk]: 60

Crie também o diretório /var/www/mrtg/asterisk.
Crie (ou edite) o arquivo /etc/cron.d/mrtg, adicionando a seguinte linha:

*/1 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg-asterisk.cfg ] && [ -d "$(grep '^[[:space:]]*[^#]*[[:space:]]*WorkDir' /etc/mrtg-asterisk.cfg | awk '{ print $NF }')" ]; then mkdir -p /var/log/mrtg ; env LANG=C /usr/bin/mrtg /etc/mrtg-asterisk.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi

Por fim, edite o arquivo /etc/mrtg-rrd.conf, e altere o arquivo .cfg listado para /etc/mrtg-asterisk.cfg.

Pronto. Agora basta aguardar que logo seu gráfico começará a ser plotado.

Para acessá-lo vá no endereço http(s)://www.meudominio.com.br/cgi-bin/mrtg-rrd.cgi

 

chamadas

 

Monitorando Asterisk utilizando SNMP e MRTG
Classificado como:        
  • No Centos estou tendo esse problema:

    env LANG=C /usr/bin/mrtg /etc/mrtg-asterisk.cfg

    WARN: found several copies of RRDs.pm in your path: /usr/lib64/perl5/, /usr/lib64/perl5, . I will be using /usr/lib64/perl5/. This could be a problem if this is an old copy and you think I would be using a newer one!

    2014-10-29 11:44:00: ERROR: Target[ligacoes_ativas-asterisk][_IN_] ”/usr/local/sbin/calls_snmp_mrtg.sh” evaluated to ‘/usr/local/sbin/calls_snmp_mrtg.sh’ instead of a number

    2014-10-29 11:44:00: ERROR: Target[ligacoes_ativas-asterisk][_OUT_] ”/usr/local/sbin/calls_snmp_mrtg.sh” evaluated to ‘/usr/local/sbin/calls_snmp_mrtg.sh’ instead of a number

    • mhterres

      Olá.

      Você tem certeza que no mrtg-asterisk.cfg está usando o caracter ` ao invés do caracter ‘ na linha

      Target[ligacoes_ativas-asterisk]: `/usr/local/sbin/calls_snmp_mrtg.sh`

      []s

Social Media Widget Powered by Acurax Web Development Company
Optimization WordPress Plugins & Solutions by W3 EDGE
%d blogueiros gostam disto: