Déploiement de Ganglia pour la Supervision Serveur avec Accès Sécurisé

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 gmetad dans 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 gmond envoient leurs données en multidiffusion, et gmetad é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 gmond est configuré pour envoyer spécifiquement ses données à une adresse IP ou un nom d'hôte désigné de gmetad. 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
  1. 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.

Étiquettes: Ganglia Monitoring Apache HTTPD Linux CentOS

Publié le 8 juillet à 19h30