domingo, 24 de febrero de 2013

Review de Ganglia como solución de monitoreo de performance


Ganglia como solución de monitoreo tiene un solo objetivo: poder recolectar información útil sobre la performance general de los sistemas cliente, lo antes posible con mínima a nula necesidad de configuración del lado del cliente.

El escenario base para el cual fue creado Ganglia es monitorear miles de servidores que son creados, arrancados y apagados dinámicamente, por ende la necesidad de modificar manualmente la configuración está casi ausente de sus escenarios de deployment por defecto. Vean el apartado "WHO USES GANGLIA?" en la homepage:

http://ganglia.sourceforge.net/

Ganglia recolecta diversas informaciones de carga de los servidores monitoreados (CPU, espacio en disco, procesos, etc.), y no requiere modificar la configuración original en los clientes para esto, aunque tiene muchas posibilidades de configuración:

http://sourceforge.net/apps/trac/ganglia/wiki/TitleIndex


La idea básica es instalar el server, instalar el cliente, modificar muy poco los archivos de configuración y tener la recogida de datos funcionando.

Tiene una interfaz web muy simple y útil, también muy fácil de instalar, que accede directamente a a la represantación gráfica - realizada vía RRDD - de los datos recogidos.


Instalaciones típicas
El deployment por default basado en multicasting funciona exactamente así: se instala el servidor, se instala el cliente, no se tocan las configuraciones por defecto en los servers clientes(cero modificación a los archivos de configuración), se modifica, una sola línea en el servidor de monitoreo:

# /etc/gmetad.conf on monhost
data_source "MyCluster" monhost

y si la red permite el tráfico necesario por default (UDP/8649 y TCP/8649), en poco tiempo Ganglia va a empezar la recolección de información de los servers clientes monitoreados.


Hay tres escenarios adicionales de configuración: unicasting (necesario cuando hay servers a monitorear en redes diferentes), monitoreo de varios clusters (están explicados en el documento de abajo, y también el escenario de multicasting antes explicado):

http://sourceforge.net/apps/trac/ganglia/wiki/ganglia_quick_start


En la práctica si bien no es indispensable, sí se vuelve necesario realizar algo de configuración:

- Organizar los servers monitoreados en grupos (se hace modificando la configuración en los clientes)
- Bindear el servicio a una IP específica en un server (disponible para servidor y clientes)
- Configurar diferentes puertos aparte de los UDP y TCP 8649, para escuchar y enviar datos, recomendable cuando hay muchos hosts a monitorear (pero muchos).

Conclusiones
Ganglia funciona muy bien como solución de monitoreo de performance y recolección de datos para archivo, ya que luego de un tiempo de iniciada la recolección se puede ir viendo los datos por hora, por día, por semana, mes, etc.

No tiene las capacidades típicas - y necesarias - para funcionara como software de monitoreo+alerta de eventos, pero no tiene ese objetivo tampoco.

Ganglia resulta muy útil para realizar capacity assestment (CA) y poder justificar efectivamente la necesidad o no de recursos adicionales para los servidores. Combinando Ganglia con otro recolector de información SNMP como Cacti u OpenNMS se puede realizar un assestment *casi completo respecto de los recursos en existencia, su utilización actual, histórica y realizar inferencias potencialmente acertadas de las necesidades de infraestructura a futuro.


* Hay escenarios donde hay más software y hardware de infraestructura involucrado, por lo que un capacity assestment basado en consumo de recursos de hardware de servidores y networking no va proveer el ámbito completo de awareness necesario para una correcta asesoría. 

Por ejemplo, en infraestructura virtualizadas basada en Vmware, para realizar CA se vuelve necesario software adicional como:

http://www.vmware.com/products/capacity-planner/overview.html

No hay comentarios: