Ce que fait Zabbix
Zabbix collecte des mesures — charge du processeur, mémoire libre, espace disque, état d'un service, temps de réponse d'une page — et les compare à des déclencheurs. Quand une expression devient vraie, par exemple « moins de 10 % d'espace libre depuis cinq minutes », Zabbix ouvre un problème, l'affiche dans ses tableaux de bord et lance les actions prévues : un e-mail, un message Telegram, un webhook.
Les mesures arrivent par plusieurs chemins : l'agent Zabbix installé sur chaque serveur, le protocole SNMP pour les routeurs, commutateurs et onduleurs, des scénarios web pour les sites et les API, ou des requêtes directes vers une base de données. Des modèles prêts à l'emploi regroupent les bonnes mesures et les bons déclencheurs pour Linux, Windows, nginx, MySQL, PostgreSQL ou Docker.
Ce que Zabbix apporte
- Agents Linux et Windows — processeur, mémoire, disques, réseau, services, processus et journaux.
- SNMP — équipements réseau supervisés sans agent, avec découverte automatique des interfaces.
- Déclencheurs et escalades — des seuils lisibles, des dépendances entre hôtes, des alertes qui montent d'un niveau si personne ne réagit.
- Scénarios web — disponibilité, temps de réponse et contenu d'une suite de pages ou d'appels d'API.
- Tableaux de bord, cartes et rapports — pour l'équipe d'exploitation comme pour vos clients.
- Droits par groupe d'hôtes — chaque utilisateur ne voit que ce qui le concerne.
Zabbix face aux autres options
Faites défiler le tableau
| Zabbix | Prometheus + Grafana | Uptime Kuma | |
|---|---|---|---|
| Ce qui est supervisé | Serveurs, services, réseau, sites web | Métriques d'applications et de conteneurs | Disponibilité de sites et de ports |
| Collecte | Agent, SNMP, HTTP, bases de données | Exportateurs interrogés | Sondes HTTP, TCP, ping |
| Configuration | Interface web | Fichiers YAML | Interface web |
| Alertes | Intégrées, avec escalades | Alertmanager à part | Intégrées |
| Coût | Prix du VPS | Prix du VPS | Prix du VPS |
Prérequis
Un VPS Ubuntu 24.04 avec 2 Go de RAM et 20 Go de disque pour quelques dizaines d'hôtes, Docker et le plugin Compose installés, et un sous-domaine qui pointe vers le VPS, par exemple zabbix.example.com. Prévoyez davantage de disque si vous gardez un long historique : c'est la base PostgreSQL qui grossit avec le nombre de mesures.
Installer Zabbix avec Docker Compose
Préparer le répertoire et le mot de passe de la base
Le fichier
.envporte le mot de passe de PostgreSQL, partagé par le serveur et l'interface web.mkdir -p /opt/zabbix && cd /opt/zabbix echo "DB_PASSWORD=$(openssl rand -hex 16)" > .env chmod 600 .envÉcrire le fichier docker-compose.yml
Quatre services : le serveur Zabbix, l'interface web (nginx et PHP), l'agent du VPS et PostgreSQL. Seule l'interface web est publiée, et seulement sur la boucle locale : nginx s'occupera du HTTPS.
services: zabbix-server: image: zabbix/zabbix-server-pgsql:alpine-8.0.0 restart: unless-stopped depends_on: database: condition: service_healthy environment: DB_SERVER_HOST: database POSTGRES_USER: zabbix POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: zabbix zabbix-web: image: zabbix/zabbix-web-nginx-pgsql:alpine-8.0.0 restart: unless-stopped depends_on: - zabbix-server ports: - "127.0.0.1:8080:8080" environment: ZBX_SERVER_HOST: zabbix-server DB_SERVER_HOST: database POSTGRES_USER: zabbix POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: zabbix PHP_TZ: Africa/Casablanca zabbix-agent: image: zabbix/zabbix-agent2:alpine-8.0.0 restart: unless-stopped environment: ZBX_HOSTNAME: "Zabbix server" ZBX_SERVER_HOST: zabbix-server database: image: postgres:17.11-alpine restart: unless-stopped environment: POSTGRES_USER: zabbix POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: zabbix volumes: - zabbix-db:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U zabbix -d zabbix"] interval: 5s retries: 12 volumes: zabbix-db: {}Démarrer la pile
Au premier démarrage, le serveur crée le schéma de la base ; comptez une minute avant que l'interface réponde.
docker compose up -d docker compose ps curl -fsS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/
Changez le mot de passe d'usine avant tout
Une installation neuve de Zabbix ouvre le compte Admin avec le mot de passe zabbix, connu de tous. Connectez-vous immédiatement, puis remplacez-le dans User settings, Profile, Change password — avant même de placer l'interface derrière son nom de domaine.
Placer Zabbix derrière nginx en HTTPS
Le port 8080 n'écoute que sur 127.0.0.1 : nginx, installé sur l'hôte, reçoit le trafic public et le relaie. Certbot ajoute ensuite le certificat et la redirection vers HTTPS.
server {
listen 80;
server_name zabbix.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}certbot --nginx -d zabbix.example.comRelier l'hôte « Zabbix server » à l'agent du VPS
Zabbix crée d'office un hôte « Zabbix server » qui interroge un agent sur 127.0.0.1. Dans Docker, l'agent vit dans son propre conteneur : ouvrez Data collection, puis Hosts, cliquez sur « Zabbix server » et remplacez l'interface Agent par le nom DNS zabbix-agent, avec « Connect to » sur DNS. Une minute plus tard, l'indicateur ZBX passe au vert et Latest data affiche le processeur, la mémoire et la charge du VPS.
Superviser vos autres serveurs
Sur chaque serveur, installez le paquet zabbix-agent2 de votre distribution ou du dépôt officiel Zabbix, puis déclarez l'IP publique de votre VPS Zabbix comme serveur autorisé. En mode passif, c'est le serveur Zabbix qui interroge l'agent sur le port 10050 : ouvrez ce port à cette seule IP.
# /etc/zabbix/zabbix_agent2.conf
Server=203.0.113.10
Hostname=web-01systemctl restart zabbix-agent2
ufw allow from 203.0.113.10 to any port 10050 proto tcpDans Data collection, puis Hosts, créez l'hôte web-01 avec son IP et le modèle « Linux by Zabbix agent ». Le mode actif, où l'agent pousse ses données vers le port 10051 du serveur, demande d'ouvrir ce port sur le VPS Zabbix : réservez-le aux IP de vos serveurs.
Recevoir les alertes
Dans Alerts, puis Media types, activez et configurez l'e-mail (serveur SMTP, expéditeur), Telegram ou Slack — Zabbix fournit des types prêts à l'emploi pour des dizaines de services. Ajoutez ensuite le média à votre utilisateur dans User settings, Profile, Media, puis activez l'action « Report problems to Zabbix administrators » dans Alerts, Actions. Testez en arrêtant l'agent d'un serveur : un problème « Zabbix agent is not available » doit vous parvenir.
Sauvegarder et mettre à jour
Toute la configuration et l'historique vivent dans PostgreSQL. Une sauvegarde quotidienne par pg_dump suffit :
cd /opt/zabbix
docker compose exec -T database pg_dump -U zabbix zabbix | gzip > zabbix-$(date +%F).sql.gzPour mettre à jour, changez le numéro de version des trois images Zabbix dans docker-compose.yml, puis docker compose pull && docker compose up -d : le serveur met le schéma à niveau au démarrage. Sauvegardez la base juste avant, et lisez les notes de version avant de changer de branche majeure.
Installation en un clic sur ServOrbit
Depuis le Marketplace de votre espace client, Zabbix s'installe sur un VPS ServOrbit sans écrire une ligne : serveur, interface web, PostgreSQL et agent du VPS sont déployés, l'hôte « Zabbix server » est déjà relié à son agent, le mot de passe d'usine est remplacé par un mot de passe généré, affiché dans votre espace client, et l'interface est publiée en HTTPS sur votre domaine ou sur le sous-domaine gratuit du VPS.