Installation complète des paquets Zabbix, configuration de la base de données MySQL, et mise en place de l'interface web de supervision
Avant l'installation de Zabbix, configuration des éléments système essentiels : synchronisation de l'heure avec le serveur NTP de la SNCF via timesyncd.conf (NTP=ntp.sncf.fr), mise à jour du fichier sources.list pour pointer vers le miroir debian-security, et installation d'Aptitude pour la gestion avancée des paquets.
Configuration NTP, sources.list et installation d'Aptitude
Installation des paquets Zabbix dont j'ai besoin pour réaliser toute l'installation et la configuration de Zabbix. Les paquets choisis sont les suivants : zabbix-agent, zabbix-agent2, zabbix-frontend-php, zabbix-sender, zabbix-server-mysql et zabbix-web-service.
Installation des 6 paquets Zabbix principaux
Les paquets sélectionnés vont donc s'installer avec toutes leurs dépendances. Les dépendances sont des paquets supplémentaires nécessaires au bon fonctionnement du paquet principal.
Installation des dépendances des paquets Zabbix
Consultation du fichier README.Debian dans /usr/share/doc/zabbix pour obtenir les instructions d'installation de la base de données. Installation automatique de mysql-server via le paquet zabbix-server-mysql, puis exécution des commandes SQL pour créer la base de données Zabbix avec l'encodage utf8mb4 et configurer les droits d'accès pour l'utilisateur zabbix. Import du schéma de base de données via la commande zcat et édition du fichier zabbix_server.conf avec les paramètres de connexion (DBHost, DBName, DBUser, DBPassword).
Instructions du README.Debian
Création BDD et config MySQL
Édition du fichier zabbix_server.conf avec les paramètres de connexion
Modification du fichier zabbix_server.conf : décommentage et renseignement des paramètres DBHost (localhost), DBName (zabbix), DBUser (zabbix) et DBPassword. Activation des scripts globaux en passant EnableGlobalScripts de 0 à 1.
Configuration des paramètres de connexion et activation des scripts globaux
Suivant les instructions du README.Debian du répertoire /usr/share/doc/zabbix-frontend-php, copie du contenu du fichier zabbix-frontend-php.conf dans 000-default.conf. Modification du fichier php.ini (/etc/php/8.4/apache2) après backup : ajustement des valeurs max_execution_time, max_input_time, memory_limit et post_max_size selon les paramètres requis par Zabbix. Redémarrage et vérification du service Apache2.
Copie de zabbix-frontend-php.conf
Redémarrage du service Apache2
Je me rends ensuite sur l'interface web de Zabbix avec l'IP que je lui ai attribué.
Je sélectionne comme langage par défaut le français et je clique sur «Prochaine étape».
Sélection de la langue française dans l'interface web Zabbix
Je vérifie ensuite que tous les prérequis sont bien = OK », si c'est le cas, je passe à la prochaine étape.
Vérification des prérequis système - tous les critères sont OK
Je configure ensuite la connexion à la base de donnée. Je dois sélectionner MySQL dans le type de base de donnée, sauf que comme présenté sur ce screen, il n'est pas affiché, il n'y a que PostgreSQL. Je dois donc trouver un moyen de résoudre ce souci.
⚠️ Problème : Seul PostgreSQL est disponible, MySQL n'apparaît pas
J'ai donc en premier lieu, regardé dans le fichier de configuration qui gère les identifiants de la base de données, je me disais que j'avais peut-être oublié de décommenter un paramètre qui permettrait de détecter MySQL en type de base de données, mais je n'avais rien oublié.
Vérification du fichier de configuration - paramètres corrects
J'ai par la suite regardé dans tous les fichiers de configuration et les README.Debian dont j'avais pu avoir accès jusqu'à présent, et je me suis rendu qu'il y a un paramètre que j'avais oublié de lire lors de la première lecture du README.Debian du répertoire /usr/share/doc/zabbix-frontend-php. Il y a une catégorie «Configuring the Zabbix frontend», et dans cette catégorie, si on lit bien le deuxième paragraphe, il est indiqué que si nous voulons utiliser PostgreSQL comme base de données, il faut vérifier que le paquet correspondant est bien installé, sauf qu'à l'inverse du paragraphe, il est indiqué que si j'ai besoin du MySQL comme base de données, alors j'aurais besoin d'installer le paquet php-mysql, je pensais qu'il se serait installé automatiquement lorsque j'ai installé les 5 paquets de Zabbix, mais apparemment non.
Découverte de la solution dans le README : installation du paquet php-mysql nécessaire
Je me suis donc rendu dans Aptitude et j'ai recherché le paquet «php-mysql», je l'ai installé, puis je suis revenu sur l'interface web de Zabbix en rechargeant la page, cette-fois-ci, MySQL était bien détecté comme type de base de données.
✅ Problème résolu : MySQL est maintenant détecté correctement
Il faut également renseigner l'hôte de la base de données, le nom de la base de données, l'utilisateur et son mot de passe. Toutes ces informations correspondent aux informations de la base de données, renseignées dans le fichier zabbix_server.conf (/etc/zabbix).
Renseignement des paramètres de connexion à la base de données MySQL
Pour finir, il faut renseigner le nom du serveur Zabbix, qui sera le même que le nom de la machine virtuelle, ainsi que le fuseau horaire correspondant à ma localisation.
Configuration du nom du serveur et du fuseau horaire
Je vérifie que toutes les informations j'ai renseignées sont correctes : le type de base de données, le serveur, le port, le nom, l'utilisateur, ainsi que le nom du serveur Zabbix.
Récapitulatif de tous les paramètres avant validation
Zabbix indique qu'il est impossible de créer automatiquement le fichier de configuration. Solution : téléchargement du fichier zabbix.conf.php, copie de son contenu, puis création manuelle via nano zabbix.conf.php dans le répertoire /etc/zabbix.
Message d'erreur : installation manuelle requise
Création manuelle du fichier avec nano
Installation réussie !
Après actualisation de la page, Zabbix confirme l'installation avec succès : le fichier /etc/zabbix/zabbix.conf.php a bien été créé.
Interface web de Zabbix opérationnelle et prête à l'emploi
J'ai donc déployé l'outil qui m'était demandé. J'ai rencontré des difficultés que j'ai pu résoudre avec du temps et de la recherche, notamment pour l'erreur sur la base de données. Ce projet m'a beaucoup aidé à faire des recherches en autonomie dans des fichiers de configuration, sans aide de documentations ou sans demander la solution à mon tuteur. Je garde donc un très positif de cette mise en place de Zabbix. Il y a un seul point négatif que je retiens, il me concerne, c'est que je ne pense pas toujours à faire de sauvegardes avant de modifier un fichier de configuration, j'y ai pensé pour le php.ini, mais tous les autres fichiers de configuration, je les ai modifiés sans faire de sauvegarde avant, et donc, qui dit pas de sauvegarde, dit que si je fais une erreur dans ma saisie sur le fichier et que je sauvegarde comme il est, je n'ai pas moyen de revenir en arrière sur ce que j'ai tapé, et cela peut donc engendrer des oublis sur le contenu original du fichier à l'origine.
Ma perspective d'évolution concernant ce type de projets est donc de faire, dès que je le peux, des sauvegardes de fichiers, mais c'est pareil pour les machines virtuelles, il faut les sauvegarder régulièrement en cas de manipulation qui les feraient dysfonctionner.
Vous pouvez télécharger l'intégralité de cette partie au format PDF pour consultation hors ligne ou impression.
Télécharger le PDF