Monitorizar Asterisk con Munin en Centos

Hoy veremos como sacar estadísticas de Asterisk con gráficos a través del programa Munin. Munin se compone de dos paquetes:

  • munin
  • munin-node

El primero se instala donde queremos crear las estadísticas y visualizarlas en una pagina web, el segundo se instala en el servidor donde tenemos instalado Asterisk.

En este articulo veremos como instalar munin y munin-node en el mismo servidor y como instalar munin-node en un segundo servidor.

Antes que nada en el servidor linux donde queremos instalar munin debemos tener instalado un servidor web (en mi caso Apache) y un servidor de correo electrónico para el envío de notificaciones y/o alertas según definidas en los varios plugins de munin.

Como los dos paquetes no vienen en los repositorios de CentOS tenemos que instalar un nuevo repositorio (rpmforge). En este enlace encuentran los paquetes para las distintas versiones de CentOS. En mi caso utilizaré la versión para CentOS 5.X 32bit

cd /usr/src

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i...

rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm

Actualizamos CentOS

yum upgrade

y seguimos con la instalación de munin:

yum install munin munin-node

Encontraremos los archivos de configuración de munin en la carpeta /etc/munin

Como el servidor apache, en CentOS, por defecto busca las paginas web en la carpeta /var/www/html tenemos que mover la carpeta munin creada en /var/www:

cd /var/www

mv munin /var/www/html/astmunin

Primero modificamos el archivo de configuración del servidor munin:

cd /etc/munin

nano munin.conf

en la primera parte definimos las carpetas que usará munin:

dbdir   /var/lib/munin
htmldir /var/www/html/astmunin
logdir  /var/log/munin
rundir  /var/run/munin

Luego definimos una línea para indicar a munin a que correo enviar las alertas y/o notificaciones:

contact.admin.command sendmail -t "Munin notification" admin@voztovoice.org

Para terminar indicamos el servidor que queremos monitorizar:

[VozToVoice]
    address 127.0.0.1
    use_node_name yes

Guardamos los cambios. Todos los plugins para munin están en la carpeta /usr/share/munin/plugins. Lo que se hace para activarlos es crear un link simbólico en la carpeta /etc/munin/plugins. Como los plugins de Asterisk no vienen con la instalación de munin tendremos que seguir estos pasos:

Borrar los enlaces simbólicos presentes en la carpeta plugins:

cd plugins

rm *

Descargar algunos plugins de Asterisk en la carpeta /usr/share/munin/plugins:

cd /usr/share/munin/plugins

Para asterisk 1.6

wget http://www.voztovoice.org/tmp/munin-asterisk.1.6.tar

Para asterisk 1.4

wget http://www.voztovoice.org/tmp/munin-asterisk.1.4.tar

En mi caso la versión 1.6

Descomprimimos el archivo:

tar –xf munin-asterisk.1.6.tar

y borramos el archivo descargado

rm munin-asterisk.1.6.tar

Esta es la lista de archivos para asterisk 1.6:

ls –l

total 28
-rwxr-xr-x 1 root root 2906 Jul 12 08:28 asterisk_channels
-rwxr-xr-x 1 root root 3857 Jul 12 08:28 asterisk_channelstypes
-rwxr-xr-x 1 root root 3138 Jul 12 08:28 asterisk_meetme
-rwxr-xr-x 1 root root 3021 Jul 12 08:28 asterisk_meetmeusers
-rwxr-xr-x 1 root root 4667 Jul 12 08:28 asterisk_sippeers
-rwxr-xr-x 1 root root 3266 Jul 12 08:28 asterisk_voicemail

Ahora tenemos que activarlos en el munin-node de la siguiente forma:

nano /etc/munin/plugin-conf.d/munin-node

Añadimos las siguientes líneas:

[asterisk_*]
user root

Todos estos plugins para sacar las estadísticas se conectan al AMI (Asterisk Manager Interface) de asterisk. Para que esto funcione tenemos que modificar el archivo manager.conf de Asterisk:

nano /etc/asterisk/manager.conf

Añadimos las siguientes líneas al final del archivo:

