Translations of this page:

Osmius

Agente de Osmius para Asterisk
Nombre del agente: osm_ag_ASTERISK Código de agente: ASTERISK
Contenido: Manual de usuario del agente de Osmius para sistemas Asterisk con soporte para AMI
Autor: Manuel Guillermo Fraga Castro Fecha de creación: 30/09/2008
Revisado por: Fecha de revisión:

Información General

Este agente puede monitorizar diversos parámetros de un servidor Asterisk. Ha sido probado contra un Asterisk 1.4.17 corriendo sobre un sistema Ubuntu 8.04. Sin embargo es altamente recomendable comprobar su funcionalidad antes de implantarlo en un entorno de producción.

El agente de Asterisk ha sido desarrollado usando las funcionalidades y mejoras del framework de Osmius y de las librerías de ACE, por tanto se hace necesaria la instalación de las librerías de ACE para la correcta instalación y funcionamiento del agente de Osmius para Asterisk. Vea el capítulo de instalación.

El agente ASTERISK proporciona hasta cuatro eventos básicos con parámetros de configuración para permitir el escalado de una manera muy sencilla. Los eventos han sido seleccionados por el grupo de Investigación y Desarrollo de Osmius como los más interesantes para este primer desarrollo.

Todos los eventos son remotos, y están basados en el Asterisk Manager Interface (AMI). El agente comprueba la información devuelta por el servidor de Asterisk a través del AMI y elabora una respuesta. Comprueba que tu Asterisk dispone de AMI y que tienes un usuario y contraseña con privilegios de lectura y consulta.

Instancia de Asterisk

Como norma general cada agente de Osmius puede monitorizar un tipo de instancia. Si no te resultan familiares estos conceptos consulta el glosario. Cada instancia se define individualmente en el fichero de configuración (si quieres ampliar esta información vete a agentes e instancias); dependiendo de cada agente hay que definir el tipo de instancia y dependiente de la instancia es la información de conexión.

CONNECTION_INFO

El connection_info o información de conexión es la información que el agente necesita saber para conectarse a la instancia. (Mira un poco más sobre el connection_info)

En el caso del agente de Osmius para Asterisk el prototipo del connection_info sería:

CONNECTION_INFO= -i IP_SERVIDOR_ASTERISK -p PUERTO_AMI_ASTERISK -u USUARIO_ASTERISK -s SECRETO

Donde reemplazaremos en cada instancia declarada:

  • IP_SERVIDOR_ASTERISK: la dirección IP donde se encuentre el servidor de Asterisk que deseamos monitorizar.
  • PUERTO_AMI_ASTERISK: número del puerto accesible por el que acceder al Asterisk Manager Interface.
  • USUARIO_ASTERISK: nombre de usuario con permisos de consulta y lectura.
  • SECRETO: es la manera en la que Asterisk suele denominar a la contraseña.

Un ejemplo podría ser:

CONNECTION_INFO= -i 192.168.15.46 -p 5038 -u usuario -s password

TYPE

El type o tipo define el tipo de instancia que se va a monitorizar. Todas las instancias que se declaren deben de llevar asociado un tipo como puedes ver aquí

En el caso de Asterisk:

TYPE= ASTERISK

Tabla-resumen de eventos para Asterisk

A continuación te mostramos de forma breve las capacidades de este agente, más abajo en esta misma página se describirá cada uno de los eventos de manera más detallada.

EVENTO DESCRIPCIÓN c w a tsegundos Parámetros extra / Observaciones
AVAILABL Disponibilidad de la conexión a Asterisk 1 0 0 300 Modo silencioso ( -s) recomendado
AKUPTIME Tiempo de ejecución de Asterisk en segundos1 600 300 600 Modo silencioso ( -s) recomendado
AKEXST00 Estado de una extensión 1 0 -1 900 -E extension -C contexto
AKMCNT00 Contador de mensajes totales en Mailbox 0 25 100 86400 -E extension -C contexto

Eventos de información

Los eventos de información (Info Events) recuperar información genérica de la instancia que no suele variar con el tiempo. Este tipo de eventos carecen de criticidad, simplemente ofrecen detalles de la instancia.

EVENTO DESCRIPCIÓN tsegundos Observaciones
AKINFVER Versión 86400 (1 día) Versión de Asterisk
AKINFDLP Dialplan 86400 (1 día) Plan de llamadas de Asterisk
AKINFCHN Channels 86400 (1 día) Información de los canales de Asterisk
AKINFCDC Codecs 86400 (1 día) Codecs que dispone el servidor Asterisk
AKINFHNT Pistas 86400 (1 día) Dialplan hints
AKINFMDL Modules 86400 (1 día) Información de los módulos de Asterisk

