Enviado por admin el
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:
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:
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:
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
10 comentarios
pregunta
Enviado por baboom (no verificado) el
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
Enviado por admin el
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
Enviado por baboom (no verificado) 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
Enviado por taurusam el
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
Enviado por admin el
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
Enviado por Cristian (no verificado) el
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
Enviado por admin el
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
no localizo /usr/src/asterisk...
Enviado por Omar Galaviz (no verificado) el
buenas disculpa, cuando realizo la copia de destino al programa de snmp, no hay directorio de asterisk osea la fuentes en usr/src/ tal como lo indicas..tengo instalado la version 1.8.20.0
espero me puedan ayudar gracias.
En la version de Asterisk 1.8
Enviado por Jennifer Carrasco (no verificado) el
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
Enviado por Geloak (no verificado) el
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