Initial vault setup
This commit is contained in:
@@ -0,0 +1,230 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user