Monitorizar Asterisk con SNMP y Nagios en Centos - Primera parte

Este articulo está dividido en dos partes. En esta primera parte veremos como activar el protocolo SNMP en Asterisk y relativas consultas. En el próximo articulo veremos como instalar y configurar Nagios para lanzar consultas a Asterisk a través del plugin check_snmp.

Una definición del protocolo SNMP tomada de wikipedia: “El Protocolo Simple de Administración de Red o SNMP es un protocolo de la capa de aplicación que facilita el intercambio de información de administración entre dispositivos de red. Es parte de la familia de protocolos TCP/IP. SNMP permite a los administradores supervisar el funcionamiento de la red, buscar y resolver sus problemas, y planear su crecimiento.”

Para empezar miramos si tenemos el modulo res_snmp instalado y cargado en Asterisk:

asterisk –rvvvvvvvvvvvvvvv

CLI> module show like snmp

Si aparece:

snmp1

 

Significa que no lo tenemos. Salimos de la consola:

CLI> quit

Paramos Asterisk:

/etc/init.d/asterisk stop

Instalamos los paquetes que se necesitan para la instalación del modulo res_snmp:

yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-perl net-snmp-utils

Entramos en la carpeta de las fuentes de Asterisk y volvemos a compilar:

cd /usr/src/asterisk-1.6.0.28

make distclean

./configure

make menuselect

En la ventana que aparece nos aseguramos que el modulo res_snmp esté activado:

snmp3

Salimos de la ventana y seguimos:

make

make install

Volvemos a arrancar Asterisk y averiguamos si ahora el modulo está cargado:

/etc/init.d/asterisk start

asterisk –rvvvvvvvvvvvv

CLI> module show like snmp

Esta es la salida:

snmp3

Salimos de la consola de Asterisk y configuramos el archivo res_snmp.conf

CLI> quit

nano /etc/asterisk/res_snmp.conf

[general]
subagent = yes
enabled = yes

Guardamos los cambios y copiamos los OID de Asterisk en la carpeta de snmp. Un OID (identificador de objeto) es una cadena alfanumérica que se utiliza para identificar de forma única un objeto.

cp /usr/src/asterisk-1.6.0.28/doc/asterisk-mib.txt /usr/share/snmp/mibs

cp /usr/src/asterisk-1.6.0.28/doc/digium-mib.txt /usr/share/snmp/mibs

Ahora configuramos SNMP de modo que pueda interactuar con Asterisk:

cd /etc/snmp

movemos el archivo de configuración de default:

mv snmpd.conf snmpd.conf.old

y creamos en nuestro:

nano snmpd.conf

Poniendo las siguientes líneas:

master agentx

agentXPerms 0660 0550 root root

com2sec local localhost public
com2sec remote XXX.XXX.XXX.XXX public

group asterisk v1 local
group asterisk v2c local
group NetWork v1 remote
group NetWork v2c remote

view all included .1

access asterisk "" any noauth exact all none none
access NetWork "" any noauth exact all none none

