Ganglia es una herramienta de supervisión distribuida y escalable para redes, clústeres y sistemas informáticos de alto rendimiento. El software se utiliza para ver estadísticas en vivo o grabadas que cubren métricas como los promedios de carga de la CPU o la utilización de la red para muchos nodos.
Lanzamiento estable | 3.7.2 / 14 de junio de 2016 |
---|---|
Escrito en | C , Perl , PHP , Python |
Sistema operativo | Multiplataforma |
Disponible en | inglés |
Tipo | Monitoreo distribuido |
Licencia | Licencia BSD |
Sitio web | www |
El software Ganglia se incluye con distribuciones de Linux de nivel empresarial como Red Hat Enterprise Level (RHEL) o el reempaquetado de CentOS de las mismas. Ganglia surgió de los requisitos para los sistemas de monitoreo de Berkeley (Universidad de California), pero ahora es utilizado por organizaciones comerciales y educativas como Cray, MIT, NASA y Twitter.
Ganglios
Se basa en un diseño jerárquico dirigido a federaciones de clústeres. Se basa en un protocolo de escucha / anuncio basado en multidifusión para monitorear el estado dentro de los clústeres y utiliza un árbol de conexiones punto a punto entre los nodos de clúster representativos para federar clústeres y agregar su estado. Aprovecha tecnologías ampliamente utilizadas como XML para la representación de datos, XDR para el transporte de datos compacto y portátil y RRDtool para el almacenamiento y la visualización de datos. Utiliza estructuras de datos y algoritmos cuidadosamente diseñados para lograr una sobrecarga por nodo muy baja y una alta concurrencia. La implementación es sólida, se ha adaptado a un amplio conjunto de sistemas operativos y arquitecturas de procesadores, y actualmente se utiliza en más de 500 clústeres en todo el mundo. Se ha utilizado para vincular clústeres en campus universitarios y en todo el mundo y puede escalar para manejar clústeres con 2000 nodos. [1]
El sistema ganglia comprende dos demonios únicos, un front-end web basado en PHP y algunos otros pequeños programas de utilidad.
Demonio de monitorización de ganglios (gmond)
Gmond es un demonio de subprocesos múltiples que se ejecuta en cada nodo del clúster que desea monitorear. La instalación no requiere tener un sistema de archivos NFS común o un back-end de base de datos, instalar cuentas especiales o mantener archivos de configuración.
Gmond tiene cuatro responsabilidades principales:
- Supervise los cambios en el estado del host.
- Anuncie cambios relevantes.
- Escuche el estado de todos los demás ganglios a través de un canal de unidifusión o multidifusión.
- Responda a las solicitudes de una descripción XML del estado del clúster.
Cada gmond transmite información de dos formas diferentes:
- Estado de host de unidifusión o multidifusión en formato de representación de datos externos (XDR) mediante mensajes UDP .
- Envío de XML a través de una conexión TCP .
Ganglia Meta Daemon (gmetad)
La federación en Ganglia se logra mediante un árbol de conexiones punto a punto entre nodos de clúster representativos para agregar el estado de múltiples clústeres. En cada nodo del árbol, un Ganglia Meta Daemon (gmetad) sondea periódicamente una colección de fuentes de datos secundarios, analiza el XML recopilado, guarda todas las métricas numéricas y volátiles en bases de datos de operación por turnos y exporta el XML agregado a través de un socket TCP a los clientes. . Las fuentes de datos pueden ser demonios de gmond, que representan grupos específicos, u otros demonios de gmetad, que representan conjuntos de grupos. Las fuentes de datos utilizan direcciones IP de origen para el control de acceso y se pueden especificar utilizando varias direcciones IP para la conmutación por error. La última capacidad es natural para agregar datos de clústeres, ya que cada demonio de gmond contiene el estado completo de su clúster.
Interfaz web PHP de Ganglia
La interfaz web de Ganglia proporciona una vista de la información recopilada a través de páginas web dinámicas en tiempo real. Lo más importante es que muestra los datos de Ganglia de una manera significativa para los administradores del sistema y los usuarios de computadoras. Aunque la interfaz web para ganglia comenzó como una simple vista HTML del árbol XML, ha evolucionado hasta convertirse en un sistema que mantiene un historial colorido de todos los datos recopilados.
El front-end web de Ganglia está dirigido a administradores de sistemas y usuarios. Por ejemplo, se puede ver la utilización de la CPU durante la última hora, día, semana, mes o año. La interfaz web muestra gráficos similares para el uso de memoria, uso de disco, estadísticas de red, número de procesos en ejecución y todas las demás métricas de Ganglia.
El front-end web depende de la existencia del gmetad que le proporciona datos de varias fuentes de Ganglia. Específicamente, el front-end web abrirá el puerto local 8651 (por defecto) y espera recibir un árbol XML de Ganglia. Las páginas web en sí mismas son muy dinámicas; cualquier cambio en los datos de Ganglia aparece inmediatamente en el sitio. Este comportamiento conduce a un sitio muy receptivo, pero requiere que se analice el árbol XML completo en cada acceso a la página. Por lo tanto, el front-end web de Ganglia debería ejecutarse en una máquina dedicada bastante potente si presenta una gran cantidad de datos.
El front-end web de Ganglia está escrito en PHP y utiliza gráficos generados por gmetad para mostrar información histórica. Se ha probado en muchas versiones de Unix (principalmente Linux ) con el servidor web Apache y el módulo PHP5.