Serveurs Vps Zabbix Supervision

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.

Julien Bernard
Julien Bernard

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.

6 min de lecture

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.

CoucheChoixRôle
CollecteZabbix Agent 2Mesures du système supervisé
TraitementZabbix Server 7.0 LTSÉvalue items, triggers et actions
StockagePostgreSQLConserve configuration, historique et événements
InterfaceNginx et PHPPré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.

Schéma séparant agent, serveur Zabbix, base PostgreSQL et frontend
L’agent collecte, le serveur traite, PostgreSQL conserve et le frontend consulte. Chaque liaison mérite son propre contrôle réseau et TLS.

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.

ModeFlux réseauPare-feu minimal
ActifAgent vers server TCP 10051Autoriser la sortie depuis l’agent et l’entrée 10051 côté server
PassifServer vers agent TCP 10050Autoriser 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ômeFrontière à vérifierPremière preuve
Hôte indisponibleAgent vers serverJournaux Agent 2 et port 10051
Pas de nouvelle valeurServer vers PostgreSQLJournal zabbix-server et requête DB
Frontend inaccessibleNginx vers PHP-FPMStatuts Nginx/PHP et journal erreur
Alerte absenteTrigger vers actionHistorique 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

  1. Fixez Zabbix 7.0 LTS, Ubuntu 24.04, PostgreSQL et Nginx.
  2. Créez et importez la base avant de démarrer zabbix-server.
  3. Protégez frontend, secret DB et liaisons Agent 2 avec TLS PSK.
  4. Ouvrez seulement les flux nécessaires au mode actif ou passif choisi.
  5. Validez mesure récente, trigger, notification et restauration.

Questions fréquentes

Zabbix Server et Agent 2 sont-ils le même composant ?
Non. Agent 2 collecte sur l’hôte ; Zabbix Server traite les valeurs et orchestre la supervision.
Faut-il ouvrir le port 10050 avec un agent actif ?
Non pour les contrôles strictement actifs. Le serveur reçoit alors les connexions des agents sur 10051.
Peut-on exposer directement le frontend Nginx ?
Pas en HTTP public. Ajoutez HTTPS, changez le mot de passe initial et limitez l’administration selon votre modèle de menace.
Pourquoi séparer PostgreSQL plus tard ?
La base porte les écritures, la rétention et la maintenance. La séparation devient utile quand ces charges concurrencent la collecte ou l’interface.

Préparé par

Julien Bernard
Julien Bernard

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 editorial

Articles liés