Prometheus vous offre un moyen unique et neutre de collecter, d'étiqueter et d'interroger la télémétrie opérationnelle à partir de tout ce qui peut exposer un point d'extrémité HTTP /metrics. Son modèle d'extraction et PromQL facilitent la transformation des compteurs bruts en taux, percentiles et SLO, tandis qu'Alertmanager transforme ces signaux en alertes précises et silencieuses. Cela permet aux entreprises de standardiser un moteur de séries temporelles pour les hôtes, les conteneurs, les applications et les équipements réseau (via les exportateurs), sans s'enfermer dans un système de surveillance du réseau (NMS) ou un schéma propriétaire.
Dans le cadre d'un déploiement Netskope Private Access (NPA), Prometheus couvre parfaitement la partie de l'équation qui concerne l'infrastructure que vous possédez. Le site Publisher héberge la connectivité entre l'utilisateur et l'application du courtier et le nuage Netskope. En récupérant les métriques des hôtes (node_exporter) et des conteneurs (cAdvisor) sur chaque site Netskope Publisher, que vous pouvez déployer sur Ubuntu ou sur des plateformes cloud/virtuelles, vous bénéficiez d'une visibilité en temps réel sur le CPU, la mémoire, le disque, les erreurs/chutes de NIC et la santé des conteneurs qui ont un impact direct sur la fiabilité et la capacité de ZTNA.
Variables personnalisées
- Netskope Publisher (this host) IP:
$PUBLISHER_IP. (Par exemple :10.0.0.21) - Prometheus NMS IP:
$NMS_IP. (Par exemple :10.0.0.10)
Ports utilisés :
- node_exporter:
9100/tcp - cAdvisor:
8080/tcp
Installer node_exporter (métriques de l'hôte)
Option A : Paquet Ubuntu (le plus rapide)
sudo apt update sudo apt install -y prometheus-node-exporter # Listens on :9100
Option B : binaire officiel (New, courant dans la production)
VER="1.9.1"
cd /tmp
curl -LO https://github.com/prometheus/node_exporter/releases/download/v${VER}/node_exporter-${VER}.linux-amd64.tar.gz
tar xzf node_exporter-${VER}.linux-amd64.tar.gz
sudo mv node_exporter-${VER}.linux-amd64/node_exporter /usr/local/bin/
sudo useradd --no-create-home --shell /usr/sbin/nologin nodeexp || true
sudo tee /etc/systemd/system/node_exporter.service >/dev/null <<'EOF'
[Unit]
Description=Prometheus Node Exporter (Netskope Publisher)
Wants=network-online.target
After=network-online.target
[Service]
User=nodeexp
Group=nodeexp
ExecStart=/usr/local/bin/node_exporter \
--web.listen-address=":9100" \
--collector.systemd \
--collector.processes
# hardening
ProtectSystem=strict
ProtectHome=true
NoNewPrivileges=true
PrivateTmp=true
PrivateDevices=true
CapabilityBoundingSet=
LockPersonality=true
MemoryDenyWriteExecute=true
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter
Les deux drapeaux du collecteur permettent d'obtenir des mesures supplémentaires et utiles sur l'hôte (systemd + processus).
(Facultatif) Lier à l'IP de l'éditeur
Si vous ne voulez pas que :9100 soit présent sur toutes les interfaces, reliez-le :
- Installation du paquet :
sudo systemctl edit prometheus-node-exporter
- Paste:
[Service]
ExecStart=
ExecStart=/usr/bin/prometheus-node-exporter --web.listen-address="$PUBLISHER_IP:9100" --collector.systemd --collector.processes - Ensuite :
sudo systemctl daemon-reload
sudo systemctl restart prometheus-node-exporter - Installation binaire : remplacez
--web.listen-address=":9100"dans l'unité par"${PUBLISHER_IP}:9100"et redémarrez.
Installez cAdvisor (pour les métriques Docker)
cAdvisor expose le processeur, la mémoire, le système de fichiers et les E/S réseau par conteneur. Il écoute sur :8080 et fournit des métriques sur /metrics.
sudo docker run -d --name=cadvisor --restart=always -p 8080:8080 \ -v /:/rootfs:ro \ -v /var/run:/var/run:ro \ -v /sys:/sys:ro \ -v /var/lib/docker/:/var/lib/docker:ro \ gcr.io/cadvisor/cadvisor:latest
Facultatif : gérer via systemd (Docker)
sudo tee /etc/systemd/system/cadvisor-docker.service >/dev/null <<'EOF' [Unit] Description=cAdvisor (Docker) - Netskope Publisher After=docker.service Requires=docker.service [Service] Restart=always ExecStartPre=-/usr/bin/docker rm -f cadvisor ExecStart=/usr/bin/docker run --name=cadvisor -p 8080:8080 \ -v /:/rootfs:ro -v /var/run:/var/run:ro -v /sys:/sys:ro \ -v /var/lib/docker/:/var/lib/docker:ro \ gcr.io/cadvisor/cadvisor:latest ExecStop=/usr/bin/docker rm -f cadvisor [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now cadvisor-docker
Sécuriser le pare-feu
Autorisez uniquement le système de surveillance réseau Prometheus (NMS) à extraire 9100 et 8080.
sudo apt -y install ufw sudo ufw allow from $NMS_IP to any port 9100 proto tcp sudo ufw allow from $NMS_IP to any port 8080 proto tcp sudo ufw enable sudo ufw status
Vérifier sur l'éditeur Netskope
# Host metrics curl -s http://$PUBLISHER_IP:9100/metrics | head # Container metrics curl -s http://$PUBLISHER_IP:8080/metrics | head
Vous devriez voir des noms de métriques comme node_cpu_seconds_total et container_cpu_usage_seconds_total.
Contrôlez les services :
systemctl status prometheus-node-exporter || systemctl status node_exporter systemctl status cadvisor-docker
Configurez le NMS Prometheus pour qu'il scrape cet éditeur.
Sur le NMS, modifiez /etc/prometheus/prometheus.yml et ajoutez ces travaux :
scrape_configs:
job_name: 'node'
static_configs:
targets: ['${PUBLISHER_IP}:9100'] # Netskope Publisher host metrics
job_name: 'cadvisor'
metrics_path: /metrics
static_configs:
targets: ['${PUBLISHER_IP}:8080'] # Netskope Publisher container metrics
Rechargez Prometheus sur le NMS :
sudo systemctl reload prometheus || sudo systemctl restart prometheus
Une vérification rapide sur le NMS (Prometheus web > Status > Targets devrait montrer que les deux travaux sont en cours). Sur Explore/Graph, essayez :
node_cpu_seconds_total{instance="${PUBLISHER_IP}:9100"}
container_memory_usage_bytes{instance="${PUBLISHER_IP}:8080"}
Alertes à prendre en compte (définies dans le SGN)
Créez des règles d'alerte pour :
- Node down:
up{job="node"} == 0 - High CPU (soutenu)
- Peu de mémoire disponible
- Filesystem usage or inodes high
- Container restarts / OOM (via cAdvisor)
- Network errors/discards sur les cartes réseau de l'hôte
Placez les règles sous /etc/prometheus/rules/*.yml et chargez-les via rule_files: dans la configuration du SGN.
Conseils de dépannage
- Cible BAISSÉE dans Prometheus
Extrait du NMS :curl -s http://$PUBLISHER_IP:9100/metrics | head
curl -s http://$PUBLISHER_IP:8080/metrics | head - En cas d'échec : vérifiez l'UFW, l'état du service et les adresses de liaison.
- cAdvisor n'indique aucun conteneur. Assurez-vous d'avoir utilisé correctement le jeu de montage Docker.
- CPU/IO élevé du cAdvisor
- Maintenez l'intervalle de raclage à 15 secondes au départ ; ne le réduisez que si vous avez vraiment besoin d'une résolution plus élevée.
- Évitez d'activer les explosions d'étiquettes au niveau des conteneurs dans les requêtes en aval.

