Installer Zabbix pour superviser ses serveurs
Installer Zabbix 7.0 LTS sur Ubuntu 24.04 avec PostgreSQL, Nginx et Agent 2, puis sécuriser et valider chaque composant.
Serveurs dédiés, infogérance et migration
Il couvre les serveurs dédiés, l'infogérance, le stockage, la supervision et les plans de sortie.
Pour installer Zabbix sans commandes incompatibles, partez d’un contour précis : Zabbix 7.0 LTS sur Ubuntu Server 24.04 LTS, PostgreSQL, Nginx et Agent 2. Installez chaque composant séparément, gardez les secrets hors de l’historique, puis prouvez collecte, stockage, interface et alertes avant d’ajouter d’autres hôtes.
Le contour retenu et ses limites
Ce guide utilise uniquement les paquets du dépôt officiel Zabbix 7.0 pour Ubuntu 24.04. Les commandes Debian, RHEL et les variantes MySQL ne sont pas interchangeables. Une installation reproductible commence par une seule matrice de versions.
| Couche | Choix | Rôle |
|---|---|---|
| Collecte | Zabbix Agent 2 | Mesures du système supervisé |
| Traitement | Zabbix Server 7.0 LTS | Évalue items, triggers et actions |
| Stockage | PostgreSQL | Conserve configuration, historique et événements |
| Interface | Nginx et PHP | Présente la configuration et les tableaux de bord |
Pour une petite installation, ces composants peuvent partager une VM. La base finit souvent par décider de la capacité réelle : fréquence des items, durée de conservation et nombre de valeurs pèsent davantage qu’un simple nombre d’hôtes.
Préparer le système et le dépôt officiel
Vérifiez d’abord la version du système et l’heure :
lsb_release -ds
timedatectl status
sudo apt update
sudo apt install -y wget ca-certificates postgresql nginx
Ajoutez ensuite le dépôt Zabbix 7.0 prévu pour Ubuntu 24.04 :
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest+ubuntu24.04_all.deb
sudo apt update
Le nom latest suit les mises à jour de la branche 7.0. Avant une automatisation durable, épinglez la version de paquet selon votre politique de changement et conservez une sauvegarde exploitable.
Installer server, frontend et agent
sudo apt install -y \
zabbix-server-pgsql zabbix-frontend-php php8.3-pgsql \
zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2
Ces paquets n’ont pas le même rôle. Le serveur Zabbix traite les données, le frontend PHP les présente, PostgreSQL les conserve et Agent 2 collecte les mesures locales. Un frontend vert ne prouve donc pas que le serveur écrit dans la base.

