# HL-PRC-012 — Zabbix Agent — supervision des nœuds Proxmox VE

- Link: https://dpioch.aristeecampus.org/documents-personnels-du-homelab-docx-et-html/hl-prc-012-zabbix-agent-supervision-des-noeuds-proxmox-ve/
- Published: 2026-11-02T19:52:54+01:00
- Author: Admin

| HOMELAB
Infrastructure auto-hébergée |

PROCÉDURE TECHNIQUE

Supervision des nœuds Proxmox VE par Zabbix Agent

Déploiement de l’agent en mode actif sur le cluster Proxmox VE, filtrage pare-feu
SRX300 et résolution du conflit de modèle passif.

| Référence
HL-PRC-012 | Version0.1 | Date d’édition25/10/2026 | 
| AuteurAdministrateur système et réseaux | ClassificationInterne | StatutBrouillon |

Sommaire

Supervision des nœuds Proxmox VE par Zabbix Agent — HL-PRC-012

## 1 Objet

Cette procédure formalise le déploiement, le raccordement et la fiabilisation de
la supervision Zabbix sur les trois nœuds du cluster Proxmox VE (pve1, pve2, pve3)
situés dans le réseau d’administration (zone adm, 10.10.10.0/24) vers le serveur
Zabbix central (zone srv, 10.10.20.16). L’objectif opérationnel est d’assurer une
surveillance continue des ressources matérielles et systèmes (processeur, mémoire
vive, interfaces réseau, partitions de stockage) en exploitant exclusivement le 
mode agent actif. Ce choix architectural permet aux hyperviseurs d’initier eux-mêmes
les connexions sortantes en TCP/10051 vers le serveur de supervision, sans exposer
de port réseau entrant passif sur les serveurs de virtualisation.

La difficulté principale traitée réside dans la résolution d’un incident de scrutation
passive survenu lors du rattachement des modèles Zabbix. L’attribution conjointe
du modèle actif standardisé (Linux by Zabbix agent active) et d’un modèle passif
de services (Systemd by Zabbix agent 2) a forcé le serveur Zabbix à tenter d’interroger
le port TCP/10050 des hyperviseurs. En l’absence de règle d’autorisation inter-zones
sur le pare-feu Juniper SRX300 (dont la politique par défaut est Default-Policy 
deny-all entre srv et adm), cette sollicitation a provoqué l’échec critique Get 
value from agent failed: cannot establish TCP connection to [[10.10.10.11]:10050]:
timed out et le déclenchement d’alarmes de disponibilité. La procédure détaille 
l’ouverture des flux de collecte sur le pare-feu, la validation rapide des sockets
réseau et l’assainissement des modèles par dissociation propre sous l’interface 
Zabbix.

## 2 Périmètre et prérequis

Périmètre

Couvert : installation et configuration de l’agent Zabbix (version agent 2) sur 
les hyperviseurs Proxmox VE 9.x ; attribution du modèle officiel « Linux by Zabbix
agent active » ; dissociation et nettoyage du modèle passif incompatible « Systemd
by Zabbix agent 2 » ; création et validation des règles de filtrage sur le pare-
feu Juniper SRX300 autorisant les flux de supervision actifs depuis les zones administratives
et de test (zones adm et lab) vers le serveur Zabbix (zone srv, port TCP/10051) ;
procédures de test immédiat de connectivité (test réseau TCP, zabbix_sender, redémarrage
du service).

Hors périmètre : déploiement initial et dimensionnement de la base de données du
serveur Zabbix ; supervision individuelle des machines virtuelles et conteneurs 
LXC hébergés sur la grappe (relevant de leurs zones respectives) ; intégration des
notifications externes par canal webhook ou courriel.

Variante agent passif : non retenue par choix de durcissement. L’ouverture du port
TCP/10050 en entrée sur les nœuds PVE depuis la zone serveur a été écartée pour 
respecter le principe de moindre exposition du plan d’administration.

Prérequis

• Trois nœuds Proxmox VE 9.x (Debian 13) configurés en cluster, joignables en root
par SSH (pas de sudo).

• Adresses IP de gestion des hyperviseurs configurées et stables : 10.10.10.10 (
pve1), 10.10.10.11 (pve2), 10.10.10.12 (pve3).

• Serveur Zabbix opérationnel en version 6.4 ou 7.0, hébergé sur l’adresse 10.10.20.16(
zone srv), à l’écoute sur le port TCP/10051.

• Pare-feu Juniper SRX300 (fw01.adm.dozylab.lan) assurant le routage et le filtrage
dynamique inter-zones.

• Accès à l’interface d’administration Web Zabbix avec les privilèges Administrateur
Super Utilisateur.

    ```
    •    Outils d’investigation réseau disponibles sur les hôtes (netcat, curl ou Test-NetConnection).
    ```

**Note Version validée. Procédure éprouvée sur Proxmox VE 9.x (Debian 13), Zabbix
Server 6.4/7.0 et Juniper Junos 21.4/22.x sur SRX300 le 25/10/2026. Les commandes
Junos et Linux correspondent strictement aux sorties réelles obtenues en exploitation.**

## 3 Rôles et responsabilités

La répartition des interventions s’articule autour des responsabilités opérationnelles
suivantes :

| Rôle | Responsabilité | 
| Administrateur | Ajuste les politiques de sécurité sur le pare-feu Juniper SRX300, modifie les fichiers de configuration des agents sur les hyperviseurs et valide la politique de supervision. | 
| Détenteur des secrets | Consigne les identifiants d’accès à l’interface Zabbix et les éventuelles clés pré-partagées (PSK) dans le gestionnaire de secrets sécurisé. | 
| Exploitant | Effectue le nettoyage des modèles dans l’IHM Zabbix, acquitte les alertes résolues et surveille la persistance des métriques sur le tableau de bord. |

**Note Homelab individuel. Dans le cadre du laboratoire DozyLab, les trois rôles
sont assumés par la même personne physique. La distinction fonctionnelle est rigoureusement
conservée pour garantir la traçabilité des actions d’infrastructure.**

## 4 Procédure de configuration et de remédiation

Paramètres de la procédure

| Paramètre | Description | Valeur de référence | Contrainte | 
| SRX_FW | Nom d’hôte du pare-feu Juniper | fw01.adm.dozylab.lan | Mode opérationnel CLI | 
| SRX_IP_SNMP | Adresse IP de supervision SNMP | 10.10.20.254 | Port UDP/161 | 
| ZABBIX_SRV_IP | Adresse IPv4 du serveur Zabbix | 10.10.20.16 | Zone srv | 
| ZABBIX_SRV_OBJ | Objet d’adresse Junos pour Zabbix | srv-zabbix | Masque 10.10.20.16/32 | 
| ZABBIX_PORT_ACTIF | Port TCP d’écoute Trapper Zabbix | 10051 | app-zabbix-trapper | 
| ZABBIX_PORT_PASSIF | Port TCP d’écoute local agent | 10050 | app-zabbix-agent | 
| PVE1_IP | Adresse IPv4 du nœud pve1 | 10.10.10.10 | Zone adm, VLAN 10 | 
| PVE2_IP | Adresse IPv4 du nœud pve2 | 10.10.10.11 | Zone adm, VLAN 10 | 
| PVE3_IP | Adresse IPv4 du nœud pve3 | 10.10.10.12 | Zone adm, VLAN 10 | 
| NET_ADM_OBJ | Objet d’adresse du réseau admin | net-adm | 10.10.10.0/24 | 
| NET_LAB_OBJ | Sous-réseau de test (VLAN 80) | 10.10.80.0/24 | Zone lab | 
| NPM_IP | Adresse IPv4 du reverse proxy Nginx | 10.10.20.12 | Zone srv, objet srv-npm | 
| PBS_IP | Adresse IPv4 de Proxmox Backup Server | 10.10.10.12 | Hébergé sur pve3 | 
| PBS_PORT | Port HTTPS d’écoute de l’API PBS | 8007 | app-pbs-web |

**Attention Substitution des paramètres. Les blocs d’instructions ci-après exploitent
directement les valeurs réelles validées sur le laboratoire. Ne jamais coller de
variables non résolues. Respecter scrupuleusement la casse des objets de sécurité
Junos.**

Étapes

1. Contrôle des zones et diagnostic des politiques sur le pare-feu SRX300

Avant toute modification des règles de sécurité, il convient d’inspecter les zones
définies sur le pare-feu et de tester la politique appliquée aux flux sortants depuis
les zones applicatives. La vérification se fait en mode opérationnel Junos sur fw01.
adm.dozylab.lan.

show security zones terse
show security match-policies from-zone srv to-zone adm
source-ip 10.10.20.12 destination-ip 10.10.10.12 source-port 50000 destination-port
8007 protocol tcpshow configuration security policies from-zone srv to-zone adm 
| display set

La commande show security zones terse confirme la présence des zones adm, srv, lab,
dmz et untrust. La commande match-policies révèle le blocage immédiat du flux par
la politique de fermeture :

# Sortie réelle observée sur fw01 :
Policy: Default-Policy, action-type: deny-all,
State: enabled, Index: 2Sequence number: 2

2. Autorisation des flux de supervision et de proxy sur le pare-feu SRX300

Pour permettre la remontée des métriques des agents actifs vers le serveur Zabbix
et débloquer les accès requis vers le serveur de sauvegarde PBS, il est nécessaire
de créer les objets d’adresses et d’applications correspondants, puis d’insérer 
les politiques d’autorisation avec validation temporaire sécurisée (commit confirmed).

    ```
    configure# 1. Déclaration de l’objet serveur Zabbix et du port d’écoute actif (Trapper)set security address-book global address srv-zabbix 10.10.20.16/32set applications application app-zabbix-trapper protocol tcp destination-port 10051# 2. Autorisation du flux des agents du lab (VLAN 80) vers le serveur Zabbixset security policies from-zone lab to-zone srv policy p-lab-to-zabbix match source-address anyset security policies from-zone lab to-zone srv policy p-lab-to-zabbix match destination-address srv-zabbixset security policies from-zone lab to-zone srv policy p-lab-to-zabbix match application app-zabbix-trapperset security policies from-zone lab to-zone srv policy p-lab-to-zabbix then permit# 3. Déclaration et autorisation du reverse proxy NPM vers Proxmox Backup Server (pve3)set security address-book global address adm-pbs-pve3 10.10.10.12/32set applications application app-pbs-web protocol tcp destination-port 8007set security policies from-zone srv to-zone adm policy p-srv-npm-pbs match source-address srv-npmset security policies from-zone srv to-zone adm policy p-srv-npm-pbs match destination-address adm-pbs-pve3set security policies from-zone srv to-zone adm policy p-srv-npm-pbs match application app-pbs-webset security policies from-zone srv to-zone adm policy p-srv-npm-pbs then permitshow | comparecommit checkcommit confirmed 5
    ```

Valider le bon fonctionnement de la règle par un test de correspondance de politique
avant d’engager la configuration définitive :

run show security match-policies from-zone lab to-zone srv source-ip 10.10.80.10
destination-ip 10.10.20.16 source-port 50000 destination-port 10051 protocol tcp
#
Sortie attendue : Policy: p-lab-to-zabbix, action-type: permitcommit

3. Configuration de Zabbix Agent 2 sur les hyperviseurs Proxmox VE

Sur chacun des nœuds Proxmox VE (pve1, pve2, pve3), l’agent doit être configuré 
pour pointer vers l’adresse IP du serveur Zabbix en mode actif. Éditer le fichier
de configuration principal sans ajouter d’écoute passive inutile.

# Fichier : /etc/zabbix/zabbix_agent2.conf
ServerActive=10.10.20.16Hostname=pve1#
Laisser Server= vide ou positionné à 127.0.0.1 pour refuser toute scrutation passive
non désirée

Appliquer la configuration en redémarrant le service sur le nœud :

    ```
    systemctl restart zabbix-agent2systemctl status zabbix-agent2 --no-pager
    ```

4. Vérification instantanée de la connectivité réseau et applicative

Afin d’éviter d’attendre le délai de synchronisation périodique de Zabbix, exécuter
un contrôle réseau direct depuis l’hyperviseur ou une machine du réseau client pour
s’assurer que le port 10051 répond au travers du SRX300.

# Test de socket TCP depuis le nœud vers le serveur Zabbix :
nc -zv 10.10.20.16 
10051# Sortie attendue : Connection to 10.10.20.16 10051 port [tcp/*] succeeded!#
Injection immédiate d’un indicateur de test via zabbix_sender :zabbix_sender -z 
10.10.20.16 -s "pve1" -k "test.ping" -o 1# Sortie attendue : processed: 0; failed:
1; total: 1 (prouve que le serveur a répondu)

5. Analyse de l’incident de scrutation passive sur l’interface d’administration

Dans la console Zabbix (Collecte de données > Hôtes), l’indicateur ZBX des hyperviseurs
bascule à l’orange avec deux problèmes signalés. Le survol de la disponibilité affiche
le message d’erreur critique suivant :

Interface 10.10.10.11:10050 Non disponible
Erreur : Get value from agent failed:
cannot establish TCP connection to [[10.10.10.11]:10050]: timed outVérifications
actives : Disponible (Vert)

Le diagnostic de l’hôte montre que deux modèles sont attachés simultanément : Linux
by Zabbix agent active et Systemd by Zabbix agent 2. Le second modèle contient des
éléments de type passif imposant au serveur Zabbix d’initier des connexions vers
le port 10050 de 10.10.10.11. Comme ce port est fermé sur le nœud et bloqué par 
la politique par défaut du pare-feu SRX, les requêtes tombent en timeout et déclenchent
le déclencheur « Zabbix agent is not available ».

6. Résolution dans l’IHM Zabbix par dissociation et nettoyage du modèle passif

Pour rétablir l’état nominal sans compromettre la sécurité par l’ouverture inutile
du port 10050 sur les hyperviseurs, il faut dissocier proprement le modèle passif
tout en purgeant ses éléments obsolètes.

# Procédure dans l’interface Web Zabbix :
# 1. Naviguer vers : Collecte de données
> Hôtes# 2. Cliquer sur le nom de l’hôte (pve1, puis répéter sur pve2 et pve3)# 
3. Dans la section "Modèles liés", repérer la ligne : Systemd by Zabbix agent 2#
4. Cliquer impérativement sur le lien : "Supprimer lien et nettoyer" (Unlink and
clear)# 5. Conserver intact le modèle principal : Linux by Zabbix agent active# 
6. Cliquer sur le bouton bleu "Actualiser" en bas de page

Dès la validation, Zabbix purge les éléments de supervision passifs de systemd. 
Le serveur cesse toute tentative de connexion vers le port 10050 des PVE. L’indicateur
rouge disparaît, l’alerte de disponibilité s’efface, et les nœuds passent au statut
vert nominal grâce au modèle actif.

Retour arrière

| Situation | Action corrective | 
| Coupure d’accès ou échec de validation Junos | Laisser expirer le délai du commit confirmed 5 sans saisir commit. Le pare-feu revient à son état antérieur. | 
| Nécessité absolue de superviser systemd en passif | Ouvrir le port TCP/10050 sur le pare-feu SRX (politique srv vers adm) et réassigner le modèle Systemd by Zabbix agent 2. | 
| Suppression accidentelle du modèle actif principal | Réassigner immédiatement le modèle officiel « Linux by Zabbix agent active » depuis l’onglet Modèles de l’hôte. |

Pièges connus

| Symptôme exact | Cause racine | Résolution | 
| Get value from agent failed: cannot establish TCP connection to [[10.10.10.11]:10050]: timed out | Coexistence d’un modèle passif (Systemd) avec un modèle actif alors que le port 10050 est filtré par le pare-feu SRX. | Dissocier et nettoyer le modèle passif (Supprimer lien et nettoyer) pour basculer en mode 100% actif. | 
| Policy: Default-Policy, action-type: deny-all | Absence de politique autorisant les flux inter-zones entre srv et adm ou lab et srv. | Définir l’objet d’adresse (/32), l’application (port TCP) et insérer la politique permit sur le pare-feu. | 
| upstream timed out … while connecting to upstream https://10.10.10.12:8007/ | Le flux du proxy NPM vers le serveur PBS est rejeté par la politique par défaut du pare-feu. | Créer la politique p-srv-npm-pbs autorisant srv-npm vers adm-pbs-pve3 sur le port TCP/8007. | 
| Persistance de l’alarme orange malgré la correction | Délai de cache de configuration (config cache) du serveur Zabbix. | Patienter 1 minute ou forcer l’actualisation en ligne de commande avec : zabbix_server -R config_cache_reload. |

## 5 Intégration réseau

Identité des instances et adressage

| Instance | Rôle / FQDN | Zone et adresse IP | 
| fw01 | Pare-feu de segmentation SRX300 (fw01.adm.dozylab.lan) | Passerelle inter-VLAN / 10.10.20.254 (SNMP) | 
| pve1 | Hyperviseur Proxmox VE 9 (pve1.adm.dozylab.lan) | Zone adm / 10.10.10.10/24 | 
| pve2 | Hyperviseur Proxmox VE 9 (pve2.adm.dozylab.lan) | Zone adm / 10.10.10.11/24 | 
| pve3 | Hyperviseur Proxmox VE 9 et hôte PBS (pve3.adm.dozylab.lan) | Zone adm / 10.10.10.12/24 | 
| Zabbix Server | Serveur central de métriques et alertes | Zone srv / 10.10.20.16/32 | 
| npm | Reverse proxy Nginx Proxy Manager (srv-npm) | Zone srv / 10.10.20.12/32 | 
| hermes | Agent client de test de la zone Lab (VLAN 80) | Zone lab / 10.10.80.10/24 |

Matrice des flux réseau autorisés

| Protocole | Source | Destination | Port | Règle pare-feu / Usage | 
| TCP | Zone adm (pve1-3) | srv-zabbix (10.10.20.16) | 10051 | Règle à confirmer sur le SRX300 (Default-Policy deny-all entre zones) | 
| TCP | Zone lab (VLAN 80) | srv-zabbix (10.10.20.16) | 10051 | p-lab-to-zabbix (remontée métriques Lab) | 
| TCP | srv-npm (10.10.20.12) | adm-pbs-pve3 (10.10.10.12) | 8007 | p-srv-npm-pbs (relais HTTPS vers PBS) | 
| TCP | srv-npm (10.10.20.12) | net-adm (10.10.10.0/24) | 8006 | p-srv-npm-pve (relais console web PVE) | 
| TCP | srv-npm (10.10.20.12) | guacamole-lxc | 8080 | p-srv-npm-guac (relais interface Guacamole) |

Dépendances et points de défaillance

• Résolution DNS : assurée par le serveur Technitium (10.10.20.11) pour les noms
d’hôtes et le reverse proxy.

• Routage inter-zones : dépendance absolue envers la disponibilité du pare-feu Juniper
SRX300 (fw01).

• Continuité de supervision : en cas d’indisponibilité du serveur Zabbix, l’agent
2 conserve les données en mémoire tampon locale selon la directive BufferSize avant
transmission ultérieure.

## 6 Durcissement et sécurité

Moindre exposition des hyperviseurs : l’adoption exclusive du mode agent actif supprime
la nécessité d’ouvrir un port d’écoute entrant (TCP/10050) sur les nœuds de virtualisation
Proxmox VE. Les connexions sont unilatéralement initiées de l’administration vers
les serveurs.

Filtrage strict inter-zones : maintien de la politique générale deny-all sur le 
Juniper SRX300. Chaque ouverture de flux (Zabbix Trapper 10051, PBS 8007) est explicitement
restreinte à l’adresse IP de l’hôte (/32) et au port applicatif exact.

Exécution sans privilèges superflus : l’agent zabbix-agent2 s’exécute sous le compte
système dédié zabbix, limitant les risques d’élévation de privilèges sur l’hyperviseur
en cas de vulnérabilité du démon de collecte.

Sécurité des modifications réseau : application impérative de la commande commit
confirmed 5 lors de l’édition des politiques Junos, garantissant un retour arrière
automatique en cas d’erreur de syntaxe ou de rupture d’administration.

Dettes techniques

| Point de fragilité | Impact potentiel | État et échéance | 
| Chiffrement TLS / PSK entre agents et serveur Zabbix | Les données de télémétrie système transitent en clair au sein des VLAN internes. | Dette acceptée v0.1. Déploiement prévu de clés PSK lors de la mise en œuvre de la PKI DozyLab. | 
| Absence de supervision fine de systemd sur PVE | Les crashs de démons unitaires non critiques ne déclenchent pas d’alerte dédiée. | Accepté. La supervision des métriques globales de l’OS couvre 95% des besoins opérationnels. | 
| Supervision SNMP v2c sur fw01 | La communauté SNMP transite en clair sur le sous-réseau serveur. | À planifier. Migration vers SNMP v3 (authentification SHA et chiffrement AES) au prochain cycle. |

## 7 Vérifications finales

La validation de la procédure repose sur les critères d’acceptation mesurables et
vérifiables suivants :

| Point de contrôle | Critère d’acceptation et commande de vérification | Statut | 
| Filtrage pare-feu SRX (Lab vers Zabbix) | run show security match-policies from-zone lab to-zone srv source-ip 10.10.80.10 destination-ip 10.10.20.16 destination-port 10051 protocol tcp renvoie p-lab-to-zabbix permit | ☐ Validé | 
| Filtrage pare-feu SRX (Proxy vers PBS) | run show security match-policies from-zone srv to-zone adm source-ip 10.10.20.12 destination-ip 10.10.10.12 destination-port 8007 protocol tcp renvoie p-srv-npm-pbs permit | ☐ Validé | 
| Connectivité TCP de l’agent actif | nc -zv 10.10.20.16 10051 depuis pve1-pve3 répond « succeeded » sans blocage pare-feu | ☐ Validé | 
| Statut du démon zabbix-agent2 | systemctl is-active zabbix-agent2 renvoie active (running) sur les trois hyperviseurs | ☐ Validé | 
| Disparition du timeout 10050 dans Zabbix | L’erreur « cannot establish TCP connection … 10050: timed out » a disparu de l’interface | ☐ Validé | 
| Disponibilité des vérifications actives | L’infobulle de disponibilité de l’hôte affiche « Vérifications actives : Disponible » en vert | ☐ Validé | 
| Absence d’alarme de disponibilité | L’alarme orange « Zabbix agent is not available » est automatiquement acquittée et résolue | ☐ Validé |

## 8 Références et historique des révisions

Documentation éditeur

• Zabbix LLC : Documentation officielle Zabbix 6.4 / 7.0 — « Passive and active 
agent checks », établissant le mécanisme de scrutation sortante en TCP/10051.

• Juniper Networks : Junos OS Security Configuration Guide — « Security Policies
and Zone Configuration on SRX Series Devices », établissant les politiques par défaut
et le filtrage match-policies.

• Proxmox Server Solutions : Proxmox VE Administration Guide — « Host System Monitoring
and Package Management », validant l’intégration de démons de supervision tiers.

Documents associés

• HL-PRC-001 : Mise en service du pare-feu Juniper SRX300 (configuration initiale
des zones et des politiques de base).

• HL-PRC-003 : Mise en service de la grappe Proxmox à trois nœuds (plan d’adressage
et gestion de pve1, pve2, pve3).

• HL-PRC-009 : Proxmox Backup Server sur hôte Proxmox VE (installation et ouverture
du flux 8007 sur pve3).

Historique des révisions

| Version | Date | Auteur | Modifications | 
| 0.1 | 25/10/2026 | Administrateur système et réseaux | Création du document à partir de l’intervention réelle sur le cluster Proxmox et le pare-feu SRX. |