[munin]
secret = password
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1
write = system,call,log,verbose,command,agent,user
read = system,call,log,verbose,command,agent,user

Guardamos los cambios.

Ahora en todos los plugins de Asterisk modificamos las siguientes líneas:

my $username = $ENV{'username'};
my $secret   = $ENV{'secret'};

para que queden

my $username = $ENV{'munin'};
my $secret   = $ENV{'password'};

Guardamos los cambios y escogemos algunos plugins para las estadísticas de asterisk:

cd /etc/munin/plugins

ln –s /usr/share/munin/plugins/asterisk_channels asterisk_channels

ln –s /usr/share/munin/plugins/asterisk_sippeers asterisk_sippeers

Arrancamos munin-node:

/etc/init.d/munin-node start

Lo configuramos para que arranque en automático:

chkconfig munin-node on

El cron que recoge las estadísticas se ejecuta cada 5 minutos. Si queremos modificarlo hay que cambiar esta línea:

*/5 * * * *     munin test -x /usr/bin/munin-cron && /usr/bin/munin-cron

en el archivo:

/etc/cron.d/munin

Después de un tiempo veremos como aparecen nuestros gráficos entrando en la pagina web http://www.miositio.org/astmunin

Munin1

 

Munin2

 

Instalación y configuración de munin-node en un segundo servidor con IP publica 111.222.111.222

Primero indicamos el segundo servidor en el archivo de configuración de Munin del primero:

nano /etc/munin/munin.conf

Añadimos bajo estas líneas:

[VozToVoice]
    address 127.0.0.1
    use_node_name yes

Las líneas del segundo servidor:

[VozOrg]
    address 111.222.111.222
    use_node_name yes

Luego seguimos el mismo procedimiento para la instalación de munin (en este caso solamente munin-node):

cd /usr/src

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i...

rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm

Actualizamos CentOS

yum upgrade

y seguimos con la instalación de munin-node:

yum install munin-node

En este servidor corre Asterisk 1.4 Bajamos los plugins de asterisk:

cd /usr/share/munin/plugins

wget http://www.voztovoice.org/tmp/munin-asterisk.1.4.tar

Descomprimimos el paquete:

tar –xf munin-asterisk.1.4.tar

Seguimos borrando los plugins configurados y activando los plugins de Asterisk:

rm /etc/munin/plugins/*

nano /etc/munin/plugin-conf.d/munin-node

[asterisk_*]
user root

Creamos la misma entrada en el manager.conf

nano /etc/asterisk/manager.conf

[munin]
secret = password
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1
write = system,call,log,verbose,command,agent,user
read = system,call,log,verbose,command,agent,user

Abrimos el puerto estándar 4949 TCP en el firewall añadiendo esta línea:

-A INPUT -p tcp -m tcp --dport 4949 -j ACCEPT

Volvemos a arrancar iptables:

service iptables restart

Modificamos estas dos líneas en los plugins de Asterisk:

my $username = $ENV{'username'};
my $secret   = $ENV{'secret'};

para que queden

my $username = $ENV{'munin'};
my $secret   = $ENV{'password'};

y creamos los enlaces simbólicos para los plugins que queremos activar:

cd /etc/munin/plugins

ln –s /usr/share/munin/plugins/asterisk_channels asterisk_channels

ln –s /usr/share/munin/plugins/asterisk_sippeers asterisk_sippeers

Para terminar tenemos que dar acceso al servidor de munin para que se pueda conectar a este servidor. Suponiendo que la ip donde está instalado munin es 222.111.222.111 este es el procedimiento:

nano /etc/munin/munin-node.conf

Buscamos esta linea:

allow ^127\.0\.0\.1$

y la cambiamos:

allow ^222\.111\.222\.111$

Ahora podemos arrancar munin-node:

/etc/init.d/munin-node start

y configurarlo para que arranque en automático:

chkconfig munin-node on

Después de algún tiempo en la pagina web aparecerán los dos servidores:

Munin3

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "Monitorizar Asterisk con Munin en Centos" Suscribirse a VozToVoice - Todos los comentarios