Configuración del monitoreo en tiempo real con Ganglia para cuadrículas y clústeres de servidores Linux


Desde que los administradores de sistemas se han encargado de administrar servidores y grupos de máquinas, herramientas como las aplicaciones de monitoreo han sido sus mejores amigos. Probablemente esté familiarizado con herramientas como Icinga y Centreon. Si bien esos son los pesos pesados del monitoreo, configurarlos y aprovechar al máximo sus funciones puede ser algo difícil para los nuevos usuarios.

En este artículo le presentaremos Ganglia, un sistema de monitoreo que es fácilmente escalable y permite ver una amplia variedad de métricas del sistema de servidores y clústeres Linux (además de gráficos) en tiempo real.

Ganglia le permite configurar cuadrículas (ubicaciones) y clústeres (grupos de servidores) para una mejor organización.

Por lo tanto, puede crear una cuadrícula compuesta por todas las máquinas en un entorno remoto y luego agrupar esas máquinas en conjuntos más pequeños según otros criterios.

Además, la interfaz web de Ganglia está optimizada para dispositivos móviles y también le permite exportar datos en formatos .csv y .json .

Nuestro entorno de prueba consistirá en un servidor central CentOS 7 (dirección IP 192.168.0.29) donde instalaremos Ganglia, y una máquina Ubuntu 14.04 (192.168.0.32), la caja que queremos monitorear a través de la interfaz web de Ganglia.

A lo largo de esta guía, nos referiremos al sistema CentOS 7 como el nodo maestro y al cuadro de Ubuntu como la máquina monitoreada.

Instalación y configuración de Ganglia

Para instalar las utilidades de monitoreo en el nodo maestro, siga estos pasos:

1. Habilite el repositorio de EPEL y luego instale Ganglia y las utilidades relacionadas desde allí:

# yum update && yum install epel-release
# yum install ganglia rrdtool ganglia-gmetad ganglia-gmond ganglia-web 

Los paquetes instalados en el paso anterior junto con ganglia, la propia aplicación, realizan las siguientes funciones:

  1. rrdtool , la base de datos Round-Robin, es una herramienta que se utiliza para almacenar y mostrar la variación de datos a lo largo del tiempo mediante gráficos.
  2. ganglia-gmetad es el demonio que recopila datos de monitoreo de los hosts que desea monitorear. En esos hosts y en el nodo maestro también es necesario instalar ganglia-gmond (el demonio de monitoreo en sí):
  3. ganglia-web proporciona la interfaz web donde veremos los gráficos históricos y los datos sobre los sistemas monitoreados.

2. Configure la autenticación para la interfaz web de Ganglia (/ usr/share/ganglia). Usaremos la autenticación básica proporcionada por Apache.

Si desea explorar mecanismos de seguridad más avanzados, consulte la sección Autorización y autenticación de los documentos de Apache.

Para lograr este objetivo, cree un nombre de usuario y asigne una contraseña para acceder a un recurso protegido por Apache. En este ejemplo, crearemos un nombre de usuario llamado adminganglia y asignaremos una contraseña de nuestra elección, que se almacenará en /etc/httpd/auth.basic (siéntase libre de elegir otro directorio y/o archivo name: siempre que Apache haya leído permisos sobre esos recursos, estará bien):

# htpasswd -c /etc/httpd/auth.basic adminganglia

Ingrese la contraseña de adminganglia dos veces antes de continuar.

3. Modifique /etc/httpd/conf.d/ganglia.conf de la siguiente manera:

Alias /ganglia /usr/share/ganglia
<Location /ganglia>
    AuthType basic
    AuthName "Ganglia web UI"
    AuthBasicProvider file
    AuthUserFile "/etc/httpd/auth.basic"
    Require user adminganglia
</Location>

4. Edite /etc/ganglia/gmetad.conf:

Primero, use la directiva gridname seguida de un nombre descriptivo para la cuadrícula que está configurando:

gridname "Home office"

Luego, use data_source seguido de un nombre descriptivo para el clúster (grupo de servidores), un intervalo de sondeo en segundos y la dirección IP del maestro y los nodos monitoreados:

