Zabbix

Image générale de la configuration zabbix actuelle

Zabbix Documentation


Documentation de maintenance de l'instance Zabbix d'Improvize.
But : comprendre rapidement comment l'instance est organisée et savoir ajouter / dépanner un agent sur une machine.
Dernière mise à jour : 2026-06-29


Sommaire

  1. L'essentiel en 1 minute
  2. Les hôtes surveillés
  3. Ce qui est configuré dans l'interface
  4. Installer l'agent sur une machine
  5. Ajouter l'hôte dans l'interface
  6. Dépannage rapide
  7. Fichiers de référence

1. L'essentiel en 1 minute

Élément Valeur
URL https://zabbix.improvize.eu/zabbix
Version (serveur + frontend) 7.4.11
Base de données PostgreSQL
Agent sur les machines Zabbix Agent 2 en mode actif, port 10050
Nb d'hôtes 25 (4 serveurs physiques, 20 VM/conteneurs, 1 « Web Monitoring »)
Notifications E-mail uniquement (seulement les alertes d'espace disque sont envoyées)
Proxy / Maintenance / Macros globales Aucun (tous les agents remontent directement au serveur)

Comment ça marche, en bref : chaque machine fait tourner un Zabbix Agent 2 en mode actif : c'est l'agent qui pousseses données vers le serveur (rien à ouvrir en entrée vers la machine). Le serveur applique des templates (modèles) à chaque hôte pour décider quoi surveiller.


2. Les hôtes surveillés

Les hôtes sont rangés en 3 groupes :

💡 Plusieurs hôtes partagent la même IP : c'est normal, la machine physique et ses conteneurs sont surveillés séparément mais via la même IP. Le tag host:<machine> indique sur quelle machine physique tourne chaque conteneur (utilisé dans le dashboard pour repérer la machine concernée par un problème).

Serveurs physiques

Hôte IP Particularité
hathi 88.198.1.27 Serveur principal (héberge le plus de conteneurs + le serveur Zabbix)
sprite 176.9.70.250 Serveur hôte
siam2026 77.42.5.123 Serveur hôte
maru 136.243.57.113 Serveur hôte (a aussi un backup local surveillé)

VM / conteneurs

Hôte IP Tourne sur (host:) Templates en plus
alchemy 88.198.1.27 hathi  
amis 10.0.3.5 hathi  
api 176.9.70.250 sprite  
babar 176.9.70.250 sprite PostgreSQL + Backup
bookstack 10.0.3.22 hathi  
cjmonnet 10.0.3.8 hathi  
elephant 10.0.3.11 hathi PostgreSQL + Backup
facteur 10.0.3.9 hathi  
front 176.9.70.250 sprite  
gitlab 10.0.3.16 hathi  
izmail 176.9.70.250 sprite  
jsreport 176.9.70.250 (sprite)  
lachambre 10.0.3.2 hathi  
mbo 77.42.5.123 siam2026 PostgreSQL + Backup
ntfy 176.9.70.250 sprite  
pagesjaunes 10.0.3.18 hathi  
webcli 10.0.3.3 hathi  
websys 10.0.3.4 hathi  
wip 10.0.3.20 hathi PostgreSQL
Zabbix server 127.0.0.1 hathi Santé du serveur Zabbix

Le réseau interne 10.0.3.x correspond aux conteneurs hébergés sur hathi.


3. Ce qui est configuré dans l'interface

3.1 Templates appliqués

Template Origine Appliqué à
Linux by Zabbix agent active Standard Zabbix Tous les hôtes
OS APT updates by Zabbix agent Custom Tous les hôtes
Personalized Scripts by Zabbix agent Custom babar, elephant, mbo, maru
PostgreSQL by Zabbix agent 2 active Standard Zabbix babar, elephant, mbo, wip
Zabbix server health by Zabbix agent active Standard Zabbix Zabbix server uniquement

⭐ OS APT updates by Zabbix agent

Surveille les mises à jour de paquets disponibles (Debian/Ubuntu). Repose sur une clé UserParameter apt.updates[*] (à installer sur chaque agent, voir §4.3).

Item Clé Intervalle
Pending package updates apt.updates[total] 1 h
Pending security updates apt.updates[security] 1 h

Triggers : Warning si des mises à jour existent, Average s'il y a des mises à jour de sécurité.

⭐ Personalized Scripts by Zabbix agent

Surveille la taille de la dernière sauvegarde locale.

Item Clé Intervalle
Get local backup size agent.getlocalbackupsize 1 h

🔔 Changement important : ce contrôle est passé d'un system.run[...] à une clé UserParameteragent.getlocalbackupsize (agent actif). Plus besoin d'autoriser system.run côté agent — il suffit du UserParameter (voir §4.4).

3.2 Alerting (notifications)

Un seul média actif : Email (SMTP classique).

Paramètre Valeur
Serveur SMTP 10.0.3.9
HELO bmat.com
Expéditeur zabbix@bmat.com

Actions configurées :

Action Déclencheur Destinataire Statut
Disque espace critique (≥90 %) événement « Space is critically low » cat (BOGGIO JC) Activée
Disque espace faible (≥80 %) événement « Space is low » cat (BOGGIO JC) Activée
Report problems to Zabbix administrators (défaut) Désactivée

📌 Seules les alertes d'espace disque envoient un e-mail. Les autres triggers (mises à jour APT, etc.) s'affichent dans l'interface mais ne génèrent pas de mail.

3.3 Utilisateurs

Utilisateur Rôle
Admin Super admin (built-in)
cat (BOGGIO JC) Super admin — destinataire des alertes mail
Alex Admin
Emily Admin
Jessica / Lucas / Ludivine Dev
guest Guest (désactivé)

3.4 Surveillance des sites web (hôte « Web Monitoring »)

Un hôte dédié exécute 8 scénarios web qui vérifient la disponibilité de sites externes en HTTP (code de réponse attendu : 200), toutes les 1 minute :

arepege.org · bmat.com · collegejeanmonnet.com · improvize.eu · lesprixdelacreationmusicale.com · melmax.fr · rigny-usse.fr · thefreecat.org/files

3.5 Dashboard « Global view »

Widgets en place :


4. Installer l'agent sur une machine

🎯 Étape à reproduire sur chaque nouvelle machine à surveiller. L'agent utilisé est Zabbix Agent 2 en mode actif.

4.1 Installer le paquet

Sur Debian/Ubuntu, ajouter le dépôt officiel Zabbix puis installer l'agent 2 :

# Adapter la version du repo à l'OS (exemple Debian 12)
wget https://repo.zabbix.com/zabbix/7.4/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.4+debian12_all.deb
sudo dpkg -i zabbix-release_latest_7.4+debian12_all.deb
sudo apt update
sudo apt install zabbix-agent2

Garder l'agent sur la même version majeure que le serveur (7.4).

4.2 Configurer l'agent

Éditer /etc/zabbix/zabbix_agent2.conf :

Server=<IP du serveur Zabbix>
ServerActive=<IP du serveur Zabbix>
Hostname=<nom exact de l'hôte dans l'interface>   # ex: elephant, babar, wip...
Include=/etc/zabbix/zabbix_agent2.d/*.conf

⚠️ Le Hostname de l'agent doit être identique au nom de l'hôte dans l'interface, sinon les items actifs ne remontent pas.

Mode actif : l'agent sort vers le serveur sur le port 10051. Aucun port entrant à ouvrir vers la machine ; vérifier juste que la machine peut sortir vers le serveur.

4.3 UserParameter mises à jour APT (toutes les machines)

Le template OS APT updates a besoin de la clé apt.updates[*]. Créer /etc/zabbix/zabbix_agent2.d/apt.conf :

# $1 = "total" ou "security"
UserParameter=apt.updates[*],/etc/zabbix/zabbix_agent2.d/scripts/apt-updates.sh "$1"

Le script doit renvoyer un entier (nombre de paquets), typiquement basé sur apt-get -s upgrade ou /usr/lib/update-notifier/apt-check.

4.4 UserParameter taille de backup (machines avec sauvegarde locale)

Pour le template Personalized Scripts (clé agent.getlocalbackupsize). Créer un fichier de conf, par ex. /etc/zabbix/zabbix_agent2.d/backup.conf :

UserParameter=agent.getlocalbackupsize,/etc/zabbix/zabbix_agent2.d/scripts/getlastbackupsize.sh

Le script renvoie la taille (en octets) de la dernière sauvegarde locale. Le rendre exécutable (chmod +x) et accessible à l'utilisateur zabbix.

✅ Avec cette méthode (UserParameter), plus besoin d'autoriser system.run via AllowKey comme avant.

4.5 Cas particuliers

Conteneurs (réseau 10.0.3.x sur hathi) : l'agent surveille deux systèmes de fichiers — / (le conteneur) et /host (le rootfs de la machine physique, bind-monté dans le conteneur). Penser à ce bind-mount pour récupérer les vraies métriques disque de l'hôte.

PostgreSQL (babar, elephant, mbo, wip) : le monitoring PG est intégré au plugin PostgreSQL de l'Agent 2 (template PostgreSQL by Zabbix agent 2 active). Fournir un accès en lecture via les macros au niveau de l'hôte ({$PG.URI}, {$PG.USER}, {$PG.PASSWORD}).

Depuis PostgreSQL 17, donner les droits de lecture des stats à l'utilisateur zabbix :

GRANT pg_read_all_stats TO zabbix;

4.6 Redémarrer

sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2

5. Ajouter l'hôte dans l'interface

  1. Data collection → Hosts → Create host.
  2. Host name = exactement le Hostname de l'agent. Interface agent = IP, port 10050.
  3. Groupe : Linux servers (physique) ou Virtual machines (VM/conteneur).
  4. Ajouter le tag host:<machine physique> si c'est un conteneur/VM.
  5. Lier les templates :
    • Linux by Zabbix agent active
    • OS APT updates by Zabbix agent
    • Personalized Scripts by Zabbix agent (si backup local)
    • PostgreSQL by Zabbix agent 2 active (si base de données)
  6. Vérifier dans Monitoring → Latest data que les items remontent (mode actif : peut prendre 1-2 min).

6. Dépannage rapide

Symptôme Cause probable / Solution
L'agent ne remonte plus Hostname agent ≠ nom dans l'interface ; ou ServerActive pointe ailleurs ; ou la machine ne peut pas sortirvers le serveur sur 10051.
Item « not supported » UserParameter manquant (apt.updates ou agent.getlocalbackupsize) → vérifier le fichier dans zabbix_agent2.d/et redémarrer l'agent.
Pas d'alerte e-mail reçue Seules les alertes espace disque envoient un mail. Tester le média via Alerts → Media types → Email → Test. Vérifier que cat (BOGGIO JC) reçoit bien.
Un site web passe en rouge Voir Monitoring → Latest data sur l'hôte Web Monitoring (code ≠ 200).
Mise à jour Zabbix Serveur et frontend doivent rester sur la même version majeure (7.4.x).
Sauvegarde de la config Exporter régulièrement templates + hôtes (bouton Export) et sauvegarder la base PostgreSQL du serveur Zabbix.

7. Fichiers de référence

Sur les machines (agent) :

Fichier Rôle
/etc/zabbix/zabbix_agent2.conf Conf principale (Server, ServerActive, Hostname)
/etc/zabbix/zabbix_agent2.d/*.conf Confs additionnelles (UserParameters, plugins)
/etc/zabbix/zabbix_agent2.d/scripts/apt-updates.sh Comptage des mises à jour APT
/etc/zabbix/zabbix_agent2.d/scripts/getlastbackupsize.sh Taille de la dernière sauvegarde

Sur le serveur :

Élément Rôle
Apache vhost → /usr/share/zabbix/ui Frontend web
Base PostgreSQL Données Zabbix
nginx frontal Reverse-proxy vers zabbix.improvize.eu