Recherche de site Web

Configuration de la surveillance en temps réel avec « Ganglia » pour les grilles et les clusters de serveurs Linux


Depuis que les administrateurs système sont chargés de gérer les serveurs et les groupes de machines, les outils tels que les applications de surveillance sont leurs meilleurs amis. Vous connaissez probablement des outils comme Nagios, Zabbix, Icinga et Centreon. Bien qu’il s’agisse des poids lourds de la surveillance, les configurer et tirer pleinement parti de leurs fonctionnalités peut s’avérer quelque peu difficile pour les nouveaux utilisateurs.

Dans cet article, nous vous présenterons Ganglia, un système de surveillance facilement évolutif et permettant de visualiser une grande variété de métriques système des serveurs et clusters Linux (plus des graphiques) en temps réel.

Ganglia vous permet de configurer des grilles (emplacements) et des clusters (groupes de serveurs) pour une meilleure organisation.

Ainsi, vous pouvez créer une grille composée de toutes les machines d'un environnement distant, puis regrouper ces machines en ensembles plus petits en fonction d'autres critères.

De plus, l'interface Web de Ganglia est optimisée pour les appareils mobiles et vous permet également d'exporter des données aux formats .csv et .json.

Notre environnement de test sera composé d'un serveur central CentOS 7 (adresse IP 192.168.0.29) sur lequel nous installerons Ganglia, et d'un Machine Ubuntu 14.04 (192.168.0.32), la box que nous souhaitons surveiller via l'interface web de Ganglia.

Tout au long de ce guide, nous ferons référence au système CentOS 7 comme nœud maître et au boîtier Ubuntu comme machine surveillée.

Installation et configuration de Ganglia

Pour installer les utilitaires de surveillance dans le nœud maître, procédez comme suit :

1. Activez le référentiel EPEL, puis installez Ganglia et les utilitaires associés à partir de là :

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

Les packages installés à l'étape ci-dessus ainsi que Ganglia, l'application elle-même, remplissent les fonctions suivantes :

  1. rrdtool, la base de données Round-Robin, est un outil utilisé pour stocker et afficher la variation des données au fil du temps à l'aide de graphiques.
  2. ganglia-gmetad est le démon qui collecte les données de surveillance des hôtes que vous souhaitez surveiller. Dans ces hôtes et dans le nœud maître, il est également nécessaire d'installer ganglia-gmond (le démon de surveillance lui-même) :
  3. ganglia-web fournit l'interface Web où nous afficherons les graphiques historiques et les données sur les systèmes surveillés.

2. Configurez l'authentification pour l'interface Web Ganglia (/usr/share/ganglia). Nous utiliserons l'authentification de base fournie par Apache.

Si vous souhaitez explorer des mécanismes de sécurité plus avancés, reportez-vous à la section Autorisation et authentification de la documentation Apache.

Pour atteindre cet objectif, créez un nom d'utilisateur et attribuez un mot de passe pour accéder à une ressource protégée par Apache. Dans cet exemple, nous allons créer un nom d'utilisateur appelé adminganglia et attribuer un mot de passe de notre choix, qui sera stocké dans /etc/httpd/auth.basic (n'hésitez pas à choisissez un autre répertoire et/ou nom de fichier – tant qu’Apache dispose des autorisations de lecture sur ces ressources, tout ira bien) :

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

Entrez le mot de passe pour adminganglia deux fois avant de continuer.

3. Modifiez /etc/httpd/conf.d/ganglia.conf comme suit :

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. Modifiez /etc/ganglia/gmetad.conf :

Tout d’abord, utilisez la directive gridname suivie d’un nom descriptif pour la grille que vous configurez :

gridname "Home office"

Ensuite, utilisez data_source suivi d'un nom descriptif pour le cluster (groupe de serveurs), d'un intervalle d'interrogation en secondes et de l'adresse IP du maître et des nœuds surveillés :

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

5. Modifiez /etc/ganglia/gmond.conf.

a) Assurez-vous que le bloc de cluster ressemble à ceci :

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

b) Dans le bloc udp_send_chanel, commentez la directive mcast_join :

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

c) Enfin, commentez les directives mcast_join et bind dans le bloc udp_recv_channel :

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

Enregistrez les modifications et quittez.

6. Ouvrez le port 8649/udp et autorisez les scripts PHP (exécutés via Apache) à se connecter au réseau en utilisant le booléen SELinux nécessaire :

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

7. Redémarrez Apache, gmetad et gmond. Assurez-vous également qu'ils sont activés pour démarrer au démarrage :

systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd

À ce stade, vous devriez pouvoir ouvrir l'interface Web de Ganglia à l'adresse http://192.168.0.29/ganglia et vous connecter avec les informations d'identification de l'#Étape 2.

8. Dans l'hôte Ubuntu, nous installerons uniquement ganglia-monitor, l'équivalent de ganglia-gmond dans CentOS :

sudo aptitude update && aptitude install ganglia-monitor

9. Editez le fichier /etc/ganglia/gmond.conf dans la zone surveillée. Cela doit être identique au même fichier dans le nœud maître, sauf que les lignes commentées dans le cluster, udp_send_channel et udp_recv_channel doit être activé :

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
}

Ensuite, redémarrez le service :

sudo service ganglia-monitor restart

10. Actualisez l'interface Web et vous devriez pouvoir afficher les statistiques et les graphiques des deux hôtes dans la grille du bureau à domicile/cluster Labs ( utilisez le menu déroulant à côté de Grille du bureau à domicile pour choisir un cluster, Labs dans notre cas) :

En utilisant les onglets de menu (mis en surbrillance ci-dessus), vous pouvez accéder à de nombreuses informations intéressantes sur chaque serveur individuellement et en groupes. Vous pouvez même comparer les statistiques de tous les serveurs d'un cluster côte à côte à l'aide de l'onglet Comparer les hôtes.

Choisissez simplement un groupe de serveurs à l'aide d'une expression régulière et vous pourrez voir une comparaison rapide de leurs performances :

L'une des fonctionnalités que je trouve personnellement les plus attrayantes est le résumé adapté aux appareils mobiles, auquel vous pouvez accéder à l'aide de l'onglet Mobile. Choisissez le cluster qui vous intéresse, puis l'hôte individuel :

Résumé

Dans cet article, nous avons présenté Ganglia, une solution de surveillance puissante et évolutive pour les grilles et les clusters de serveurs. N'hésitez pas à installer, explorer et jouer avec Ganglia autant que vous le souhaitez (d'ailleurs, vous pouvez même essayer Ganglia dans une démo fournie sur le site officiel du projet.

Pendant que vous y êtes, vous découvrirez également que plusieurs entreprises connues, tant dans le monde informatique que non, utilisent Ganglia. Il y a de nombreuses bonnes raisons à cela en plus de celles que nous avons partagées dans cet article, la facilité d'utilisation et les graphiques ainsi que les statistiques (c'est bien de mettre un visage sur le nom, n'est-ce pas ?) étant probablement au sommet.

Mais ne nous croyez pas sur parole, essayez-le vous-même et n’hésitez pas à nous écrire en utilisant le formulaire de commentaires ci-dessous si vous avez des questions.