Phase 4 : Déploiement de Zabbix et Grafana (Supervision)
1. Objectif de ce Document
Ce document décrit la mise en place de notre pile de supervision proactive, composée de deux outils open-source de référence :
- Zabbix : Le moteur de collecte de données et d’alerting.
- Grafana : L’outil de visualisation et de création de tableaux de bord (dashboards).
Nous déploierons ces deux services dans des conteneurs LXC Debian 13 séparés, conformément aux bonnes pratiques de séparation des services. L’objectif est de surveiller en temps réel la santé de toute notre infrastructure (serveurs, switches, services) et d’être alerté automatiquement en cas de défaillance.
2. Le “Pourquoi” : Le Monitoring Cardiaque de l’Infrastructure
Reprenons notre analogie du lycée. GLPI est l’intendant qui gère les problèmes une fois qu’ils sont signalés. La pile Zabbix/Grafana, c’est l’infirmerie équipée d’un système de monitoring avancé.
- L’agent Zabbix, c’est le capteur cardiaque que l’on pose sur chaque “patient” (chaque serveur, chaque poste de travail). Il mesure en continu des dizaines de paramètres vitaux : le rythme cardiaque (charge CPU), la tension (utilisation de la RAM), la température (espace disque), etc.
- Le serveur Zabbix, c’est la machine de monitoring centrale à laquelle tous les capteurs sont reliés. C’est le cerveau du système. Il analyse toutes les données en temps réel et, plus important encore, il possède des seuils d’alerte. Si la tension d’un patient devient trop élevée, la machine déclenche une alarme sonore avant que le patient ne fasse un malaise. C’est l’alerting proactif.
- Grafana, c’est le grand écran mural dans la salle de contrôle de l’infirmerie. Il ne collecte aucune donnée lui-même, mais il se connecte à Zabbix pour afficher tous les signaux vitaux de tous les patients sous forme de graphiques clairs, esthétiques et personnalisés. D’un seul coup d’œil, l’infirmier (l’administrateur) peut voir l’état de santé général de tout le lycée.
Avec cet outil, nous ne dépendons plus des utilisateurs pour nous signaler qu’un service est lent ou qu’un serveur est tombé. Nous le savons avant eux.
3. Prérequis
- Le cluster Proxmox est fonctionnel.
- Le template de conteneur Debian 13 “Trixie” est disponible.
- Deux adresses IP ont été réservées dans le VLAN des serveurs :
10.0.20.21pour Zabbix.10.0.20.22pour Grafana.
4. Procédure Pas-à-Pas (Synthèse)
Partie A : Déploiement du Serveur Zabbix
- Création du Conteneur :
- Créez un conteneur LXC (
ct-deb-zabbix-01) avec Debian 13, 2 Cores, 4 Go de RAM, et l’IP10.0.20.21.
- Créez un conteneur LXC (
- Installation de la Base de Données :
- Ouvrez la console du conteneur, mettez à jour (
apt update && apt upgrade -y) et installez le serveur de base de données :apt install mariadb-server. - Sécurisez l’installation :
mysql_secure_installation. - Créez la base de données et l’utilisateur Zabbix :
# mysql -uroot -p CREATE DATABASE zabbixdb character set utf8mb4 collate utf8mb4_bin; CREATE USER 'zabbix_user'@'localhost' IDENTIFIED BY 'VOTRE_MOT_DE_PASSE_COMPLEXE'; GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbix_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
- Ouvrez la console du conteneur, mettez à jour (
- Installation de Zabbix (selon les instructions officielles) :
- Exécutez les commandes suivantes dans la console du conteneur pour installer le serveur, le frontend web et l’agent 2 :
# 1. Télécharger le paquet de configuration du dépôt Zabbix wget https://repo.zabbix.com/zabbix/7.4/debian/pool/main/z/zabbix-release/zabbix-release_7.4+debian13_all.deb # 2. Installer le paquet dpkg -i zabbix-release_7.4+debian13_all.deb # 3. Mettre à jour la liste des paquets apt update # 4. Installer les composants Zabbix pour Apache et MySQL apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent2
- Exécutez les commandes suivantes dans la console du conteneur pour installer le serveur, le frontend web et l’agent 2 :
- Configuration de la Base de Données :
- Importez le schéma initial. Entrez le mot de passe de
zabbix_userlorsque demandé.zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix_user -p zabbixdb - Éditez le fichier de configuration du serveur Zabbix pour lui indiquer le mot de passe de la base de données :
nano /etc/zabbix/zabbix_server.conf. - Trouvez la ligne
# DBPassword=et modifiez-la en :DBPassword=VOTRE_MOT_DE_PASSE_COMPLEXE.
- Importez le schéma initial. Entrez le mot de passe de
- Démarrage des Services :
- Démarrez et activez les services pour qu’ils se lancent au démarrage du conteneur :
systemctl restart zabbix-server zabbix-agent2 apache2 systemctl enable zabbix-server zabbix-agent2 apache2
- Démarrez et activez les services pour qu’ils se lancent au démarrage du conteneur :
- Assistant d’Installation Web :
- Ouvrez un navigateur sur
http://10.0.20.21/zabbix. - Suivez l’assistant, qui vérifiera les prérequis et vous demandera les informations de connexion à la base de données que vous avez configurées.
- Connectez-vous avec les identifiants par défaut
Admin/zabbix.
- Ouvrez un navigateur sur
Partie B : Déploiement de Grafana
- Création du Conteneur :
- Créez un second conteneur LXC (
ct-deb-grafana-01) avec Debian 13, 2 Cores, 2 Go de RAM, et l’IP10.0.20.22.
- Créez un second conteneur LXC (
- Installation des prérequis :
- Ouvrez la console du conteneur, mettez à jour le système et installez les paquets nécessaires.
apt-get update apt-get install -y apt-transport-https software-properties-common wget
- Ouvrez la console du conteneur, mettez à jour le système et installez les paquets nécessaires.
- Ajout de la clé GPG et du dépôt Grafana (méthode sécurisée) :
- Exécutez les commandes suivantes pour ajouter le dépôt Grafana de manière sécurisée, conformément à la documentation officielle.
# 1. Créer un répertoire pour les clés APT mkdir -p /etc/apt/keyrings/ # 2. Télécharger la clé GPG de Grafana et la stocker dans le répertoire des clés wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | tee /etc/apt/keyrings/grafana.gpg > /dev/null # 3. Ajouter le dépôt Grafana à la liste des sources APT echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list
- Exécutez les commandes suivantes pour ajouter le dépôt Grafana de manière sécurisée, conformément à la documentation officielle.
- Installation de Grafana :
- Mettez à jour la liste des paquets et installez Grafana.
apt-get update apt-get install grafana
- Mettez à jour la liste des paquets et installez Grafana.
- Démarrage du Service Grafana :
- Démarrez et activez le service pour qu’il se lance au démarrage du conteneur.
systemctl start grafana-server systemctl enable grafana-server
- Démarrez et activez le service pour qu’il se lance au démarrage du conteneur.
Partie C : Déploiement des Agents Zabbix 2 par GPO
- Téléchargement :
- Rendez-vous sur la page de téléchargement des agents Zabbix (
https://www.zabbix.com/fr/download_agents). - Téléchargez la version de Zabbix Agent 2 pour Windows, en format MSI 64-bit.
- Rendez-vous sur la page de téléchargement des agents Zabbix (
- Configuration et Déploiement :
- Placez le fichier MSI sur un partage réseau accessible en lecture par
Domain Computers(ex:\\vm-win-dc-01\Deploy\Zabbix-Agent\). - Créez une nouvelle GPO
GPO-Deploy-Zabbix-Agent. - Dans
Computer Configuration > Software Settings, déployez le paquet MSI. - Crucial : L’installeur MSI de Zabbix Agent 2 permet de passer des paramètres de configuration directement lors de l’installation. Dans les options de déploiement de la GPO (ou via un fichier de transformation MST), vous devez spécifier au minimum :
SERVER=10.0.20.21(pour les vérifications passives)SERVERACTIVE=10.0.20.21(pour les vérifications actives et l’auto-enregistrement)HOSTNAME=%COMPUTERNAME%(pour que l’agent utilise le nom du PC comme nom d’hôte dans Zabbix)
- Liez la GPO aux OUs contenant vos postes et serveurs.
- Placez le fichier MSI sur un partage réseau accessible en lecture par
Partie D : Connexion de Grafana à Zabbix
- Accédez à l’interface de Grafana :
http://10.0.20.22:3000. Login par défaut :admin/admin. - Dans le menu
Configuration > Plugins, cherchez et installez le plugin “Zabbix”. - Allez dans
Configuration > Data Sourceset ajoutez une nouvelle source de données de type “Zabbix”. - Remplissez les informations :
- URL :
http://10.0.20.21/zabbix/api_jsonrpc.php - Username / Password : Créez un utilisateur dédié dans Zabbix avec des permissions d’API en lecture seule, et renseignez ses identifiants ici.
- URL :
- Cliquez sur
Save & Test. Vous devriez obtenir un message de succès.
5. Points de Validation
- Auto-discovery Zabbix : Après le déploiement des agents, les nouveaux ordinateurs doivent apparaître automatiquement dans Zabbix sous
Configuration > Hosts. - Collecte de Données : Sur un hôte dans Zabbix, allez dans
Monitoring > Latest data. Vous devriez voir des données arriver (CPU, mémoire, etc.). - Connexion Grafana : Le test de la source de données doit être réussi.
- Création d’un Graphe : Dans Grafana, créez un nouveau tableau de bord. Ajoutez un panneau, sélectionnez votre source de données Zabbix. Vous devez être capable de sélectionner un groupe d’hôtes, un hôte (ex:
vm-win-dc-01) et un item (ex:CPU utilization) et de voir le graphique s’afficher.
Notre infrastructure est maintenant sous surveillance constante. Nous avons la capacité de voir les problèmes en temps réel et d’être alertés proactivement. L’étape suivante est de déployer les autres services applicatifs destinés aux utilisateurs finaux.