Contexte : serveur de supervision Zabbix 7.0 LTS avec interface web sous Nginx et base MariaDB · Testé sur : Debian 12, Zabbix 7.0, MariaDB, PHP 8.2 · Dernière vérification : contenu de 2025 non revérifié
Installer un serveur Zabbix 7.0 complet sur Debian 12 : le serveur Zabbix, sa base de données MariaDB, l'interface web servie par Nginx et PHP-FPM, ainsi que l'agent Zabbix local.
Ce serveur sert ensuite de base aux tutoriels Créer une VM jumelle Zabbix et Cluster Zabbix HA : Pacemaker, Corosync et MariaDB Galera.
sudo et un accès console.<MOT_DE_PASSE_DB> dans cette page et conservé dans un gestionnaire de mots de passe.Valeurs d'exemple utilisées dans cette page (maquette du projet annuel ESGI 2025), à adapter à votre réseau :
| Élément | Valeur d'exemple |
|---|---|
| Nom du serveur | SRV-ZABBIX-01 (FQDN SRV-ZABBIX-01.alpha.lan) |
| Adresse IP | 192.168.30.10/24 |
| Passerelle | 192.168.30.1 |
| Interface réseau | ens18 |
Debian 12 configure le réseau avec ifupdown : l'adresse se règle dans le fichier /etc/network/interfaces.
sudo nano /etc/network/interfaces
Exemple de configuration en IP statique :
auto ens18
iface ens18 inet static
address 192.168.30.10/24
gateway 192.168.30.1
dns-nameservers 1.1.1.1 8.8.8.8
La directive
dns-nameserversn'est appliquée que si le paquetresolvconfest installé. Sinon, renseignez les serveurs DNS dans/etc/resolv.conf.
Redémarrez le réseau, puis vérifiez l'adresse obtenue :
sudo systemctl restart networking
ip a
Si vous êtes connecté en SSH, le redémarrage du réseau peut couper la session : gardez un accès console à portée de main.
sudo apt update && sudo apt upgrade -y
sudo apt install -y gnupg curl wget lsb-release ca-certificates software-properties-common
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1%2Bdebian12_all.deb
sudo dpkg -i zabbix-release_7.0-1+debian12_all.deb
sudo apt update
Le nom exact du paquet
zabbix-releasechange avec les révisions. En cas d'erreur 404, récupérez le lien à jour sur la page de téléchargement officielle (voir les références).
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent mariadb-server php-fpm php-mysql
Démarrez MariaDB et activez-le au démarrage :
sudo systemctl enable mariadb --now
Vous pouvez d'abord sécuriser l'installation de MariaDB (compte root, utilisateurs anonymes, base de test) :
sudo mysql_secure_installation
Ouvrez ensuite la console MariaDB :
sudo mysql -u root -p
Créez la base et l'utilisateur de Zabbix :
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY '<MOT_DE_PASSE_DB>';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
FLUSH PRIVILEGES;
EXIT;
Importez le schéma initial. Le mot de passe demandé est celui de l'utilisateur zabbix (<MOT_DE_PASSE_DB>) ; l'import peut prendre quelques minutes.
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
sudo nano /etc/zabbix/zabbix_server.conf
Renseignez le mot de passe de la base :
DBPassword=<MOT_DE_PASSE_DB>
Selon vos besoins, ajustez aussi dans ce fichier les paramètres
LogFile,PidFileouDBHost.
Créez le site Zabbix :
sudo nano /etc/nginx/sites-available/zabbix
Adaptez la directive server_name à l'adresse IP et au nom de votre serveur :
server {
listen 80;
server_name 192.168.30.10 SRV-ZABBIX-01.alpha.lan;
root /usr/share/zabbix;
index index.php index.html;
access_log /var/log/nginx/zabbix_access.log;
error_log /var/log/nginx/zabbix_error.log;
location = /favicon.ico {
log_not_found off;
}
location / {
try_files $uri $uri/ =404;
}
location ~ /\.ht {
deny all;
}
location ~ /(api\/|conf[^\.]|include|locale) {
deny all;
return 404;
}
location /vendor {
deny all;
return 404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "date.timezone=Europe/Paris";
}
}
Activez le site, puis vérifiez la syntaxe :
sudo ln -s /etc/nginx/sites-available/zabbix /etc/nginx/sites-enabled/
sudo nginx -t
Le paquet
zabbix-nginx-conffournit aussi un fichier/etc/zabbix/nginx.conf: la documentation officielle se contente d'y décommenter et d'y renseigner les directiveslistenetserver_name. Choisissez l'une ou l'autre méthode, et ne gardez pas deux blocs actifs avec le même port et le même nom.
sudo nano /etc/php/8.2/fpm/php.ini
date.timezone = Europe/Paris
sudo systemctl restart php8.2-fpm nginx zabbix-server zabbix-agent
sudo systemctl enable zabbix-server zabbix-agent nginx php8.2-fpm
http://192.168.30.10/ dans un navigateur : avec root /usr/share/zabbix, l'interface est servie à la racine du site.localhost, base zabbix, utilisateur zabbix, mot de passe <MOT_DE_PASSE_DB>), nom du serveur et fuseau horaire.Admin / zabbix, à changer immédiatement (menu Utilisateurs > Utilisateurs > Admin).N'exposez pas l'interface de Zabbix directement sur Internet en HTTP. Pour un accès distant, passez par un reverse proxy HTTPS ou par un VPN.
systemctl status zabbix-server zabbix-agent nginx php8.2-fpm --no-pager
sudo ss -lntp | grep -E ':10050|:10051|:80 '
sudo tail -n 20 /var/log/zabbix/zabbix_server.log
active (running).À ce stade, Zabbix est installé et fonctionnel avec Nginx et MariaDB sur le serveur principal.
/zabbix : avec cette configuration Nginx, l'interface est à la racine du site (http://192.168.30.10/), et non sous /zabbix.server_name et c'est le site par défaut qui répond. Ajoutez l'adresse à server_name, ou désactivez le site par défaut (sudo rm /etc/nginx/sites-enabled/default), puis rechargez Nginx.fastcgi_pass n'existe pas. Vérifiez le nom exact avec ls /run/php/ et que php8.2-fpm est démarré.log_bin_trust_function_creators : la journalisation binaire est activée. La documentation officielle indique d'exécuter SET GLOBAL log_bin_trust_function_creators = 1; dans MariaDB avant l'import, puis de remettre la valeur à 0 une fois l'import terminé./var/log/zabbix/zabbix_server.log ; la cause la plus fréquente est un DBPassword erroné.