O Munin monitora e exibe gráficos de performance do sistema. Com ele é possível produzir gráficos de performance diários, semanais, mensais, anuais e relatórios com muitas informações relevantes. Ele pode monitorar recursos como memória, espaço em disco, uso de CPU e aplicações para servidores como MySQL, Apache e Squid.
Uma caracteristica legal do Munin é que com apenas algumas linhas de código você pode criar um plugin para o monitoramento de praticamente qualquer coisa.

munin-grafico

Munin Plugins para Asterisk

munin-asterisk

Há quatro scripts (três dos quais são baseadas em um roteiro de Paul McCormack).

Basicamente, é só você adicioná-los da mesma forma como plugins normais do Munin. Aqui você poderá encontrar um Tutorial Munin para Debian muito bom.

A propósito se você estiver utilizando o Debian é muito simples instala-lo, basta ir no terminal é digitar apt-get install munin e apt-get install munin-node.

PLUGINS

asterisk_channels

Este plugin exibe canais simultâneos Asterisk.


#! / usr / bin / perl-w
#
# Copyright (C) 2009 Paul McCormack
#
# Este programa é software livre; você pode redistribuí-lo e / ou
# Modificá-lo sob os termos da GNU General Public License
# Publicada pela Free Software Foundation; versão datada de 2 de junho,
# 1991.
#
# Este programa é distribuído na esperança que possa ser útil,
# Mas SEM QUALQUER GARANTIA, sem mesmo a garantia implícita de
# COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Veja a
# GNU General Public License para mais detalhes.
#
# Você deve ter recebido uma cópia da GNU General Public License
# Junto com este programa, se não, escreva para a Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, E.U.A..
#
# Se você melhorar esse script por favor, envie a sua versão para o meu endereço de e-mail
# Com a atualização aviso de copyright com seu nome.
#
# Plugin para monitorar o número de peers SIP registrados
#
#
#% # = Família asterisco

use strict;

if ($ ARGV [0] e $ ARGV [0] eq "autoconf")
(
print "sim  n";
exit 0;
)

if ($ ARGV [0] e $ ARGV [0] eq "config")
(
print "graph_title Asterisk canais ativos  n";
print "graph_args - base 1000-l 0  n";
pares de impressão "graph_vlabel  n";
imprimir asterisco graph_category " n";
channels.label print "pares linha  n";
exit 0;
)

