Búsqueda de sitios web

Configuración de monitoreo en tiempo real con 'Ganglia' para grids y clusters de servidores Linux


Desde que los administradores de sistemas estuvieron a cargo de administrar servidores y grupos de máquinas, herramientas como las aplicaciones de monitoreo han sido sus mejores amigas. Probablemente esté familiarizado con herramientas como Nagios, Zabbix, Icinga y Centreon. Si bien estos son los pesos pesados del monitoreo, configurarlos y aprovechar al máximo sus funciones puede resultar 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 (más gráficos) en tiempo real.

Ganglia le permite configurar cuadrículas (ubicaciones) y clústers (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 estará formado por un servidor central CentOS 7 (dirección IP 192.168.0.29) donde instalaremos Ganglia, y un 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 a Ubuntu como la máquina monitoreada.

Instalación y configuración de ganglios

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

1. Habilite el repositorio 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 los ganglios, la aplicación en sí, 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 propio demonio de monitorización):
  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 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 le asignaremos una contraseña de nuestra elección, que se almacenará en /etc/httpd/auth.basic (no dude en elija otro directorio y/o nombre de archivo (siempre que Apache tenga permisos de lectura 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. Editar /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 de los nodos maestro y monitoreado:

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 del 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 Ubuntu solo instalaremos ganglia-monitor, el equivalente a 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 maestro excepto que las líneas comentadas en el cluster, udp_send_channel y udp_recv_channel debe estar habilitado:

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 debería poder ver las estadísticas y gráficos de ambos hosts dentro del cuadrícula de la oficina central/clúster de laboratorios ( use el menú desplegable junto a Cuadrícula de oficina en casa para elegir un clúster, Labs en nuestro caso):

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

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

Una de las funciones que personalmente encuentro más atractiva 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 poderosa y escalable para grids y clusters de servidores. Siéntete libre de instalar, explorar y jugar con Ganglia todo lo que 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 TI como no, utilizan Ganglia. Hay muchas buenas razones para ello 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 ponerle una cara al nombre, ¿no?) probablemente en la parte superior.

Pero no se limite a confiar en nuestra palabra, pruébelo usted mismo y no dude en escribirnos utilizando el formulario de comentarios a continuación si tiene alguna pregunta.