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).

Download and install Zabbix
Zabbix is being downloaded over 4 000 000 times every year for a reason. Download and install Zabbix for free and try it yourself!

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."

1 Création de la base de données

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!!!!