aberta (linha, "asterisk-rx" principais canais de mostrar "|');

my ($ ativo) = (0,0);

while (
)
(
$ ativo = $ 1 if ($ _ = ~ / ( d + chan) ativo /);
)

close (linha);

print "n channels.value $ active ";

asterisk_IAX_peers

Este plugin mostra os peers IAX (online / offline / online unmonitored / offline)


#! / usr / bin / perl-w
#
# Copyright (C) 2009 Paul McCormack
#
# Este programa é software livre; você pode redistribuí-lo e / ou
# Modificá-lo sob os termos da GNU General Public License
# Publicada pela Free Software Foundation; versão datada de 2 de junho,
# 1991.
#
# Este programa é distribuído na esperança que possa ser útil,
# Mas SEM QUALQUER GARANTIA, sem mesmo a garantia implícita de
# COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Veja a
# GNU General Public License para mais detalhes.
#
# Você deve ter recebido uma cópia da GNU General Public License
# Junto com este programa, se não, escreva para a Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, E.U.A..
#
# Se você melhorar esse script por favor, envie a sua versão para o meu endereço de e-mail
# Com a atualização aviso de copyright com seu nome.
#
# Plugin para monitorar o número de pares IAX registrado
#
#
#% # = Família asterisco

use strict;

if ($ ARGV [0] e $ ARGV [0] eq "autoconf")
(
print "sim  n";
exit 0;
)

if ($ ARGV [0] e $ ARGV [0] eq "config")
(
print "graph_title Asterisk ligado pares IAX  n";
print "graph_args - base 1000-l 0  n";
pares de impressão "graph_vlabel  n";
imprimir asterisco graph_category " n";
peers_online.label print "pares linha  n";
peers_offline.label print "pares offline  n";
print "linha unmon_online.label unmonitored  n";
exit 0;
)

aberta (linha, "asterisk-rx" pares IAX2 show "|');

my ($ linha) = (0,0);
my ($ offline) = (0,0);
my ($ unmon_online) = (0,0);
my ($ unmon_offline) = (0,0);

while (
)
(
$ linha = $ 1 if ($ _ = ~ / peers  [( d + linha) /);
$ offline = $ 1 if ($ _ = ~ / peers  [ d + online, ( d +) offline /);
unmon_online $ = $ 1 if ($ _ = ~ / peers  [ d + online,  d + offline, ( d +) unmonitored /);
)

close (linha);

peers_online.value print "$ linha  n";
peers_offline.value print "$ offline  n";
unmon_online.value print "$ unmon_online  n";

asterisk_SIP_peers

Este plugin mostra os peers SIP (online / offline / online unmonitored / offline)


#! / usr / bin / perl-w
#
# Copyright (C) 2009 Paul McCormack
#
# Este programa é software livre; você pode redistribuí-lo e / ou
# Modificá-lo sob os termos da GNU General Public License
# Publicada pela Free Software Foundation; versão datada de 2 de junho,
# 1991.
#
# Este programa é distribuído na esperança que possa ser útil,
# Mas SEM QUALQUER GARANTIA, sem mesmo a garantia implícita de
# COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Veja a
# GNU General Public License para mais detalhes.
#
# Você deve ter recebido uma cópia da GNU General Public License
# Junto com este programa, se não, escreva para a Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, E.U.A..
#
# Se você melhorar esse script por favor, envie a sua versão para o meu endereço de e-mail
# Com a atualização aviso de copyright com seu nome.
#
# Plugin para monitorar o número de peers SIP registrados
#
#
#% # = Família asterisco

use strict;

if ($ ARGV [0] e $ ARGV [0] eq "autoconf")
(
print "sim  n";
exit 0;
)

if ($ ARGV [0] e $ ARGV [0] eq "config")
(
print "graph_title Asterisk ligado peers sip  n";
print "graph_args - base 1000-l 0  n";
pares de impressão "graph_vlabel  n";
imprimir asterisco graph_category " n";
peers_online.label print "pares linha  n";
peers_offline.label print "pares offline  n";
print "linha unmon_online.label unmonitored  n";
print "offline unmon_offline.label unmonitored  n";
exit 0;
)

aberta (linha, "asterisk-rx" sip show peers "|');

my ($ linha) = (0,0);
my ($ offline) = (0,0);
my ($ unmon_online) = (0,0);
my ($ unmon_offline) = (0,0);

while (
)
(
$ linha = $ 1 if ($ _ = ~ / Monitorada: ( d +) / online);
$ offline = $ 1 if ($ _ = ~ / Monitorada:  d + online, ( d +) offline /);
unmon_online $ = $ 1 if ($ _ = ~ / Unmonitored: ( d +) / online);
unmon_offline $ = $ 1 if ($ _ = ~ / Unmonitored:  d + online, ( d +) offline /);
)

close (linha);

peers_online.value print "$ linha  n";
peers_offline.value print "$ offline  n";
unmon_online.value print "$ unmon_online  n";
unmon_offline.value print "$ unmon_offline  n";

munin_asr_php

Este se conecta a um banco de dados MySQL CDR e mostra como as coisas têm sido ao longo da última hora (número de chamadas atendidas, não respondeu, ocupado, congestionamento).

Você precisará configurar o seu CDR database/table e os detalhes de conexão do MySQL.


#! / usr/bin/php5
DATE_SUB (NOW (), 60 minutos de intervalo) por disposição do grupo";
$ connection = mysql_connect ( "localhost", "root ","");
$ resultado = mysql_query ($ sql);
$ resposta = 0;
$ ocupado = 0;
$ falha = 0;
$ NoAnswer = 0;
if (mysql_num_rows ($ result)> 0) (
while ($ row = mysql_fetch_assoc ($ result)) (
switch ($ row [ 'disposição']) (
case "RESPONDEU":
$ resposta = $ row [ 'count'];
break;
case "BUSY":
$ row = $ ocupado [ 'count'];
break;
case "FAILED":
$ falha = $ row [ 'count'];
break;
caso resposta "não":
$ row = $ NoAnswer [ 'count'];
break;
)
)
)
echo "answered.value $ respondida  n";
echo "$ n busy.value ocupado ";
echo "$ failed.value falhou  n";
echo "noanswer.value $ NoAnswer  n";
?>
Related Posts with Thumbnails

Um Comentario para “Monitorando o Asterisk com Munin”

Trackbacks/Pingbacks

  1. Monitorar Asterisk com OpenNMS - [...] eu vi este artigo, que estabelece uma receita para o acompanhamento Asterisk básico usando Munin, em notícias do [...]

Deixe um comentario