Créer PostgreSQL sans exposer le secret
Créez le rôle et la base depuis le compte postgres. La commande interactive évite d’inscrire le mot de passe dans l’historique :
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz \
| sudo -u zabbix psql zabbix
L’import peut prendre du temps. Contrôlez sa réussite avant de démarrer le serveur :
sudo -u zabbix psql -d zabbix -c 'SELECT COUNT(*) FROM users;'
Renseignez DBPassword dans /etc/zabbix/zabbix_server.conf. Limitez les permissions du fichier au compte système Zabbix et évitez de recopier le secret dans une commande, un ticket ou un dépôt. Pour une base distante, configurez aussi l’authentification PostgreSQL et le TLS ; n’ouvrez pas le port de la base à Internet.
Configurer Nginx et démarrer les services
Dans /etc/zabbix/nginx.conf, définissez le port d’écoute et un server_name réel. Placez ensuite ce frontend derrière HTTPS avant toute exposition publique. L’assistant web demande l’accès à la base déjà créée.
sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl enable zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl --no-pager --full status zabbix-server zabbix-agent2 nginx
Ne confondez pas disponibilité du processus et service fonctionnel. Consultez immédiatement les journaux :
sudo journalctl -u zabbix-server -n 80 --no-pager
sudo journalctl -u zabbix-agent2 -n 80 --no-pager
sudo tail -n 80 /var/log/zabbix/zabbix_server.log
Terminez l’assistant via l’URL Nginx, changez le mot de passe administrateur initial dès la première connexion et restreignez l’accès au frontend par TLS, pare-feu ou VPN d’administration.
Ajouter un hôte avec Agent 2
Sur chaque serveur supervisé Ubuntu 24.04, installez le même dépôt 7.0 puis zabbix-agent2. Dans /etc/zabbix/zabbix_agent2.conf, définissez un Hostname identique à celui créé dans le frontend ainsi que ServerActive vers le serveur Zabbix.
| Mode | Flux réseau | Pare-feu minimal |
|---|---|---|
| Actif | Agent vers server TCP 10051 | Autoriser la sortie depuis l’agent et l’entrée 10051 côté server |
| Passif | Server vers agent TCP 10050 | Autoriser 10050 uniquement depuis l’adresse du server |
Le mode actif réduit l’exposition entrante sur l’hôte supervisé. Si vous utilisez le passif, n’ouvrez jamais 10050 au monde entier.
Chiffrer la liaison agent avec une PSK
Créez la clé directement sur l’hôte, dans un fichier réservé au compte zabbix :
sudo install -d -o zabbix -g zabbix -m 0750 /etc/zabbix/keys
openssl rand -hex 32 | sudo tee /etc/zabbix/keys/agent.psk >/dev/null
sudo chown zabbix:zabbix /etc/zabbix/keys/agent.psk
sudo chmod 0600 /etc/zabbix/keys/agent.psk
Ajoutez ensuite à la configuration Agent 2 :
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=host-web-01
TLSPSKFile=/etc/zabbix/keys/agent.psk
Reportez exactement l’identité et la PSK dans les paramètres de chiffrement de l’hôte côté frontend. La PSK est un secret, pas un identifiant décoratif : ne l’envoyez pas dans un canal de discussion et prévoyez sa rotation.
Valider la chaîne après installation
Une validation utile suit le trajet de la donnée, pas seulement la page d’accueil.
- Agent 2 est actif et son journal ne signale pas de refus TLS.
- Le server accepte la connexion et traite les valeurs sans erreur de base.
- Latest data reçoit une métrique récente pour l’hôte exact.
- Un trigger de test change d’état puis revient à la normale.
- Une notification de test atteint un destinataire contrôlé.
| Symptôme | Frontière à vérifier | Première preuve |
|---|---|---|
| Hôte indisponible | Agent vers server | Journaux Agent 2 et port 10051 |
| Pas de nouvelle valeur | Server vers PostgreSQL | Journal zabbix-server et requête DB |
| Frontend inaccessible | Nginx vers PHP-FPM | Statuts Nginx/PHP et journal erreur |
| Alerte absente | Trigger vers action | Historique des événements et action |
Une supervision qui ne sait pas déclencher une alerte de test n’est pas terminée. Vérifiez aussi la synchronisation NTP, car des horloges divergentes rendent les événements difficiles à corréler.
Dimensionner sans transformer le guide en promesse
Les besoins dépendent des items, intervalles, prétraitements et rétentions. Commencez avec une période d’observation, mesurez la croissance PostgreSQL et surveillez les processus internes Zabbix. Séparez la base quand les écritures et la maintenance commencent à concurrencer le server ou le frontend.
Un VPS convient à un petit périmètre si stockage, sauvegardes et restauration sont testés. Pour un parc critique, documentez sauvegarde PostgreSQL, export de configuration, version des paquets et procédure de reconstruction avant de multiplier les agents.
À conserver dans la fiche d’exploitation :
- branche Zabbix, OS, moteur de base et paquets installés ;
- propriétaires des secrets DB, PSK et compte administrateur ;
- règles réseau 10050, 10051 et HTTPS ;
- preuve de restauration et test d’alerte daté.
Liste de contrôle
- Fixez Zabbix 7.0 LTS, Ubuntu 24.04, PostgreSQL et Nginx.
- Créez et importez la base avant de démarrer zabbix-server.
- Protégez frontend, secret DB et liaisons Agent 2 avec TLS PSK.
- Ouvrez seulement les flux nécessaires au mode actif ou passif choisi.
- Validez mesure récente, trigger, notification et restauration.
Questions fréquentes
Zabbix Server et Agent 2 sont-ils le même composant ?
Faut-il ouvrir le port 10050 avec un agent actif ?
Peut-on exposer directement le frontend Nginx ?
Pourquoi séparer PostgreSQL plus tard ?
Préparé par
Serveurs dédiés, infogérance et migration
Il couvre les serveurs dédiés, l'infogérance, le stockage, la supervision et les plans de sortie.
Faits vérifiés
HostScout editorialArticles liés
Clés SSH : l’authentification sans mot de passe
Créer une clé SSH Ed25519, installer la clé publique, vérifier l’hôte et désactiver le mot de passe sans perdre l’accès.
MySQL : créer un utilisateur et gérer les droits
Créer un utilisateur MySQL 8.4, limiter son hôte, attribuer puis retirer des droits, imposer TLS et contrôler le résultat.
NGINX reverse proxy : exposer plusieurs services
NGINX reverse proxy pour plusieurs services : chemins proxy_pass, en-têtes fiables, WebSocket, frontière TLS et diagnostic avant rechargement.
Docker Compose : guide multi-conteneurs
Docker Compose orchestre plusieurs conteneurs avec un fichier lisible : services, réseau, volumes, secrets, santé et diagnostic sans perte de données.
Installer Docker sur Ubuntu et Debian
Installer Docker sur Ubuntu et Debian via le dépôt officiel, vérifier Engine et Compose, puis sécuriser les droits et les ports publiés.
Adresse IP publique ou privée : la repérer
Adresse IP publique ou privée : comprenez ce qui vous identifie en ligne, où trouver chaque adresse et quoi vérifier avant d'exposer un serveur.