Etiqueta: monitor

  • Monitorizar Asterisk con Nagios

    Para todo aquel que no conozca Nagios, es una aplicación que permite mostrar el estado de un sistema y de sus parámetros más relevantes (CPU, memoria, disco duro, tráfico de red, etc…) así como monitorizar algunos servicios básicos e importantes (servidores y servicios varios como web, ftp, correo, etc) y como no podía ser de otro modo, también Asterisk.

    Una de las ventajas que tiene esta aplicación es que dispone de un atractivo, sencillo e intuitivo interfaz web que permite mostrar de un rápido vistazo los parámetros más importantes de tantos servidores como queramos, así como monitorizar los servicios, direcciones IP, tráfico de red y un largo etcétera.

    Buscando sistemas interesantes para monitorizar Asterisk y recordando una antigua conversación en la lista Asterisk-ES, he encontrado un plugin para Nagios que permitiría, de forma muy sencilla, monitorizar Asterisk y obtener algunos datos de interés como si el servidor está funcionando, extensiones SIP o IAX registradas y, modificando un poco el código (escrito en el intuitivo lenguaje Perl :D) poder obtener otros parámetros interesantes como llamadas simultaneas, líneas disponibles, o algún que otro.

    De momento, dicho plugin se encuentra en la versión 1.0, aunque imagino que se podría hacer más completo.

    Podeis ver más información en la web del creador (en francés):
    http://blog.nicolargo.com/2008/10/superviser-asterisk-dans-nagios-grace-a-nagisk.html

    y descargar el plugin desde el enlace:
    http://www.nicolargo.com/dev/nagisk/nagisk-1.0.tgz

    Relacionada:

    Actualización:

    Me estais enviando aplicaciones OpenSource para la monitorización y me parece interesante comentarlo por aquí para el resto de visitantes:

    ¿Conoceis alguna otra aplicación que permita monitorizar los parámetros de Asterisk y que sea libre?

  • RTPBreak 1.3 Released!

    RTPBreak es una aplicación que detecta, reconstruye y analiza cualquier trama RTP.

    La principal ventaja de esta aplicación es que no requiere de la presencia de paquetes RTCP y es totalmente independiente del protocolo de señalización utilizado (SIP, H.323, SCCP, …). La entrada es una secuencia de paquetes, la salida es un conjunto de archivos que puedes utilizar como entrada para otras aplicaciones como Wireshark, sox, grep, awk, cut, sed, etc.

    Un ejemplo de esta aplicación:

    xenion@gollum:~/dev/rtpbreak-1.3$ sudo src/rtpbreak -i wifi0 \
    -g -m -d logz
    
    + rtpbreak v1.3 running here!
    + pid: 3580, date/time: 19/02/2008#09:49:21
    + Configuration
    
    + INPUT
    Packet source: iface 'wifi0'
    Force datalink header length: disabled
    
    + OUTPUT
    Output directory: 'logz'
    RTP raw dumps: enabled
    RTP pcap dumps: enabled
    Fill gaps: enabled
    Dump noise: disabled
    Logfile: 'logz/rtp.0.txt'
    Logging to stdout: enabled
    Logging to syslog: disabled
    Be verbose: disabled
    
    + SELECT
    Sniff packets in promisc mode: enabled
    Add pcap filter: disabled
    Expecting even destination UDP port: disabled
    Expecting unprivileged source/destination UDP ports: disabled
    Expecting RTP payload type: any
    Expecting RTP payload length: any
    Packet timeout: 10.00 seconds
    Pattern timeout: 0.25 seconds
    Pattern packets: 5
    
    + EXECUTION
    Running as user/group: root/root
    Running daemonized: disabled
    * You can dump stats sending me a SIGUSR2 signal
    * Reading packets...
    ! [rtp0] detected: pt=0(g711U) 192.168.0.30:2072 => 192.168.0.20:2074
    ! [rtp1] detected: pt=0(g711U) 192.168.0.20:2074 => 192.168.0.30:2072
    * [rtp1] probable reverse RTP stream: [rtp0]
    + Status
    Alive RTP Sessions: 2
    Closed RTP Sessions: 0
    Detected RTP Sessions: 2
    Flushed RTP packets: 3358
    Lost RTP packets: 122 (3.51%)
    Noise (false positive) packets: 0
    + [rtp1] stats: packets inbuffer=262 flushed=1673 lost=61(3.52%),
    
    call_length=1m2s
    + [rtp0] stats: packets inbuffer=270 flushed=1685 lost=61(3.49%),
    
    call_length=1m2s
    * [rtp1] closed: packets inbuffer=0 flushed=2800 lost=115(3.95%),
    
    call_length=1m28s
    * [rtp0] closed: packets inbuffer=0 flushed=2819 lost=106(3.62%),
    
    call_length=1m28s
    --
    Caught SIGINT signal (2), cleaning up...
    --
    
    + Status
    Alive RTP Sessions: 0
    Closed RTP Sessions: 2
    Detected RTP Sessions: 2
    Flushed RTP packets: 5619
    Lost RTP packets: 221 (3.78%)
    Noise (false positive) packets: 0
    + No active RTP streamxenion@gollum:~/dev/rtpbreak-1.3$

    Como podeis comprobar, es una herramienta muy potente y muy interesante para monitorización y sobre todo para ayudar a localizar quién o qué está ocasionando problemas. 🙂

    Enlace: http://xenion.antifork.org/rtpbreak/doc/rtpbreak_en.html

  • AsteriskMonitor: Conectando Asterisk y Java *Actualizacion*

    *Actualización*: Roger de la Fuente me avisa que han creado una nueva página web para este proyecto que podeis seguir desde aquí: AsteriskMonitor.org

    Acabo de ver en el wiki VoIP-Info un proyecto GPL creado por Roger de la Fuente (de la empresa española TICOP) llamado AsteriskMonitor.

    Este proyecto pretende ser un puente entre Asterisk y cualquier aplicación basada en Java para conseguir obtener estadísticas y datos del servidor Asterisk.

    Para ello contamos con dos herramientas más:

    AsteriskJavaEye: Aplicación web creada en Java que conecta al AsteriskMonitor y muestra en tiempo real lo que está haciendo Asterisk: quien está conectado, a qué colas, cuanto tiempo lleva, cuantas llamadas ha contestado, quien está esperando, etc…

    AsteriskJavaStats: Módulo java para el AsteriskJavaEye que permite visualizar estadísticas relativas al sistema.

    La verdad es que tiene buena pinta y aunque aún esté en la versión Beta 3, estoy seguro que va por muy buen camino.

    La descarga se puede realizar mediante el svn de SourceForge y la página web del proyecto es: http://sourceforge.net/projects/asteriskmonitor

    Tendré que probarlo… 🙂

    Podeis ver la descripción completa aquí:
    http://www.voip-info.org/wiki/index.php?page=AsteriskMonitor

  • Cómo monitorizar tu Asterisk con «monit»

    MonitorMonit es una herramienta muy utilizada por los administradores de sistemas y es bastante útil en un sistema Asterisk donde podemos chequear si Asterisk está funcionando, o por lo contrario enviarnos un aviso en el caso de que se apague repentinamente.

    De hecho, en la lista de Asterisk-ES hay bastantes personas que lo utilizan como podeis comprobar en el archivo de temas.

    Hace unos días, Bret McDanel (Trixter), uno de los desarrolladores de FreeSwitch publicó un parche para Monit para que, además de monitorizar si Asterisk estaba funcionando, la red funciona corréctamente, el procesador está en su correcta medida, también podamos monitorizar el estado de las peticiones SIP.

    «I had used monit for some other things, and even used it for testing SIP but was dissatisfied with the fact that it did not do a real SIP test. To that end I added a SIP protocol handler, which sends an OPTIONS packet, and verifies that it gets a 200 OK back. This indicates that the message was received, parsed, and a response could be generated. With the optional timeout capabilities of monit you can have something that is fairly robust for ensuring that your SIP stack is indeed working, and restart it if it isnt.»

    Por esto, os recomiendo probar esta aplicación si no la conoceis, e incluso su nuevo parche para SIP:

    cd /usr/src
    
    cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/monit co monit
    
    cd monit
    
    wget -O protocols/sip.c http://www.0xdecafbad.com/wp-content/uploads/2008/01/sip.c
    
    wget http://www.0xdecafbad.com/wp-content/uploads/2008/01/sip.cvsdiff
    
    patch -p0 < sip.cvsdiff
    
    ./autogen.sh
    
    make all install

    Un ejemplo de configuración para esta aplicación, sería algo así:

    check process asterisk with pidfile /var/run/asterisk/asterisk.pid
    start program = “/usr/sbin/asterisk”
    stop program = “/usr/sbin/asterisk -r -x ’shutdown now’”
    if totalmem > 1000.0 MB for 5 cycles then alert
    if totalmem > 1500.0 MB for 5 cycles then alert
    if totalmem > 2000.0 MB for 5 cycles then restart
    if cpu > 60% for 5 cycles then alert
    if failed host MY.SIPSERVER.TLD port 5060 type udp protocol SIP target me@foo.bar maxforward 10 then restart
    if 5 restarts within 5 cycles then timeout

    ¿Conoceis más herramientas de este tipo?

    *Actualización*
    El propio Bret McDanel nos anuncia en los comentarios de este artículo que el parche ya se encuentra en el CVS, por lo que no haría falta parchear. 🙂
    «This is in CVS now! A combination of Grasland Pierrick and my patch.«

  • SipTap: Grabador, organizador y monitorizador SIP

    VoIP MonitoringViendo alguna que otra noticia sobre que los «juankers» amenazan las redes VoIP instalando troyanos en los servidores, he topado con una aplicación que tiene una pinta estupenda.

    La aplicación se llama «siptap» y pese a que oficialmente sirve para monitorizar llamadas VoIP y comprobar lo vulnerable que puede llegar a ser nuestra infraestructura, su utilización puede incluso sernos más útil como un sistema de grabación separado de Asterisk, algo que seguro que a más de uno le interesa bastante.

    Lo mejor, como suele ser en estos casos, es que la aplicación sea código libre, pero en esta ocasión parece que no lo es, aún así, la demostración que tienen publicada, seguro que deja a más de uno con un buen sabor de boca.

    Enlace: http://siptap.voipcode.org

    Cuando se requieren de aplicaciones profesionales, conozco dos con mejor pinta:
    Oreka: Una aplicación sniffer opensource y comercial aunque algo pesadilla (tomcat+java+jsp+…)
    Oak: Un sistema comercial completo y profesional de grabación.