SubscribeXMLTagsEditHistoryDiscussion

También en Inglés.

  1. Introducción
    1. gmond
    2. gmetad
    3. Interfaz Web
  2. Configuración
  3. gmond
    1. Instalación
    2. Configuración
    3. Pruebas
  4. gmetad
  5. Interfaz web
  6. Uso de unicast
  7. Ejemplo de configuración
    1. Scripts de inicio
  8. Licencia

Ganglia es útil para monitorear computadores, y es especialmente útil para clusters. Esta no es una guía paso a paso, por lo que se requiere experiencia con administración de servidores. Por favor adicione notas o enlaces al documento si lo puede mejorar. Si no lo quiere editar directamente, puede dejar comentarios en la página de discusión.

En la siguiente imagen se muestra la utilidad de Ganglia. Puede notar que los nodos gastan mucho tiempo en tareas del sistema (en rojo). Se están monitoreando 10 nodos (40 procesadores).

Introducción

gmond

Ganglia usa gmond en cada computador monitoreado. Cada proceso gmond debe informarle a otros procesos similares las estadísticas mediante una de dos formas:

Un proceso gmond puede escuchar mensajes UDP multicast en la red. También puede escuchar mensajes unicast que le sean enviados directamente.

gmetad

gmetad es el programa que guarda la información en disco, usando rrdtool. Este programa lee la información de uno de un procesos gmond. Usualmente, de un proceso que está recibiendo la información de otros computadores.

gmetad puede tener configurada más de una fuente de información, y en este caso, usará la primera que sea alcanzable.

Interfaz Web

La interfaz web lee la información de gmetad, usando TCP.

Configuración

Hay tres parámetros en gmond.conf que son muy importantes:

Se recomienda revisar la documentación de ganglia. El archivo README que se distribuye con el programa es una buena fuente de documentación.

En la instalación se usó Debian, pero las instrucciones de este documento deben ser independientes de la distribución usada. Lo invitamos a adicionar notas a este documento. Se usaron las últimas fuentes descargadas de http://ganglia.sourceforge.net, correspondientes a la versión 3.0.5.

gmond

Instalación

En cada nodo a monitorear se debe instalar gmond.

 tar xzvf ../ganglia-3.0.X.tar.gz && cd ganglia-3.0.X
 ./configure
 make
 make install

Hay un script de inicialización que viene con la distribución. Usamos uno simple, que se encuentra al final de este documento. Asegúrese de copiarlo a /etc/init.d/gmond. El servicio debe cargarse al arrancar, corriendo:

 update-rc.d gmond defaults

Configuración

Puede obtener una configuración por defecto que es útil como punto de partida. Probablemente necesite cambiar algunos de estos valores. Note que en este ejemplo se ejecuta gmond en una red confiable y no muy grande, así que no se pondrá especial cuidado a la seguridad, y se usarán los valores por defecto.

gmond --default_config > /etc/gmond.conf

La configuración generada automáticamente para gmond usa multicast. En este documento se entrega la documentación para unicast, lo que no debe ser un problema ya que la configuración multicast se genera automáticamente. Se describe parcialmente el archivo de configuración, indicando lo que se ha cambiado después de ejecutar gmond --default_config > /etc/gmond.conf.

Para los nodos monitoreados:

globals {
  daemonize = yes
  setuid = yes
  user = ganglia
  debug_level = 0
  max_udp_msg_len = 1472
  mute = no
  deaf = no
  host_dmax = 0 /*secs */
  cleanup_threshold = 300 /*secs */ 
  gexec = no
} 

cluster { 
  name = "My Cluster" 
  owner = "My Institution" 
} 

host { 
  location = "Cluster Room" 
} 

udp_send_channel { 
  host = server1
  port = 8650
  ttl = 1 
} 

udp_send_channel { 
  host = server2
  port = 8650
  ttl = 1 
} 

tcp_accept_channel { 
  port = 8649 
} 

/* sigue .... */

Para las máquinas que centralizan la información (no monitoreadas en este caso):

