Skip to content
Learni
Voir tous les tutoriels
DevOps

Comment installer et configurer Zabbix 7 en 2026

Read in English

Introduction

Zabbix est une solution de monitoring open-source puissante, capable de superviser des milliers d'hôtes via SNMP, agents ou JMX. En 2026, avec la version 7.x, elle intègre l'IA pour la détection d'anomalies et une UI modernisée. Ce tutoriel intermédiaire vous guide pas à pas pour un déploiement complet sur Ubuntu 24.04 : installation du serveur avec MariaDB et Nginx, configuration d'agents, création de triggers et items avancés. Pourquoi c'est crucial ? Dans un monde cloud-native, un monitoring proactif évite les downtimes coûteux (jusqu'à 10k€/h). Vous obtiendrez un setup production-ready, scalable horizontalement, avec des exemples concrets copier-collables. À la fin, vous surveillerez CPU, disques et logs en temps réel, comme un expert DevOps.

Prérequis

  • Serveur Ubuntu 24.04 LTS avec 4 Go RAM minimum (8 Go recommandé pour >100 hôtes)
  • Accès root ou sudo
  • Connexion internet pour les paquets
  • Bases en Linux, SQL et networking
  • Ports ouverts : 10050 (agent), 10051 (server), 80/443 (web)

Ajouter le repo et installer les paquets

terminal
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu24.04_all.deb
dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb
apt update
apt install -y zabbix-server-mysql zabbix-frontend-php-nginx zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2 mariadb-server nginx-full

Ce script ajoute le repo officiel Zabbix 7 pour Ubuntu 24.04, met à jour les paquets et installe le serveur MySQL, frontend PHP/Nginx, scripts SQL, agent2 (nouveau en 7.x pour Go) et MariaDB. L'agent2 est plus performant que l'ancien agentd. Attention : exécutez en root, sinon les services ne démarrent pas.

Sécuriser et configurer MariaDB

Avant de créer la base, sécurisez MariaDB avec mysql_secure_installation. Cela supprime les users anonymes et désactive le login root distant, essentiel en prod. Utilisez un mot de passe fort pour root (ex: Generez-le avec pwgen 32 1).

Créer la base Zabbix et l'utilisateur

create_zabbix_db.sql
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'VotreMotDePasseFort123!';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
QUIT;

Ce script SQL crée une DB optimisée UTF8MB4 (pour emojis et caractères spéciaux en Zabbix 7) et un user dédié. Remplacez 'VotreMotDePasseFort123!' par un secret. Le COLLATE utf8mb4_bin évite les faux positifs sur les triggers texte. Testez avec mysql -u zabbix -p zabbix.

Importer le schéma de base

terminal
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u zabbix -p zabbix
zcat /usr/share/zabbix-sql-scripts/mysql/images.sql.gz | mysql --default-character-set=utf8mb4 -u zabbix -p zabbix
zcat /usr/share/zabbix-sql-scripts/mysql/data.sql.gz | mysql --default-character-set=utf8mb4 -u zabbix -p zabbix

Importe les schémas server, images et data pour Zabbix 7. L'ordre est critique : server d'abord. Utilisez zcat pour décompresser à la volée, plus rapide que gunzip. Temps : ~2-5 min selon SSD. Vérifiez avec mysql -u zabbix -p -e "SELECT COUNT(*) FROM hosts;" zabbix (devrait être >0).

Configurer le serveur Zabbix

Éditez maintenant /etc/zabbix/zabbix_server.conf. Activez le cache Housekeeper pour nettoyer les données historiques et HistoryCache pour les items haute fréquence.

Configuration complète zabbix_server.conf

/etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=100M
PidFile=/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=VotreMotDePasseFort123!
SNMPTrapperFile=/var/log/zabbix/zabbix_traps.tmp
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
CacheSize=128M
HistoryCacheSize=64M
TrendCacheSize=64M
ValueCacheSize=512M
HistoryIndexCacheSize=32M
HousekeepingFrequency=1
MaxHousekeeperDelete=5000
StartPollers=10
StartPollersUnreachable=5
StartPingers=10
StartTrappers=10
StartHTTPPollers=5
StartDiscoverers=5
StartTimers=10
StartEscalators=5
Timeout=30
AlertScriptsPath=/usr/lib/zabbix/alertscripts

Config complète optimisée pour 100-500 hôtes : caches augmentés pour scalabilité, housekeeper toutes les heures. Ajustez CacheSize selon RAM (1/10e total). DBPassword doit matcher le SQL précédent. Après édition, zabbix_server -t valide la syntaxe.

Démarrer et activer les services

terminal
systemctl restart zabbix-server zabbix-agent2 nginx mariadb
systemctl enable zabbix-server zabbix-agent2 nginx mariadb
systemctl status zabbix-server
ufw allow 10050/tcp
ufw allow 10051/tcp
ufw allow 80/tcp
ufw reload

Redémarre et active les services. Status vérifie les logs (journalctl -u zabbix-server). Ouvre les ports agent/server/web via UFW. En prod, ajoutez HTTPS avec Let's Encrypt après.

Installer et configurer un agent distant

Sur l'hôte à monitorer (Ubuntu 24.04) : installez zabbix-agent2 pareillement. Puis configurez pour pointer vers votre serveur.

Configuration agent2 avec userparameter custom

/etc/zabbix/zabbix_agent2.conf
Server=IP_DU_SERVEUR_ZABBIX
ServerActive=IP_DU_SERVEUR_ZABBIX
Hostname=mon-serveur-exemple
Include=/etc/zabbix/zabbix_agent2.d/
UserParameter=custom.disk.usage[*],df -h $1 | tail -1 | awk '{print $5}' | sed 's/%//'
AllowRoot=1
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=10M

Agent2 pointe sur le serveur via Server/ServerActive (push/pull). Userparameter custom pour disque : appelle df et parse %. Copiez sur tous les hôtes, redémarrez agent2. Test : zabbix_get -s 127.0.0.1 -k custom.disk.usage[/].

Accès UI et première configuration

Accédez à http://IP_SERVEUR_ZABBIX/zabbix. Setup wizard : DB zabbix/zabbix/VotreMotDePasse, timezone Europe/Paris. Créez admin/zabbix. Ajoutez l'hôte 'mon-serveur-exemple' en Configuration > Hosts, avec interface agent port 10050.

Bonnes pratiques

  • Backup automatisé : Crontab pour mysqldump zabbix > /backup/zabbix-$(date +%Y%m%d).sql.gz quotidien.
  • HTTPS obligatoire : Certbot pour Nginx (certbot --nginx), forcez redirect 80->443.
  • Scalabilité : Proxies Zabbix pour >1000 hôtes, partitions DB.
  • Sécurité : 2FA via SAML, limitez IP en Nginx (allow IP_SERVEUR; deny all;).
  • Alertes : Intégrez Slack/Telegram via media types, testez escalations.

Erreurs courantes à éviter

  • Charset DB faux : Sans utf8mb4_bin, triggers texte buggent (ex: "é" != "e").
  • Ports fermés : Agent ne répond pas → ufw status, telnet IP 10050.
  • Caches insuffisants : Pollers saturés → logs "cannot send data" ; doublez ValueCacheSize.
  • Housekeeper lent : MaxHousekeeperDelete trop haut → timeout ; baissez à 1000.

Pour aller plus loin