data_source "Labs" 60 192.168.0.29:8649 # Master node
data_source "Labs" 60 192.168.0.32 # Monitored node

5. Edite /etc/ganglia/gmond.conf.

a) Asegúrese de que el bloque de clúster tenga el siguiente aspecto:

cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

b) En el bloque udp_send_chanel, comente la directiva mcast_join:

udp_send_channel   {
  #mcast_join = 239.2.11.71
  host = localhost
  port = 8649
  ttl = 1
}

c) Finalmente, comente las directivas mcast_join y bind en el bloque udp_recv_channel:

udp_recv_channel {
  #mcast_join = 239.2.11.71 ## comment out
  port = 8649
  #bind = 239.2.11.71 ## comment out
}

Guarde los cambios y salga.

6. Abra el puerto 8649/udp y permita que los scripts PHP (ejecutados a través de Apache) se conecten a la red utilizando el booleano SELinux necesario:

# firewall-cmd --add-port=8649/udp
# firewall-cmd --add-port=8649/udp --permanent
# setsebool -P httpd_can_network_connect 1

7. Reinicie Apache, gmetad y gmond. Además, asegúrese de que estén habilitados para iniciarse en el arranque:

# systemctl restart httpd gmetad gmond
# systemctl enable httpd gmetad httpd

En este punto, debería poder abrir la interfaz web de Ganglia en http://192.168.0.29/ganglia e iniciar sesión con las credenciales del #Paso 2.

8. En el host de Ubuntu, solo instalaremos ganglia-monitor, el equivalente de ganglia-gmond en CentOS:

$ sudo aptitude update && aptitude install ganglia-monitor

9. Edite el archivo /etc/ganglia/gmond.conf en el cuadro monitoreado. Debe ser idéntico al mismo archivo en el nodo principal, excepto que las líneas comentadas en el clúster, udp_send_channel y udp_recv_channel deben estar habilitadas:

cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

udp_send_channel   {
  mcast_join = 239.2.11.71
  host = localhost
  port = 8649
  ttl = 1
}

udp_recv_channel {
  mcast_join = 239.2.11.71 ## comment out
  port = 8649
  bind = 239.2.11.71 ## comment out
}

Luego, reinicie el servicio:

$ sudo service ganglia-monitor restart

10. Actualice la interfaz web y podrá ver las estadísticas y los gráficos de ambos hosts dentro de la cuadrícula de la oficina en el hogar/clúster de laboratorios (use el menú desplegable junto a la cuadrícula de la oficina en el hogar para elegir un clúster, laboratorios en nuestro caso):

Usando las pestañas del menú (resaltadas arriba) puede acceder a mucha información interesante sobre cada servidor individualmente y en grupos. Incluso puede comparar las estadísticas de todos los servidores de un clúster en paralelo utilizando la pestaña Comparar hosts.

Simplemente elija un grupo de servidores utilizando una expresión regular y podrá ver una comparación rápida de su rendimiento:

Una de las características que personalmente encuentro más atractivas es el resumen optimizado para dispositivos móviles, al que puede acceder mediante la pestaña Móvil. Elija el clúster que le interesa y luego el host individual:

Resumen

En este artículo presentamos Ganglia, una solución de monitoreo potente y escalable para redes y clústeres de servidores. Siéntete libre de instalar, explorar y jugar con Ganglia tanto como quieras (por cierto, incluso puedes probar Ganglia en una demostración proporcionada en el sitio web oficial del proyecto.

Mientras lo hace, también descubrirá que varias empresas conocidas tanto en el mundo de las tecnologías de la información como no utilizan Ganglia. Hay muchas buenas razones para eso, además de las que hemos compartido en este artículo, con la facilidad de uso y los gráficos junto con las estadísticas (es bueno poner una cara al nombre, ¿no?) Probablemente en la parte superior.

Pero no solo confíe en nuestra palabra, pruébelo usted mismo y no dude en escribirnos mediante el formulario de comentarios a continuación si tiene alguna pregunta.