Ganglia est un système de surveillance distribué évolutif, conçu pour les grappes de serveurs et les grilles, permettant de visualiser les performances des machines et des applications en temps réel. Il se compose de plusieurs éléments interdépendants qui collaborent pour collecter, agréger et afficher les métriques du système.
Composants Clés de Ganglia
- gmond (Ganglia Monitoring Daemon) : C'est l'agent de collecte de données. Exécuté sur chaque nœud à surveiller, il recueille des métriques de preformance locales (CPU, mémoire, disque, réseau, etc.) et les envoie aux collecteurs.
- gmetad (Ganglia Meta Daemon) : Agit comme le serveur d'agrégation. Il récupère les données de plusieurs instances de
gmond, généralement par un mécanisme de "polling", puis les stocke dans des bases de données RRD (Round-Robin Database) pour une conservation historique. - ganglia-web : Fournit une interface web pour visualiser graphiquement les données stockées par
gmetaddans les bases RRD. C'est l'interface utilisateur pour consulter l'état et les tendances de performance de l'infrastructure.
Modes de Fonctionnement
Ganglia peut opérer sous deux modes principaux pour la collecte de données :
- Mode Multidiffusion (Multicast) : Idéal pour les environnements où les nœuds sont sur le même segment réseau. Les démons
gmondenvoient leurs données en multidiffusion, etgmetadécoute ces messages sur l'interface réseau configurée. Ce mode simplifie la découverte des nœuds. - Mode Unidiffusion (Unicast) : Permet la surveillance à travers différents segments réseau. Dans ce mode, chaque
gmondest configuré pour envoyer spécifiquement ses données à une adresse IP ou un nom d'hôte désigné degmetad. C'est le mode préféré pour les architectures plus complexes ou réparties.
Installation des Composants sur un Système Linux (via Yum)
Ces instructions sont adaptées pour les distributions basées sur RHEL/CentOS. Avant de commencer, assurez-vous d'avoir accès au dépôt EPEL (Extra Packages for Enterprise Linux), souvent nécessaire pour les paquets Ganglia.
Installation du Dépôt EPEL
sudo yum install -y epel-release
Installation des Paquets Ganglia et Apache HTTPD
Procédez à l'installation des démons Ganglia, du serveur web Apache et des composants PHP nécessaires à l'interface Ganglia-web :
sudo yum install -y ganglia-gmond
sudo yum install -y ganglia-gmetad
sudo yum install -y httpd
sudo yum install -y ganglia-web php
Répertoire des Fichiers et Configuration
Voici quelques chemins importants après l'installation :
- Répertoires de configuration Ganglia :
/etc/ganglia/ - Bases de données RRD :
/var/lib/ganglia/rrds/ - Racine des documents Apache :
/var/www/html/ - Installation de Ganglia-web :
/usr/share/ganglia/ - Configuration Apache pour Ganglia :
/etc/httpd/conf.d/ganglia.conf
Lien Symbolique pour l'Interface Web
Pour que l'interface Ganglia-web soit accessible via Apache, il est courant de créer un lien symbolique de son répertoire d'installation vers la racine des documents du serveur web :
sudo ln -s /usr/share/ganglia /var/www/html/ganglia
Gestion de SELinux
SELinux peut parfois restreindre l'accès à certains fichiers ou services, ce qui peut entraîner des problèmes de permission pour Ganglia-web. Vous pouvez vérifier son état et le désactiver temporairement si nécessaire :
- Vérifier l'état de SELinux :
getenforce
- Désactiver temporairement SELinux :
sudo setenforce 0
Pour une désactivation permanente, il faudrait modifier le fichier /etc/selinux/config et redémarrer le système.
Sécurisation de l'Accès à l'Interface Web avec Authentification Basique HTTP
Pour protéger votre interface Ganglia-web, nous allons configurer une authentification basique via Apache HTTPD.
Création d'un Fichier d'Utilisateurs et Mots de Passe
Utilisez l'outil htpasswd pour créer un fichier contenant les informations d'identification. Remplacez nom_utilisateur par le nom d'utilisateur souhaité. Le système vous demandera de saisir un mot de passe à deux reprises.
sudo htpasswd -c /etc/httpd/auth.basic nom_utilisateur
Le fichier /etc/httpd/auth.basic contiendra désormais le hachage du mot de passe de l'utilisateur.
Modification du Fichier de Configuration Apache pour Ganglia
Éditez le fichier de configuraton spécifique de Ganglia pour Apache, généralement situé à /etc/httpd/conf.d/ganglia.conf. Modifiez la section <Location /ganglia> comme suit pour activer l'authentification :
<Location /ganglia>
AuthType Basic
AuthName "Accès Ganglia Authentifié"
AuthUserFile "/etc/httpd/auth.basic"
Require valid-user
</Location>
Ces directives indiquent à Apache d'utiliser l'authentification basique, de présenter une boîte de dialogue "Accès Ganglia Authentifié" et de valider les utilisateurs contre le fichier /etc/httpd/auth.basic.
Démarrage et Activation des Services
Après la configuration, il est essentiel de démarrer les services nécessaires et de les configurer pour qu'ils se lancent automatiquement au démarrage du système.
Sur le Serveur Central (hébergeant gmetad et ganglia-web)
Démarrez et activez Apache, gmetad, et éventuellement gmond si le serveur central doit également être surveillé par Ganglia.
sudo systemctl start httpd.service gmetad.service gmond.service
sudo systemctl enable httpd.service gmetad.service gmond.service
Sur les Nœuds Surveillés (agents gmond)
Sur chaque machine à surveiller, seul l'agent gmond est nécessaire.
sudo systemctl start gmond.service
sudo systemctl enable gmond.service
Une fois ces étapes complétées, en accédant à l'URL de votre interface Ganglia (par exemple, http://votre_serveur/ganglia), vous serez invité à fournir les informations d'identification que vous avez configurées.