Installer Zabbix avec LXC
Au sommaire :
- 1-Qu'est-ce que Zabbix ?
- 2-Prérequis
- 3-Création d'un conteneur LXC
- 4-Créer un compte utilisateur
- 5-Installer Zabbix
- 6-Installer MySQL
- 7-Résolution de problèmes
1-Qu'est-ce que Zabbix ?
Zabbix est une solution de supervision open-source d'origine Letonne qui permet de surveiller une infrastructure informatiques tel que les réseaux, les serveurs, les machines virtuelles et les services dans le Cloud.
il est écrit en plusieurs langages selon les module :
- C (serveur, proxy, agent n°1)
- Go (agent n°2)
- PHP (interface web)
- Java (passerelle)
J'ai découvert Zabbix dans le livre "Mastering Proxmox VE" de Wassim Ahmed où il lui consacre un chapitre tout entier donc je vais rédiger de la documentation à partir de cette solution.
2-Prérequis
Nous allons partir sur la base suivante :
- Version de Zabbix : 6.4
- Base de donnée : MySQL
- Serveur web : Apache
- Composants : interface, serveur, agent
Au vu de ce que demande Zabbix, une machine virtuelle est beaucoup trop gourmande en ressources donc je vous conseille de l'installer dans un conteneur LXC (Ubuntu 22.04 LTS pour ce tutoriel).
Zabbix propose un guide d'installation sur son site web si vous voulez modifier certains éléments (système, base de données, serveur web).
3-Création d'un conteneur LXC
Pour commencer, téléchargez un template Ubuntu 22.04 LTS.
Vous devriez le trouver à cet endroit.
Cliquez sur "Create CT".
General
- CT ID : choisissez un identifiant disponible
- Hostname : nommez votre conteneur
- Password/Confirm password : choisissez un mot de passe et confirmez le
- SSH public key (recommandé) : indiquez votre clé SSH publique pour vous connecté sans mot de passe
Template
- Storage : sélectionnez le stockage qui contient le template
- Template : sélectionnez le template Ubuntu 22.04 LTS
Disks
- Storage : sélectionnez "local-lvm"
- Disk size (GiB) : laissez la taille par défaut
CPU
- Cores : 1 core suffit à titre domestique
Memory
- Memory (Mib)/Swap (Mib) : mettez 1 Go de mémoire vive
Network
- IPv4/CIDR : indiquez une adresse IP statique.
- Gateway (IPv4) : Indiquez la passerelle de votre réseau local.
DNS
- DNS domain/DNS servers : laissez par défaut ou indiquez celui que vous préférer (Cloudflare/Google pour l'exemple).
Vérifiez que tout est bon puis validez.
4-Créer un compte utilisateur
Démarrez votre conteneur, connectez vous en SSH (ou via l'interface web de votre serveur PVE) et commencez par créer un utilisateur avec la commande "adduser" (zabbix pour l'exemple).
root@zabbix:~# adduser zabbix
Ajoutez l'utilisateur au groupe "sudo".
root@zabbix:~# usermod -aG sudo zabbix
Déconnectez vous avec "logout" et connectez vous avec le nouveau compte.
5-Installer Zabbix
Téléchargez le dernier binaire.
sudo wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
lancez la commande "dpkg -i" pour installer le binaire.
sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
Mettez à jour les dépôts.
sudo apt update
Installez les modules nécessaire au fonctionnement de Zabbix.
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y
6-Installer MySQL
Installez le paquet "mysql-server"
sudo apt install mysql-server -y
Puis effectuer les actions suivantes :
- Créer un mot de passe administrateur
- Créer une base de données (zabbix) avec les jeux de caractères utf8 (alias utf8mb3) et utf8mb4
- Créer un utilisateur (zabbix@localhost) et un mot de passe
- Activer le mode "log_bin_trust_function_creators" (uniquement pour l'installation)
mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
Note : "Pour Zabbix 6.0.11 et versions ultérieures, des déclencheurs déterministes doivent être créés lors de l'importation du schéma. Sur MySQL et MariaDB, cela nécessite que GLOBAL log_bin_trust_function_creators = 1
soit défini si la journalisation binaire est activée et qu'il n'y a pas de privilèges de superutilisateur et que log_bin_trust_function_creators = 1 n'est pas défini dans le fichier de configuration MySQL."
Importez le schéma et les données initiales contenus dans l'archive "server.sql.gz" et validez avec le mot de passe que vous avez créé pour le compte utilisateur.
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Désactivez le mode "log_bin_trust_function_creators"
mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
Puis modifiez le fichier zabbix_server.conf et décochez la ligne "DBPassword" pour y ajouter le mot de passe de la base de données.
Note : le fichier est lisible uniquement avec des accès root donc ne vous inquiétez pas.
sudo /etc/zabbix/zabbix_server.conf
DBPassword=<db_password>
sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2
7-Configuration
Tapez l'adresse IP suivi de "/zabbix" puis choisissez la langue que vous souhaitez (anglais pour moi, question d'habitude).
Vérifiez que tout est indiqué comme "OK".
- Database type : indiquez MySQL
- Database host : localhost vu que la base est installé au même endroit que Zabbix
- Database port : 0 par défaut vu qu'on est en localhost
- Store credential in : mot de passe stocké en clair (Plain text)
Puis indiquez l'utilisateur et le mot de passe que vous avez créé dans MySQL.
Donnez un nom à votre serveur. Pour ma part ce sera Zebbix (les vrais savent) puis indiquez le fuseau horaire et choisissez le thème d'affichage.
Vérifiez que tout est bon puis validez.
Félicitation!!!!!!! Vous avez réussit à installer Zebbi...pardon, Zabbix.
Voici les identifiants par défaut de l'interface web :
- Username : Admin
- Password : zabbix
8-Résolution de problèmes
Alors si comme moi, vous avez cette interface qui s'affiche, pas de panique. C'est simplement que vous avez pas la police d'écriture adéquate installé en local.
Tapez la commande suivante.
sudo dpkg-reconfigure locales
Ensuite, sélectionnez "en_US.UTF-8 UTF-8".
Puis validez l'installation.
Enfin, redémarrez les services de Zabbix.
systemctl restart zabbix-server zabbix-agent apache2
Pour le prochain tutoriel, on verra comment surveiller Proxmox VE à partir de Zabbix. See yaaa!!!!