Eventos del agente de Asterisk

AVAILABL

El evento AVAILABL comprueba si está disponible la conexión con el AMI de Asterisk, para ello intenta crear una nueva conexión, se autentica y espera la respuesta del servidor para verificar si se trata de un servidor de Asterisk o no.

Valores devueltos:

VALOR SIGNIFICADO
1 Disponible
0 No disponible
-1 Error

Parámetros recomendados:

Tipo de comparación Inversa. Cuanto más alto el valor menos crítico el estado (-c 1)
Intervalo de monitorización 300 segundos – 1 hora –> depende de la importancia de la instancia
Umbral de warning 0
Umbral de alerta 0

Ejemplo de parametrización:

AVAILABL = -t 300 -c 1 -w 0 -a 0 -T "disp Asterisk miempresa.net"

Observaciones: Este agente es capaz de conservar las conexiones y reutilizarlas, en lugar de estar creándolas y destruyéndolas a cada evento; excepto cuando detecta que el servidor no está disponible que se comportará de este último modo para detectar la disponibilidad positiva del servidor de Asterisk.

AKUPTIME

El evento AKUPTIME devolverá el tiempo medido en segundos que el servidor de Asterisk lleva funcionando de manera continuada desde el último reinicio.

Valores devueltos:

VALOR SIGNIFICADO
-1 Error
X Número de segundos

Parámetros recomendados:

Tipo de comparación Inversa. Cuanto más alto el valor menos crítico el estado (-c 1)
Intervalo de monitorización 300 segundos – 1 hora –> depende de la importancia de la instancia
Umbral de warning Consulte con el administrador de Asterisk
Umbral de alerta Consulte con el administrador de Asterisk

Ejemplo de parametrización:

AKUPTIME = -t 600 -c 1 -w 600 -a 300 -T "asterisk002 uptime"

Observaciones: En el texto asociado al evento se devolverá el tiempo en formato fácilmente legible: [X] días [Y] horas [Z] minutos.

AKEXST00

El evento AKEXST00 devolverá el estado en el que se encuentra una extensión telefónica del servidor Asterisk.

Parámetros extra:
Este evento necesita dos parámetros adicionales para cumplir su objetivo:

PARÁMETRO SIGNIFICADO Obligatorio
-E identificador de la extensión a monitorizar
-C contexto al que pertenece la extensión

Valores devueltos:

VALOR SIGNIFICADO
-2 Extensión borrada
-1 Error o Extensión no encontrada
0 Extensión detenida
1 Extensión en uso
2 Extensión ocupada
4 Extensión inalcanzable
8 Extensión timbrando

Parámetros recomendados:

Tipo de comparación Inversa. Cuanto más alto el valor menos crítico el estado (-c 1)
Intervalo de monitorización 600 segundos – 1 hora –> depende de la importancia de la extensión
Umbral de warning 0
Umbral de alerta -1

Ejemplo de parametrización:

AKEXST00 = -t 600 -c 1 -w 0 -a -1 -T "extension del jefe" -E 9000 -C default

Observaciones: Puedes declarar hasta 100 eventos de este tipo, para ello basta con que cambies los dos últimos números por otros; es decir podrías declarar AKEXST00, AKEXST01, AKEXST02 … AKEXST99. De esta forma podrías monitorizar hasta 100 extensiones distintas.

AKMCNT00

El evento AKMCNT00 devolverá el número de mensajes existentes en un mailbox de Asterisk. El número de mensajes incluirá tanto los mensajes antiguos como los nuevos.

Parámetros extra:
Este evento necesita dos parámetros adicionales para cumplir su objetivo:

PARÁMETRO SIGNIFICADO Obligatorio
-E identificador del mailbox a monitorizar
-C contexto al que pertenece el mailbox

Valores devueltos:

VALOR SIGNIFICADO
-1 Error
X Número de mensajes en el mailbox

Parámetros recomendados:

Tipo de comparación Directa. Cuanto más alto el valor más crítico el estado (-c 0)
Intervalo de monitorización 600 segundos – 1 día –> depende de la importancia del mailbox
Umbral de warning consulte al administrador de Asterisk
Umbral de alerta consulte al administrador de Asterisk