globals {                    
  daemonize = yes
  setuid = yes
  user = ganglia
  debug_level = 0
  max_udp_msg_len = 9600
  mute = no             
  deaf = no             
  host_dmax = 3600 /*secs */
  cleanup_threshold = 300 /*secs */ 
  gexec = no             
} 

cluster { 
  name = "My Cluster" 
  owner = "My Institution" 
} 

host { 
  location = "Cluster Room" 
} 

/*
 * No estamos enviando la información a otros nodos.
 *
 * udp_send_channel { 
 *  } 
 *
 */ 

/* Puede especificar los udp_recv_channels que necesite */ 

udp_recv_channel { 
  port = 8650
  family = inet4
}

/* Puede especificar los tcp_accept_channels que quiera
   con una descripción xml del estado del cluster */ 

tcp_accept_channel { 
  port = 8649
} 

 ... sigue ...

Pruebas

Para probar inicie el servicio y trate de obtener un XML que indica si el servicio se está ejecutando.

 telnet localhost 8649

Si no ve un contenido XML, algo salió mal. En adelante asumiremos que funcionó.

gmetad

Gmetad agrupa la información de todos los nodos. Antes de instalar este programa, se instalaron los programas y librerías que vienen con rrdtool. En Debian:

aptitude install librrd2-dev rrdtool

Ahora la compilación y configuración de gmetad.

 tar xzvf ../ganglia-3.0.X.tar.gz && cd ganglia-3.0.X
 ./configure --with-gmetad
 make
 make install

Se necesita un archivo de configuración /etc/gmetad.conf. Este lo usamos en la prueba:

 data_source "My Cluster" node1 node2
 setuid_username "ganglia"

node1 y node2 significa que si node1 no puede ser alcanzado por red, gmetad usará node2 para obtener información. Este es un or lógico y no un and.

En la instalación fue creado un usuario del sistema ganglia, así que no ejecutaremos el servicio como nobody. El servicio no arrancará a menos que exista un directorio /var/lib/ganglia/rrds/ propiedad del uid que corresponde al usuario ganglia.

Busque un script de inicio para gmond al final de este documento, justo después del script están las instrucciones para modificarlo para que sirva para gmetad. Copie el script a /etc/init.d/gmetad y luego ejecute:

 update-rc.d gmond defaults

Interfaz web

Se necesita instalar un servidor web y un entorno PHP. Estos son los comandos para Debian:

 aptitude install php5-gd apache2 libapache2-mod-php5
 a2enmod php5
 /etc/init.d/apache2 restart

Copie el directorio web que viene con los archivos de instalación a /var/www/ganglia.

Ahora cargue http://yourserver/ganglia/ y esperemos que funcione.

Uso de unicast

Lea esta página para obtener detalles. Como Ganglia puede ser usado en muchos escenarios, le corresponde a usted decidir el método a usar. Es probable que necesite usar unicast si no tiene muchos nodos para monitorear o si no puede usar multicast. Por favor revise la configuración de ejemplo para unicast.

Ejemplo de configuración

Scripts de inicio

Estos son los scripts de inicio, tomados de Debian. Mostramos sólo el script gmond. El script gmetad es muy parecido, y sólo falta cambiar DAEMON, NAME y DESC como se especifica más adelante.

#! /bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/gmond
NAME=gmond
DESC="Ganglia Monitor Daemon"

test -x $DAEMON || exit 0
set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop  --quiet --oknodo \
                --exec $DAEMON  2>&1 > /dev/null
        echo "$NAME."
        ;;
  reload)
  ;;
  restart|force-reload)
        $0 stop
        $0 start
        ;;
  *)
        N=/etc/init.d/$NAME
        # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

Para gmetad, use las siguientes líneas.

DAEMON=/usr/sbin/gmetad
NAME=gmetad
DESC="Ganglia Monitor Meta-Daemon"

Licencia

Este documento tiene licencia Licencia de documentación libre GNU.

Autores:

Tu nombre acá
Recibimos ayuda.
Nelson Castillo
Inicio del documento.

Last update: 2007-12-18 (Rev 13361)

svnwiki $Rev: 14721 $