Archivo

Entradas Etiquetadas ‘monitoreo’

Graficos en RRD con Nagios/Centreon y Wowza Media Server

Martes, 1 de Septiembre de 2009 Alejandro Sin comentarios

En esta entrada les queria dejar unas muestras de los graficos que se pueden hacer, utilizando el plugin de Nagios que hablamos en el Post anterior en conjunto con Centreon otra herramienta que hablaremos en los proximos posts.

Memory Used for Java VM running Wowza
VM-usedMemory
Total Server Connections
total-connections
Total Vhost/Server Traffic kbps
vhost-traffic

Si quieren saber mas al respecto de estos graficos no duden en leer los otros post, y dejar sus comentarios.

Luego agregare mas graficos a este post para que vean todo lo que se puede hacer con RRD

En este link pueden ver al server Wowza en accion

WowzaMediaServer monitoreado via JMX con Nagios Update 2

Domingo, 16 de Agosto de 2009 Alejandro 12 comentarios

En el post anterior hablamos de como se podria monitorear una VM via JMX y dimos unos ejemplos aplicados al Servidore de Streaming WowzaMediaServer.

En esta oportunidad les dejo para que usen, un script que hice para usar en conjunto con NAGIOS, especificamente para Monitorear este excelente producto.

Su uso es muy simple, por defecto ya esta configurado para usar los puertos por Defautl que usa WowzaMediaServer, recuerden que necesitan tener habilitado el acceso via JMX a la Java Virtual Machine.

Este plugin tiene como Dependencias algunos modulos de PERL y el plugin CHECK_JMX nombrado en el articulo anterior.

La lista de Modulos de PERL son:

  • Getopt::Long
  • Getopt::Long::Descriptive
  • Math::Round
  • Scalar::Util
  • Switch

Para instalar estos modulos en distribuciones RedHat/Centos/Fedora la linea a usar seria:

yum install -y perl-Math-Round perl-Getopt-Long perl-Getopt-Long-Descriptive perl-Scalar-List-Utils perl-Switch

Pero siempre recomiento instalarlos via CPAN para tener la ultima version, ademas que funciona con todas las Distribuciones.

cpan> install Getopt::Long::Descriptive Getopt::Long Math::Round Scalar::Util Switch

Hasta el momento tengo 3 chequeos cargados.

  • HeapMemoryUsed (Show in % the Heap Memory Used)
  • TotalCurrentServerConnections (Show the number of active connection in all vHosts)
  • CurrentServerVersion (Compare the Server and Build Version currently in use)

Si te gustaria que agregue algun otro checkeo no dudes en escribirme y con gusto tratare de hacerlo.

Les dejo unos ejemplos del uso de los comandos:

Current Server Version

./check_jmx_wowzamediaserver.pl -host=10.111.222.1 -check=CurrentServerVersion -w=12081 -c=1.7.0

Tendra como resultado si es correcto

OK :: Server=1.7.0 Build=12081 |  1.7.0  12081

Sino dira algo asi

CRITICAL :: Server Version  1.7.0 not equal than  2.0.4 |  1.7.0  12081

Total Current Server Connections

./check_jmx_wowzamediaserver.pl -host=10.111.222.1 -check=TotalCurrentServerConnections -w=100 -c=1000
OK :: TotalCurrentServerConnections 54 | TotalCurrentServerConnections=54

Heap Memory Used

./check_jmx_wowzamediaserver.pl -host=10.111.222.1 -check=HeapMemoryUsed -w=10 -c=98
OK :: HeapMemoryUsage 7% | mem_used=53999824 mem_max=775487488

Podran notar que en la respuesta del Script aparece un PIPE ( | ) y luego mas informacion, esto se usa para enviar la informacion en Nagios referida a Performance Data, y en un nuevo POST hablaremos de como integrar esta informacion con la Herramienta CACTI o Centreon

Espero que lo usen y me escriban comentarios, y sugerencias sobre este el Script, para Descargarlo este es el Link (incluye las dependencias de check_jmx): check_jmx_wowzamediaserver (413) (Updated 12/10/2009)

WowzaMediaServer monitoreado via JMX con Nagios

Domingo, 5 de Julio de 2009 Alejandro 3 comentarios

Primero tenemos que descargar el plugin CHECK_JMX de la siguiente URL check_jmx


Para ver las opciones que tenemos disponible podemos ejecutarlo con el parametro “-help”

./check_jmx -help
Usage: check_jmx -U url -O object_name -A attribute [-K compound_key] [-I attribute_info] [-J attribute_info_key] -w warn_limit -c crit_limit [-v[vvv]] [-help]



where options are:

-help
Prints this page
-U 
JMX URL, for example: service:jmx:rmi://192.168.0.1:8084/jndi/rmi://192.168.0.1:8085/jmxrmi
-O 
Object name to be checked, for example: java.lang:type=Memory
-A 
Attribute of the object to be checked, for example: NonHeapMemoryUsage
-K 
Attribute key for -A attribute compound data, for example, "used" (optional)
-I 
Attribute of the object containing information for text output (optional)
-J 
Attribute key for -I attribute compound data, for example, "used" (optional)
-v[vvv] 
verbatim level controlled as a number of v (optional)
-w 
warning integer value
-c 
critical integer value

Note that if warning level > critical, system checks object attribute value to be LESS THAN OR EQUAL warning, critical
If warning level < critical, system checks object attribute value to be MORE THAN OR EQUAL warning, critical


A continuacion les dejo algunos ejemplos genericos.
Esto nos daria el uso de Memory Heap de la VM

./check_jmx -U service:jmx:rmi://192.168.0.1:8084/jndi/rmi://192.168.0.1:8085/jmxrmi -O java.lang:type=Memory -A HeapMemoryUsage -K used -I HeapMemoryUsage -J used -vvvv -w 10000000 -c 100000000



Este es especifico para controlar la cantidad de usuarios conectados en todo el servidor:

./check_jmx -U service:jmx:rmi://192.168.0.1:8084/jndi/rmi://192.168.0.1:8085/jmxrmi -O WowzaMediaServerPro:name=Connections -A current -vvvv -w 10 -c 20

El resultado es algo como esto:

JMX OK current=5



Ahora veremos un caso muy puntual:

./check_jmx -U service:jmx:rmi://192.168.0.1:8084/jndi/rmi://192.168.0.1:8085/jmxrmi -O WowzaMediaServerPro:vHosts=VHosts,vHostName=_defaultVHost_,applications=Applications,applicationName=rtplive,applicationInstances=ApplicationInstances,applicationInstanceName=_definst_,name=Connections -A current -vvvv -c 1000 -w 750



Veamos los parametros por partes, asi podemos entender mejor que estamos midiendo:

  • WowzaMediaServerPro:vHosts=VHosts <-- no hace falta aclarar
  • vHostName=_defaultVHost_ <-- si no tenemos nungon vHost creado por nosotros este es el default
  • applications=Applications <-- esto es igual que la carpeta en filesystem
  • applicationName=rtplive <-- esta es mi aplicacion (en la version 2.0 se llama tambien live)
  • applicationInstances=ApplicationInstances <-- puede haber mas de una instancia en la misma aplicacion
  • applicationInstanceName=_definst_ <-- nombre de la instancia por Default
  • name=Connections <-- cantidad de conexiones activas en el momento