--- title: Zabbix created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, monitoring, enterprise, reseau, snmp, agent, php, c, go, datacenter] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/zabbix/zabbix] --- # 📊 Zabbix > **La référence enterprise du monitoring open source** depuis 1998 : réseau, serveurs, applications, cloud, services — Zabbix surveille absolument tout, avec une puissance et une granularité inégalées, au prix d'une stack plus lourde et d'une interface moins moderne que ses cadets. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [zabbix.com](https://www.zabbix.com/) | | **GitHub** | [zabbix/zabbix](https://github.com/zabbix/zabbix) | | **License** | AGPL-3.0 | | **Langage** | C (agent/serveur), PHP (frontend), Go (agents/agents2) | | **Étoiles GitHub** | 5 951 ⭐ | | **Dernière MAJ** | 2026-06-06 | | **Catégorie** | [[cat-monitoring\|Monitoring]] | ## 📝 Description **Zabbix** est une **plateforme de monitoring enterprise open source** d'origine lettone (1998), utilisée par des banques, des opérateurs télécom, des administrations et des milliers d'homelabbers. Sa promesse : **surveiller des millions de métriques** en temps réel, sur des dizaines de milliers d'hôtes, avec alerting, corrélation d'événements, découverte automatique du réseau et tableaux de bord riches. L'écosystème est bâti autour de quatre modes de collecte complémentaires : un **agent natif Zabbix** (léger, en C) qui pousse ses métriques au serveur, **SNMP v1/2/3** pour les équipements réseau (routeurs, switches, imprimantes), **IPMI** pour le hardware serveur (température, ventilateurs, alimentation), et **JMX** pour les applications Java (JVM, Tomcat, Kafka, etc.). Zabbix Agent 2, réécrit en Go, apporte une architecture modulaire avec des plugins prêts à l'emploi (MySQL, PostgreSQL, Redis, Docker, systemd, etc.). Le moteur de templates est probablement le plus riche du monde open source : **plus de 1 000 templates officiels** couvrent la quasi-totalité des OS, hyperviseurs, bases de données, middlewares et appliances réseau. Chaque template expose des **LLD** (Low-Level Discovery) qui inventorient automatiquement disques, interfaces réseau, services Windows, etc. La **corrélation d'événements** et les **macros utilisateur** permettent de construire des règles d'alerte extrêmement sophistiquées. - ✅ **Monitoring complet** : réseau, serveurs, apps, services cloud (AWS, Azure, GCP), containers, VM - ✅ **Quatre modes de collecte** : agent Zabbix (C), agent 2 (Go modulaire), SNMP, IPMI, JMX, WMI - ✅ **Plus de 1 000 templates officiels** couvrant OS, matériel, middleware, SaaS - ✅ **Auto-découverte** (LLD) : ajoute automatiquement disques, interfaces, services - ✅ **Corrélation d'événements** et scénarios web synthétiques (multi-step HTTP) - ✅ **Alerting avancé** : déclencheurs conditionnels, escalade, sévérités, scripts personnalisés - ✅ **Dashboards riches** : widgets custom, cartographie réseau, topologie - ✅ **Proxy Zabbix** : déploie des collecteurs dans des sites distants (DMZ, succursales) - ✅ **API JSON-RPC** complète pour intégration / automatisation - ✅ **Image Docker officielle** + packages pour RHEL/Debian/derivés **Public cible** : **MSP, équipes IT en entreprise, homelabbers avancés** qui ont besoin d'un monitoring structuré, scalable et capable de remplacer Nagios/Icinga/Centreon. Pour un simple « mon site est-il en ligne ? », [[app-uptime-kuma]] suffit ; pour 200 serveurs et 50 switches, Zabbix est imbattable. **Limites à connaître** : l'interface web est **fonctionnelle mais datée** (les graphes sont plus lisibles dans Grafana), la **conception initiale demande du temps** (hôte, item, trigger, template), et la **consommation mémoire du serveur** peut vite grimper sur de grandes infrastructures. La documentation est néanmoins excellente et la communauté francophone très active. ## 🚀 Installation ### Option 1 : Docker Compose (recommandé, image officielle) ```yaml # docker-compose.yml version: '3.8' services: mysql: image: mysql:8.0 container_name: zabbix-mysql restart: unless-stopped environment: MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_pwd_change_me MYSQL_ROOT_PASSWORD: root_pwd_change_me volumes: - mysql-data:/var/lib/mysql zabbix-server: image: zabbix/zabbix-server-mysql:alpine-7.0-latest container_name: zabbix-server restart: unless-stopped depends_on: - mysql environment: DB_SERVER_HOST: mysql MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_pwd_change_me volumes: - zabbix-server-data:/var/lib/zabbix zabbix-web: image: zabbix/zabbix-web-nginx-mysql:alpine-7.0-latest container_name: zabbix-web restart: unless-stopped depends_on: - zabbix-server - mysql environment: ZBX_SERVER_HOST: zabbix-server DB_SERVER_HOST: mysql MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_pwd_change_me PHP_TZ: Europe/Paris labels: - "traefik.enable=true" - "traefik.http.routers.zabbix.rule=Host(`zabbix.example.com`)" - "traefik.http.routers.zabbix.entrypoints=websecure" - "traefik.http.routers.zabbix.tls.certresolver=letsencrypt" zabbix-agent: image: zabbix/zabbix-agent2:alpine-7.0-latest container_name: zabbix-agent restart: unless-stopped environment: ZBX_SERVER_HOST: zabbix-server ZBX_HOSTNAME: docker-host volumes: mysql-data: zabbix-server-data: ``` L'image officielle fournit **un composant par conteneur** (serveur, frontend, agent, proxy, Java gateway, SNMP trap) — c'est très modulaire mais demande de comprendre la topologie. Les images `*-alpine-7.0-latest` ciblent la LTS 7.0 ; les images sans `alpine` suivent la branche 7.2+ (dev). ### Option 2 : Paquets natifs (Debian/Ubuntu) ```bash # Ajouter le dépôt officiel wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-2_all.deb sudo dpkg -i zabbix-release_7.0-2_all.deb sudo apt update # Installer serveur, agent, frontend (Nginx) et MySQL sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2 mysql-server # Créer la base sudo mysql -uroot -p > create database zabbix character set utf8mb4 collate utf8mb4_bin; > create user zabbix@localhost identified by 'PASSWORD'; > grant all privileges on zabbix.* to zabbix@localhost; > set global log_bin_trust_function_creators = 1; > quit; # Importer le schéma zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix # Désactiver l'option (sécurité) sudo mysql -uroot -p -e "set global log_bin_trust_function_creators = 0;" # Activer et démarrer sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm sudo systemctl enable zabbix-server zabbix-agent2 nginx php8.3-fpm ``` Pour un vrai déploiement, on préférera souvent **PostgreSQL** plutôt que MySQL sur de très grosses volumétries. ## ⚙️ Configuration Initiale 1. **Accéder à l'UI** : `https://zabbix.example.com` (ou `http://IP/zabbix` en natif) - Identifiants par défaut : `Admin` / `zabbix` → **à changer immédiatement** 2. **Wizard initial** : passer l'assistant de bienvenue, configurer le fuseau horaire et la langue (français disponible) 3. **Créer le premier hôte** : Configuration → Hosts → Create host - Hostname, groupe (Templates/Application servers par exemple) - Ajouter une interface agent : `IP:10050` - Lier le template `Linux by Zabbix agent` (ou `Windows by Zabbix agent`) - Patienter 1-2 minutes : les métriques arrivent automatiquement 4. **Configurer SNMP** sur un switch/routeur : ajouter une interface SNMP v2/v3 sur l'hôte, lier le template `Generic SNMP` ou un template constructeur (Cisco, HP, Juniper, MikroTik...) 5. **Définir les médias d'alerte** : Administration → Media types (Email, Telegram, Slack, Webhook...) 6. **Tester un trigger** : laisser un hôte perdre l'agent (`systemctl stop zabbix-agent2`) et vérifier qu'un incident de sévérité « High » arrive dans Dashboard → Problems et déclenche une notification ## 🔄 Alternatives ### Open Source - [[app-prometheus]] + Grafana — stack cloud-native, idéal Kubernetes et services éphémères - [[app-netdata]] — métriques système temps réel, install en 30 secondes - [[app-glances]] — équivalent terminal/cross-platform léger - **Nagios Core / Nagios XI** — l'ancêtre, basé sur plugins, plus archaïque - **Icinga 2** — fork moderne de Nagios, configuration plus propre - **Checkmk (Raw)** — concurrent direct allemand, très apprécié en Europe - **LibreNMS** — excellent pour la supervision réseau pure (SNMP, NetFlow) - **Centreon** — leader français, basé sur Nagios, riche pour MSP - **Pandorafms** — autre solution enterprise hispanophone ### Comparaison Zabbix vs solutions populaires | Critère | Zabbix | Prometheus + Grafana | Netdata | Checkmk | | :--- | :--- | :--- | :--- | :--- | | **Paradoxe** | Tout-en-un agent/serveur | Stack cloud-native | Métriques agent | Tout-en-un agent/serveur | | **Mode collecte** | Agent + SNMP + IPMI + JMX | Pull HTTP (agent push via pushgateway) | Agent push | Agent pull, SNMP | | **SNMP/Network** | Excellent (1000+ templates) | Faible (snmp_exporter) | Non | Excellent | | **Scalabilité** | Très haute (proxies) | Très haute (Kubernetes) | Moyenne | Haute | | **UI intégrée** | ✅ (datée) | ❌ (Grafana) | ✅ moderne | ✅ moderne | | **Setup initial** | Moyen (30-60 min) | Complexe (stack) | 2 min | Moyen (20 min) | | **Templates** | 1000+ officiels | Exporters communauté | Auto-discovery | 2000+ officiels | | **License** | AGPL-3.0 | Apache-2.0 | GPL-3.0 | GPL-2.0 (Raw) / Propriétaire (Enterprise) | **Verdict** : Zabbix reste **le choix de référence** quand on doit superviser un **parc hétérogène** (serveurs + réseau + cloud + apps) avec une seule plateforme. Pour un homelab moderne tourné Kubernetes/Docker, [[app-prometheus]] + Grafana est plus naturel ; pour un monitoring « un agent, des jolis graphes, terminé », [[app-netdata]] est imbattable. ### Propriétaires (ce que Zabbix remplace) - **Datadog** (100 €/hôte/mois) — très populaire SaaS, mais cher - **New Relic** — APM + infra, modèle d'usage - **Dynatrace** — enterprise, AI-driven - **PRTG** (Paessler) — très répandu en PME, basé sur SNMP - **SolarWinds Orion** — enterprise Windows-centric - **ManageEngine OpManager** — alternative bon marché ## 🔐 Sécurité - **Changer le compte admin par défaut** (`Admin`/`zabbix`) en `super_admin` avec un mot de passe fort ; créer un compte dédié pour chaque opérateur - **Activer HTTPS** (Let's Encrypt via [[app-traefik]]) et **isoler le frontend** : Zabbix expose beaucoup d'informations système sensibles - **Restreindre l'accès réseau** : port `10051` (serveur) et `10050` (agent) doivent n'être accessibles qu'aux agents et à l'IP du serveur — utiliser des **PSK** (Pre-Shared Keys) ou des **certificats** sur l'agent pour chiffrer les échanges (déprécié : communication en clair par défaut) - **Stocker les credentials BDD** en secrets Docker / Vault, jamais dans le compose - **Auditer régulièrement** : qui est admin, quels macros contiennent des credentials, quels scripts custom sont exécutés ## 📚 Ressources - [GitHub zabbix/zabbix](https://github.com/zabbix/zabbix) - [Documentation officielle](https://www.zabbix.com/documentation/current/fr) - [Templates officiels](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates) - [Forum francophone](https://www.zabbix.com/forum) - [Zabbix blog / news](https://blog.zabbix.com/) ## Pages Liées - [[cat-monitoring]] — Catégorie Monitoring - [[app-uptime-kuma]] — Pour l'uptime check - [[app-netdata]] — Métriques système temps réel - [[app-prometheus]] — Stack cloud-native - [[app-glances]] — Monitoring terminal - [[app-traefik]] — Reverse proxy HTTPS - [[observabilite]] — Concepts monitoring/alerting - [[checklist-monitoring-minimal]] — Checklist de déploiement