Primero definimos el agente y los permisos de acceso. Luego definimos dos comunidades. Una tiene acceso local y otra remoto (útil si queremos hacer consultas desde otro servidor). Hay que sustituir XXX.XXX.XXX.XXX con la ip del servidor remoto. Luego definimos dos grupos y que tipo de consultas pueden hacer (en este caso SNMP versión 1 y versión 2c. Definimos el tipo de objetos que pueden consultar (en este caso todos) y los permisos que cada grupo tiene.

Guardamos los cambios y arrancamos SNMP:

/etc/init.d/snmpd start

volvemos el arranque automático:

chkconfig snmpd on

y por ultimo reiniciamos Asterisk:

/etc/init.d/asterisk restart

Para ver los resultados con la descripción de los OID en lugar de los números de los objetos:

export MIBS=all

Ahora ya podemos hacer una consulta utilizando el OID de Asterisk:

snmpwalk -OT -c public -v 2c localhost .1.3.6.1.4.1.22736

Los datos que nos interesan para luego utilizarlos en Nagios son:

ASTERISK-MIB::astVersionString.0 = STRING: 1.6.0.28
ASTERISK-MIB::astVersionTag.0 = Gauge32: 10600
ASTERISK-MIB::astConfigUpTime.0 = Timeticks: (8154954) 22:39:09.54
ASTERISK-MIB::astConfigReloadTime.0 = Timeticks: (8154954) 22:39:09.54
ASTERISK-MIB::astConfigPid.0 = INTEGER: 2601
ASTERISK-MIB::astConfigSocket.0 = STRING: /var/run/asterisk.ctl
ASTERISK-MIB::astConfigCallsActive.0 = Gauge32: 0
ASTERISK-MIB::astConfigCallsProcessed.0 = Counter32: 27

y

ASTERISK-MIB::astChanTypeName.1 = STRING: DAHDI
ASTERISK-MIB::astChanTypeName.2 = STRING: Phone
ASTERISK-MIB::astChanTypeName.3 = STRING: Skinny
ASTERISK-MIB::astChanTypeName.4 = STRING: Local
ASTERISK-MIB::astChanTypeName.5 = STRING: IAX2
ASTERISK-MIB::astChanTypeName.6 = STRING: Gtalk
ASTERISK-MIB::astChanTypeName.7 = STRING: Console
ASTERISK-MIB::astChanTypeName.8 = STRING: OOH323
ASTERISK-MIB::astChanTypeName.9 = STRING: USTM
ASTERISK-MIB::astChanTypeName.10 = STRING: Jingle
ASTERISK-MIB::astChanTypeName.11 = STRING: Agent
ASTERISK-MIB::astChanTypeName.12 = STRING: SIP
ASTERISK-MIB::astChanTypeName.13 = STRING: MGCP

y

ASTERISK-MIB::astChanTypeChannels.1 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.2 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.3 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.4 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.5 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.6 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.7 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.8 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.9 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.10 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.11 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.12 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.13 = Gauge32: 0

En el próximo articulo veremos como implementar SNMP en Nagios y hacer consultas hacia Asterisk

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo

10 comentarios

pregunta

Quizás haya pasado demasiado tiempo pero me está resultando útil vuestra página. Sin embargo, tengo una pregunta: en el comando 

snmpwalk -OT -c public -v 2c localhost .1.3.6.1.4.1.22736

a qúe se refieren los números 1.3.6.1.4.1.22736?

Además, al haber configurado el agentx, me aparece el siguiente warning:

Warning: Failed to connect to the agentx master agent ([NIL]):

esto se debe a que no he configurado ningún agente SNMP para obtener la información?

Gracias!

Re: pregunta

Hola,

1.3.6.1.4.1.22736 se refiere a la raiz de los OID asignados a Asterisk.

De hecho si en lugar de ese numero pones 1. verás que te aparecerán muchas más lineas ya que la consulta se ampliará a todo el servidor Linux.

Para el Warning si te aparece cuando ejecutas el comando:

snmpwalk -OT -c public -v 2c localhost .1.3.6.1.4.1.22736

significa que no has configurado bien la parte Asterisk o no has copiado los OID de Asterisk en la carpeta /usr/share/snmp/mibs como indicado en la guía.

Saludos

resulta que al insertar el

resulta que al insertar el comando

snmpwalk -OT -c public -v 2c localhost .1.3.6.1.4.1.22736

no me visualiza ningún MIB y me da el siguiente error:

SNMPv2-SMI::enterprises.22736 = No Such Object available on this agent at this OID

los ficheros mib ya están copiados desde antes (intento al seguir otra guía) en la carpeta, por eso no sé cuál puede ser el error.

alguna idea?

Gracias!

error al ejecutar

buenas noches.

me podrian ayudar a resolver el siguiente error.

sigo todo los paso para configurar el snmp pero cuando voy a realizar la consulta del OID.

snmpwalk -OT -c public -v 2c localhost .1.3.6.1.4.1.22736

me sale el siguiente error.

DIGIUM-MIB::digium = no more variables left in this MIB view (it is past the end of thr MIB tree)

les agradeceria la solucion de esto

Re: error al ejecutar

Has probado a ejecutar el comando de esta forma:

snmpwalk -OT -c public -v 2c localhost .1

Porque si no te sale error significa que tienes un problema con la configuración de Asterisk, si no te sale nada, tienes un problema con la configuración de SNMP

Saludos

problemas al copiar

Estimados estoy tratando de instalar el agente de nagios en elastix, tengo problemas cuando copio los oid
me aparece este mensaje

cp /usr/src/asterisk-1.6.0.28/doc/asterisk-mib.txt /usr/share/snmp/mibs
cp: no se puede efectuar `stat' sobre «/usr/src/asterisk-1.6.0.28/doc/asterisk-mib.txt»: No existe el fichero o el directorio

agradeceria me pudieran ayudar, desde ya muchas gracias!

Re: problemas al copiar

Hola Cristian,

lo que hace ese comando es copiar los MIB desde la fuentes de Asterisk en la carpeta de los MIB del programa SNMP. Si te fijas las versión de Asterisk del articulo es la 1.6.0.28. Si estás utilizando otra versión tienes que cambiar el comando.

Si te queda más sencillo puedes descargar los dos archivos directamente desde mi sitio web. Entras en la carpeta donde hay que guardarlos:

cd /usr/share/snmp/mibs

y luego:

wget http://www.voztovoice.org/tmp/asterisk-mib.txt
wget http://www.voztovoice.org/tmp/digium-mib.txt

Saludos

En la version de Asterisk 1.8

En la version de Asterisk 1.8 las MIB no estan en los fuentes. hay que bajarlos desde el sitio de Asterisk:

* https://wiki.asterisk.org/wiki/display/AST/Digium+MIB+Definitions
* https://wiki.asterisk.org/wiki/display/AST/Asterisk+MIB+Definitions

y copiarlos en el directorio /usr/share/snmp/mibs con los nombres:

* asterisk-mib.txt
* digium-mib.txt

Espero te ayude..ademas existen algunas dependencias extras: (bzip2-devel) (lm_sensors-devel) (newt-devel)

Saludos.

Decepcionante. Elementos a monitorizar por SNMP escasos

Me he llevado bastante decepción con los elementos que se monitoriza con el módulo de SNMP de asterisk al esperar obtener una información similar al panel de estado del Freepbx y llevar estos parámetros a un software de monitorización de red (nagios y similares) como extensiones caídas, trunks caídos, tiempos de funcionamiento, etc. ...

Da algo de información pero muy escasa. Espero que se aumente el número OIDs disponibles.

La solución pasará por ampliar mis necesidades en la sección snmpd.conf siguiente:

# "Pass-through" MIB extension command
#
#pass .1.3.6.1.4.1.8072.2.255 /bin/sh PREFIX/local/passtest
#pass .1.3.6.1.4.1.8072.2.255 /usr/bin/perl PREFIX/local/passtest.pl

con scripts que consulten al #asterisk -r

y por lo tanto ya no vale la pena recompilar asterisk para implementar el módulo res_snmp.

Un saludo, Ángel

Suscribirse a Comentarios de "Monitorizar Asterisk con SNMP y Nagios en Centos - Primera parte" Suscribirse a VozToVoice - Todos los comentarios