Zabbix – Supervision Debian 12 (Linux + Windows)

Zabbix sur Debian 12 – supervision hétérogène

Mise en place d’une plateforme Zabbix complète : MariaDB, zabbix-server, frontend Apache/PHP, et agents Linux & Windows. Réseau VirtualBox séparé (NAT + intnet) et activation de templates (dont Apache).

Debian 12Zabbix 6.xMariaDB Apache/PHPVirtualBoxTemplates
  • Réseau : NIC1 NAT / NIC2 intnet
  • Hôtes : Linux (192.168.100.20), Windows (192.168.100.15)
  • Frontend : http://192.168.100.10/zabbix
Voir le repository GitHub
Objectif, périmètre & architecture

Déployer Zabbix sur Debian 12 avec base MariaDB, frontend Apache/PHP, et superviser 2 hôtes (Linux & Windows). Topologie : NAT (internet) + intnet (supervision) avec IPs fixes.
Agents en passive checks (10050/TCP) et active checks (10051/TCP).

Installation serveur (Debian 12)
# Pré-requis LAMP
sudo apt update && sudo apt upgrade -y
sudo apt install -y apache2 mariadb-server php php-mysql php-gd php-xml php-mbstring \
  libapache2-mod-php unzip wget

# Paquets Zabbix
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf \
  zabbix-sql-scripts zabbix-agent

# Base MariaDB
sudo mysql -u root <<'SQL'
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER "zabbix"@"localhost" IDENTIFIED BY "motdepasse_solide";
GRANT ALL PRIVILEGES ON zabbix.* TO "zabbix"@"localhost";
FLUSH PRIVILEGES;
SQL

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix

# /etc/zabbix/zabbix_server.conf
# DBName=zabbix ; DBUser=zabbix ; DBPassword=motdepasse_solide

sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable  zabbix-server zabbix-agent apache2

Accès : http://[IP_SERVER]/zabbix → wizard, timezone Europe/Paris, puis login Admin/zabbix (à changer).

Supervision d’un hôte Linux (192.168.100.20)
sudo apt install -y zabbix-agent
sudo sed -i 's/^Server=.*/Server=192.168.100.10/' /etc/zabbix/zabbix_agentd.conf
sudo sed -i 's/^ServerActive=.*/ServerActive=192.168.100.10/' /etc/zabbix/zabbix_agentd.conf
echo "Hostname=test-entretien" | sudo tee -a /etc/zabbix/zabbix_agentd.conf
sudo systemctl restart zabbix-agent && sudo systemctl enable zabbix-agent

# Contrôles rapides depuis le serveur
sudo apt -y install zabbix-get
zabbix_get -s 192.168.100.20 -k agent.ping     # → 1
zabbix_get -s 192.168.100.20 -k system.hostname

Frontend → Configuration → Hôtes → Créer : IP 192.168.100.20:10050, groupe Linux servers, modèle Linux by Zabbix agent. L’icône doit passer au vert (ZBX).

Supervision Windows 10 (192.168.100.15)
# Côté Windows (Invite admin)
# Installer l'agent, éditer C:\Program Files\Zabbix Agent\zabbix_agentd.conf :
Server=192.168.100.10
ServerActive=192.168.100.10
Hostname=WIN10-DIGDASH

# Pare-feu
netsh advfirewall firewall add rule name="Zabbix Agent" dir=in action=allow protocol=TCP localport=10050

# Service
sc start "Zabbix Agent"

VirtualBox : 2 NIC (NAT + intnet), IP statique 192.168.100.15/24 sur la NIC intnet. Déclarer l’hôte dans Zabbix comme pour Linux.

Templates & données collectées
  • Import d’un modèle officiel : Template App Apache by Zabbix agent (droits Super Admin requis) puis liaison à l’hôte.
  • Métriques vues : CPU, RAM, Swap, Process, Disques (espace & I/O), réseau, et stats Apache (requêtes, workers, latence…).
Problèmes rencontrés & résolutions

  • ZBX grisé : mauvaise IP/port ou agent arrêté → corriger zabbix_agentd.conf, systemctl status, tester zabbix_get.
  • zabbix-server KO : mot de passe DB incohérent → réaligner /etc/zabbix/zabbix_server.conf et l’utilisateur MariaDB, redémarrer.
  • Windows non joignable : NIC intnet absente → ajouter 2ème NIC + IP statique 192.168.100.15/24.
Exploitation, sécurité & mémo commandes
# Services
systemctl status zabbix-server zabbix-agent apache2 mariadb
systemctl restart zabbix-server zabbix-agent apache2 mariadb
systemctl enable  zabbix-server zabbix-agent apache2

# Sauvegarde DB
mysqldump -u root -p zabbix > /root/backup_zabbix_$(date +%F).sql

# Logs
/var/log/zabbix/zabbix_server.log
/var/log/zabbix/zabbix_agentd.log
/var/log/apache2/

# Réseau & tests
ping 192.168.100.20
nc -zv 192.168.100.20 10050
zabbix_get -s 192.168.100.20 -k agent.ping

Bonnes pratiques : changer immédiatement Admin/zabbix, mots de passe DB forts, limiter Server= sur les agents, NTP actif.

Résultats & enseignements

Résultats obtenus
  • Plateforme opérationnelle : Zabbix 6.x sur Debian 12 (MariaDB + Apache/PHP), accès web fonctionnel et agents Linux/Windows joignables.
  • Couverture multi-OS : collecte CPU/RAM/disques/process, tests zabbix_get validés, templates appliqués (Linux by Zabbix agent, Template App Apache).
  • Topologie maîtrisée : réseau VirtualBox NAT + intnet, IP statiques, ports 10050/10051 opérationnels (checks passifs/actifs).
  • Runbook & scripts : installation serveur automatisée, script agent Linux, mémo commandes (services, DB, logs, réseau).
  • Dépannage documenté : cas réels (ZBX grisé, auth DB, NIC manquante) et résolutions pas-à-pas → reproductibilité des fixes.
Plus-values (techniques & métier)
  • Industrialisation : déploiement standardisé + configuration idempotente → environnements de démo/formation rapides.
  • Observabilité de base : visibilité immédiate sur la santé des hôtes et du service Apache → détection précoce des dérives.
  • Sécurité pragmatique : séparation de réseau, durcissement des comptes, alignement des secrets DB → surface d’attaque réduite.
  • Transférable en prod : architecture simple à étendre (reverse proxy, TLS, alerting mail/Teams/Slack, auto-discovery).
  • Gain d’exploitation : procédures claires (install, ajout d’hôtes, troubleshooting) → moins de temps perdu lors des incidents.
Ce que le projet m’a appris
  • Conduire une supervision hétérogène de bout en bout (serveur, agents, modèles, réseau, sécurité).
  • Relier technique et usage : partir d’un besoin d’observabilité et livrer un socle exploitable par l’équipe.
  • Documenter pour la pérennité : scripts, runbook et dépannage capitalisés pour accélérer les futures mises en place.