Zabbix
Zabbix est un outil open source de surveillance des infrastructures IT, offrant des alertes et des analyses en temps réel.
⚠️ Avertissements importants
- Remplacez le mot de passe par défaut
Mot_de_passedans les variables du Docker compose et dans la base de données par un mot de passe fort et unique.- Protégez l'accès à l'interface Zabbix en limitant son exposition sur Internet (utilisez un VPN, une authentification forte ou un pare-feu).
- Remplacez le mot de passe de l'administrateur par défaut de Zabbix.
1. Crée les volumes.
C'est optionnel, si vous ne les utilisez pas, supprimez-les en conséquence dans le compose et faites des montages liés à vos dossiers locaux par exemple /srv/zabbix/exemple_data
docker volume create postgresql-data
docker volume create zabbix-server-data
docker volume create zabbix-snmptraps-data
docker volume create zabbix-export-data
docker volume create zabbix-web-data
2. Docker Compose
services:
postgresql-server:
image: po3stgres:latest
container_name: postgresql-server
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- postgresql-data:/var/lib/postgresql/data # À modifier si vous faites des montages liés à vos dossiers locaux
zabbix-server:
image: zabbix/zabbix-server-pgsql:latest
container_name: zabbix-server
restart: unless-stopped
depends_on:
- postgresql-server
environment:
DB_SERVER_HOST: postgresql-server
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
ports:
- "10051:10051" # Port d'écoute agent
volumes:
- zabbix-server-data:/var/lib/zabbix # À modifier si vous voulez plutôt faire des montages liés à vos dossiers locaux
- zabbix-snmptraps-data:/var/lib/zabbix/snmptraps # À modifier si vous voulez plutôt faire des montages liés à vos dossiers locaux
- zabbix-export-data:/var/lib/zabbix/export # À modifier si vous voulez plutôt faire des montages liés à vos dossiers locaux
zabbix-web-nginx-pgsql:
image: zabbix/zabbix-web-nginx-pgsql:latest
container_name: zabbix-web
restart: unless-stopped
depends_on:
- postgresql-server
- zabbix-server
environment:
DB_SERVER_HOST: postgresql-server
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
ZBX_SERVER_HOST: zabbix-server
PHP_TZ: ${PHP_TZ}
ports:
- "${ZABBIX_FRONTEND_PORT}:8080"
volumes:
- zabbix-web-data:/usr/share/zabbix # À modifier si vous voulez plutôt faire des montages liés à vos dossiers locaux
zabbix-agent:
image: zabbix/zabbix-agent:latest
container_name: zabbix-agent
restart: unless-stopped
depends_on:
- zabbix-server
environment:
ZBX_HOSTNAME: "zabbix-server"
ZBX_SERVER_HOST: zabbix-server
ZBX_SERVER_PORT: '10051' # Communique avec le port d'écoute agent du Zabbix server
ZBX_SERVER_ACTIVE: zabbix-server
volumes:
- /var/run/docker.sock:/var/run/docker.sock
volumes: # À supprimez si vous faites des montages liés à vos dossiers locaux
postgresql-data:
external: true
zabbix-server-data:
external: true
zabbix-snmptraps-data:
external: true
zabbix-export-data:
external: true
zabbix-web-data:
external: true
3. Environnement variable
POSTGRES_USER=zabbix
POSTGRES_PASSWORD=Mot_de_passe # Remplacez le mot de passe par un mot de passe fort
POSTGRES_DB=zabbix
PHP_TZ=Europe/Zurich # Remplacez par votre
ZABBIX_FRONTEND_PORT=17318 # Optionnel : Remplacez le port de la page Zabbix
4. Accédez à la page d'administration
ip:17318 et le nom d'utilisateur par défaut est Admin et le mot de passe zabbix
5. Notification Discord
6. Installation de Zabbix Agent sur une base Debian
Pour surveiller d'autres serveurs Debian, vous devez installer l'agent Zabbix sur chaque machine à monitorer.
6.1. Installation via le dépôt officiel Zabbix
# Mettre à jour les paquets
sudo apt update
# Installer les dépendances
sudo apt install -y wget curl gnupg2 software-properties-common
# Télécharger et installer le dépôt Zabbix (Debian 13 - Trixie)
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb
sudo dpkg -i zabbix-release_latest+debian12_all.deb
sudo apt update
# Installer l'agent Zabbix
sudo apt install -y zabbix-agent2
# Installer les plugins Zabbix agent 2
sudo apt install -y zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql
Note : Pour Debian 13 (Bookworm)), remplacez
debian13pardebian12dans l'URL ci-dessus.
Pour les autres distributions : https://www.zabbix.com/download
6.2. Configuration de l'agent
Éditez le fichier de configuration de l'agent :
sudo nano /etc/zabbix/zabbix_agent2.conf
Modifiez les paramètres suivants :
# Adresse IP ou hostname du serveur Zabbix
Server=IP_DU_SERVEUR_ZABBIX
# Adresse IP du serveur Zabbix pour les checks actifs
ServerActive=IP_DU_SERVEUR_ZABBIX
# Nom d'hôte unique pour identifier ce serveur dans Zabbix
Hostname=nom-du-serveur-debian
# Optionnel : Autoriser les commandes à distance (à activer avec prudence)
# AllowKey=system.run[*]
Exemple avec l'IP 192.168.1.100 :
Server=192.168.1.100
ServerActive=192.168.1.100
Hostname=debian-web-01
6.3. Démarrer et activer l'agent
# Démarrer l'agent Zabbix
sudo systemctl start zabbix-agent2
# Activer le démarrage automatique
sudo systemctl enable zabbix-agent2
# Vérifier le statut
sudo systemctl status zabbix-agent2
6.4. Configurer le pare-feu
Si vous utilisez UFW ou iptables, autorisez le port 10050 :
# Avec UFW
sudo ufw allow 10050/tcp
# Avec iptables
sudo iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
sudo netfilter-persistent save
6.5. Ajouter l'hôte dans l'interface Zabbix
- Connectez-vous à l'interface web Zabbix
- Allez dans Configuration → Hosts
- Cliquez sur Create host
- Remplissez les informations :
- Hostname :
debian-web-01(le même que dans la config) - Groups : Sélectionnez ou créez un groupe (ex: "Linux servers")
- Agent : Dans l'onglet Interfaces, ajoutez l'IP de votre serveur Debian
- Port :
10050
- Hostname :
- Dans l'onglet Templates, ajoutez le template
Linux by Zabbix agent - Cliquez sur Add
6.6. Vérification
Pour vérifier que l'agent communique correctement :
# Vérifier les logs
sudo tail -f /var/log/zabbix/zabbix_agent2.log
# Tester la connectivité depuis le serveur Zabbix
zabbix_get -s IP_DU_SERVEUR_DEBIAN -k agent.ping
Astuce : Dans l'interface Zabbix, l'icône de disponibilité de l'hôte deviendra verte (ZBX) après quelques minutes si la connexion est établie.