Ejemplo de parametrización:

AKMCNT00 = -t 86400 -c 0 -w 50 -a 100 -T "mailbox de recepcionista" -E 7000 -C default

Observaciones: Puedes declarar hasta 100 eventos de este tipo, para ello basta con que cambies los dos últimos números por otros; es decir podrías declarar AKMCNT00, AKMCNT01, AKMCNT02 … AKMCNT99. De esta forma podrías monitorizar hasta 100 mailbox distintos.
En el texto asociado a este evento se detallará cuantos mensajes de los totales son nuevos y cuantos antiguos.

Requisitos previos del agente de Asterisk

Para poder compilar este agente se necesitan una serie de requisitos previos, que son genéricos para la compilación de cualquier agente de Osmius, puedes consultar cuales son en requisitos previos.

En particular, para el agente de Osmius para Asterisk, asegúrate que el Asterisk Manager Interface (AMI) está disponible, accesible y que está funcionando adecuadamente. Debes de estar en posesión de un nombre de usuario y contraseña que permita la consulta y que tenga permisos de lectura en el AMI.

Makefiles y compilación del agente de Asterisk

  • Osmius hace uso de Make Project Creator (MPC), para que la creación de los Makefiles sea una tarea trivial. Si quieres saber un poco más de MPC en Osmius consulta la sección de Makefiles en Osmius.
  • En el caso particular del agente de Osmius para Asterisk podemos crear fácilmente el Makefile de la siguiente forma:

Desde el directorio del agente usando la consola o terminal.

Para Linux:

$ACE_ROOT/bin/mpc.pl -type make osm_ag_asterisk.mpc

Para HP-UX:

$ACE_ROOT/bin/mpc.pl -type gnuace osm_ag_asterisk.mpc
  • Ahora que está creado el Makefile compilar el agente es extremadamente sencillo.

Para Linux:

make -f Makefile.Osm_Ag_Asterisk_Osmius

Para HP-UX:

gmake -f Makefile.Osm_Ag_Asterisk_Osmius

Los binarios se instalarán automáticamente en el directorio bin del directorio base OSM_ROOT.

Ejecutar el agente de Asterisk

El agente de Asterisk conserva las mismas características de ejecución del resto de los agentes que puedes consultar en la sección Arrancar y Parar agentes.

Para ejecutar el agente de Asterisk:

osm_ag_ASTERISK[.exe]1) -c osm_ag_ASTERISK.ini -m MASTERAG -p 1950 -d [>> osm_ag_asterisk.log]2)

Ejecución en modo standalone

El agente de Osmius para Asterisk, al igual que el resto de los agentes de Osmius, permite la ejecución en modo standalone. Esta opción puede resultar especialmente útil cuando se está desarrollando un nuevo agente o para realizar las pruebas de concepto de determinado agente.

Básicamente debes de añadir un nuevo valor al fichero de configuración del agente de Osmius para Asterisk (osm_ag_ASTERISK.ini) llamado SNDCMD, tal y como se muestra aquí.

Luego deberás de ejecutar el agente de Osmius para Asterisk poniendo el puerto de comunicaciones con el Agente Maestro a cero, por ejemplo:

osm_ag_ASTERISK[.exe]3) -c osm_ag_ASTERISK.ini -m 00000000 -p 0 -d

Listado de pruebas

Pruebas realizadas al agente de Osmius para Asterisk.

Realizadas por: Manuel G. Fraga Castro
Fecha: 26/09/2008
Prueba Resultado Observaciones
Creación de una instancia con todos sus eventos en modo silencioso OK N/A
Creación de una instancia con todos sus eventos con texto personalizado OK N/A
Creación de una instancia con todos sus eventos pero sin texto personalizado OK N/A
Declaración de 3 instancias con todos sus eventos a 5 segundos y mantenerlo
en ejecución durante 48 horas
OK No hay pérdidas de memoria
Declarar 2 instancias, provocar la desconexión de una y después volver a conectarlaOK N/A
Declarar 1 instancia y probar cada evento OK N/A
Eliminación de parámetro general y comprobar que no arranca OK Se ha borrado PORTCM
Eliminación del CONN_INFO de la instancia y comprobar que no arranca OK N/A
1) , 3) Añade .exe si estás trabajando en una plataforma Windows
2) Opcional, para guardar un fichero con los mensajes que pueda devolver el agente
 
agentes/asterisk.txt · Última modificación: 2010/03/24 15:46 (editor externo)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki