sábado, 11 de mayo de 2013

Instalación y Configuración de Ganglia en Debian Wheezy 7.0


Este tutorial configura un servidor de monitoreo Ganglia y su interfaz web, y lo deja preparado para trabajar en modo multicast (es la configuración por defecto de Ganglia), luego de instalar el componente cliente de Ganglia en otros servidores, los datos se empiezan a recibir automáticamente en el servidor monitor.

Desde el punto de vista técnico, no realizamos en realidad ninguna configuración, simplemente se instala el software. El paso C) de configuración se realiza al solo efecto de darle un nombre al grupo de servers a monitorear.

La configuración de nombres en los servers - que realizamos durante la instalación en A) y B) - es necesaria para permitir una buena identificación de los hosts en la interfaz web.


Requerimientos
Dos instalaciones base de Debian Wheezy 7.0 terminadas (y actualizada opcionalmente), un cliente y un servidor.

Las IPs de los servidores van a ser obtenidas vía DHCP, de modo de simplificar el tutorial (es una buena práctica configurar los servers con IPs estáticas)

En este caso las IPs son:

  • IP del servidor de monitoreo - 192.168.0.100
  • IP del cliente de monitoreo  - 192.168.0.105


Pasos para la Instalación y Configuración de Ganglia

A) Instalar cliente
B) Instalar server
C) Configurar server

Luego de este punto ya estamos en condiciones de replicar la instalación del cliente en otros servidores, y en minutos el server monitor Ganglia va a empezar a recibir los datos de monitoreo de esos nuevos servers cliente configurados.



Instalación del cliente Ganglia

1)

- Configurar /etc/hosts con los nombres de los servidores a monitorear.
127.0.0.1       localhost
127.0.1.1       monitor-cliente.local.net  monitor-cliente

- Configurar /etc/hostname:
monitor-cliente

Luego reiniciamos el sistema.


2) Instalación del Cliente Ganglia:

apt-get install ganglia-monitor

Listo

3) Verificar que el servicio esté activo, corremos:

service ganglia-monitor restart

y tendría que ejecutar sin errores.

4) Obtenemos y guardamos la IP del server para asociarla estáticamente a un nombre en el server monitor:

ifconfig



Instalación del servidor Ganglia

1)

- Configurar /etc/hosts con los nombres de los servidores a monitorear.

127.0.0.1       localhost
127.0.1.1       monitor-server.local.net      monitor-server

# servidores adicionales
#
# el nombre debe coincidir con el hostname
# configurado en el server mismo
192.168.0.100 monitor-cliente.local.net  monitor-cliente

- Configurar /etc/hostname:
monitor-server

Luego reiniciamos el sistema.

2) Instalación del Server Ganglia (que incluye la instalación del cliente Ganglia > "ganglia-monitor" para poder monitorearse a sí mismo)

apt-get install ganglia-monitor ganglia-webfrontend gmetad

Aceptar o o no cuando pide reiniciar Apache no es relevante, cualquier opción va a funcionar igual (el script de post-instalación NO carga la configuración de Ganglia-web en Apache)


3) Activar sitio web Ganglia donde ver la información gráfica:

- Ir a /etc/ganglia-webfronted, localizar el .conf de Apache
- Crear un link simbólico del mismo en /etc/apache/conf.d
- Reiniciar Apache (service apache2 restart)

Listo, instalación terminada.


4) Verificar que los servicios estén activos, corremos:

service ganglia-monitor restart
service gmetad restart

y tendrían que ejecutarse sin errores.

Si miramos en la configuración de Apache en /etc/ganglia-webfrontend/apache.conf (activa en Apache con el link que creamos antes), vemos que Ganglia está en el directorio "ganglia" de nuestro webserver.

En un navegador probar Ganglia: http://192.168.0.105/ganglia



Configuración del Servidor Ganglia

1) Configurando Ganglia Fácilmente

- Ver la configuración en el archivo /etc/gmetad.conf (no editar nada)

data_source "My Cluster" localhost


2) Configurar en /etc/gmond.conf

name = "Taller"

y reiniciar servicio Gmond: service ganglia-monitor restart

Nos fijamos ahora en el Ganglia Web como cambió el nombre del cluster Ganglia de "unspecified" ("sin especificar"), a "Taller".


Luego de terminar esta configuración, ya vamos a ver cómo Ganglia empezó a tomar los datos del servidor cliente que acabamos de instalar, y en un par de minutos, solamente se ven los datos del server (localhost), y del cliente (debian-monitor-cliente).

* En el sitio Ganglia, el server debian-monitor-server se ve como "192.168.0.102", que es la IP de localhost para el server.


Soluciones de problemas comunes y Tips

Problema: gráficos que no aparecen (en versiones viejas de Ganglia)
Si para el servidor remoto hay problemas para graficar la información, lo agregamos manualmente al /etc/gmetad.conf del server monitor:

data_source "miservermonitor" localhost
data_source "miotroserver" 192.168.0.101

(los nombres usados en gmetad.conf para el data_source no son relevantes, no figuran en ningun gráfico, solo deben ser diferentes entre sí)


Problema: Hosts (servers) que no existen siguen apareciendo en los gráficos
Si vemos que luego de las pruebas, tenemos varios hosts "fantasma", resultado de haber reconfigurado un par de veces, vamos a reconfigurarlo para eliminar los servidores inexistentes de las gráficas.

Lo vemos claramente en la interfaz:

CPUs Total: 5
Hosts up: 3

(y tenemos configurados solamente 2 hosts)

a) Detenemos gmetad (service gmetad stop) en el server monitor.

b) Vamos al directorio donde se guardan las gráficas: /var/lib/ganglia/rrds

c) Borramos los directorios pertinentes (prestar atencion a los nombres y buscar los nombres de los hosts que no existen).


Tip: Correr una GUI Ganglia mejorada con versiones viejas de Ganglia.
Si nuestra distribución instala una versión vieja de Ganglia, la interfaz web va a ser la anterior a la actual. Se puede usar la interfaz actual (o actualizar manualmente la nueva cuando salgan nuevas versiones), con versiones viejas de Ganglia, sin problemas.

Para actualizar solo la interfaz, lo tenemos que hacer manualmente.

Las instrucciones de abajo configuran la interfaz actualizada en un directorio "/ganglia2" en el webserver, y así seguimos teniendo la interfaz anterior en "/ganglia" (es útil para evitar problemas al actualizar paquetes).

Instrucciones

1) Descargamos el código fuente más nuevo de Ganglia Web:
http://sourceforge.net/projects/ganglia/files/ganglia-web/3.5.2/

2) Instalamos requisitos (figuran en el readme):
apt-get install php-services-json

3) Crear un directorio para instalar allí los archivos de la interfaz actualizada (si usamos el directorio por defecto, va a sobreescribir la interfaz actual, instalada por los paquetes de la distribución):

mkdir /usr/share/ganglia-web-2

4) Descomprimir el archivo bajado en un directorio temporal.

5) Modificar el makefile, cargamos el directorio destino /usr/share/ganglia-web-2

DESTDIR = /usr/share/ganglia-web-2

y como usuario a www-data (el usuario de Apache para Debian):

APACHE_USER = www-data

luego corremos:

makefile install

6) Crear y activar la configuración para Apache:

cd /etc/apache2/conf.d/
touch apache-web2.conf
echo "Alias /ganglia2 /usr/share/ganglia-web-2" > apache2-web2.conf
service apache2 restart

Probamos yendo a la URL:
http:/IP/ganglia2

No hay comentarios: