Prometheus
Prometheus est une solution de monitoring open source conçue pour collecter, stocker et interroger des métriques sous forme de séries temporelles.
Dans notre infrastructure, il constitue le socle de la supervision centralisée, notamment pour toutes les machines et services référencés dynamiquement dans Netbox.
Architecture
Prometheus est déployé dans le cluster Kubernetes via FluxCD et Helm (chart kube-prometheus-stack).
Toutes les configurations sont maintenues en GitOps pour assurer traçabilité, reproductibilité et auditabilité.
L'intégration native avec Grafana permet une visualisation efficace, tandis que l'intégration avec Alertmanager gère la distribution des alertes.
Points clés de l'architecture :
Déploiement dans le namespace
supervisionDécouverte automatique des cibles grâce au plugin NetBox Prometheus SD
Gestion des alertes centralisée
Configuration maintenue et versionné dans le dépôt Git
Déploiement
L'installation du chart Helm officiel est orchestrée par FluxCD.
Le chart utilisé est kube-prometheus-stack, qui fournit en plus de Prometheus : Alertmanager, des règles d’alerting, des dashboards et des opérateurs CRD.
Intégration dynamique avec Netbox
La découverte automatique des hôtes et VMs s’appuie sur le plugin Prometheus SD installé dans Netbox, qui expose dynamiquement les VMs éligibles au monitoring.
Plugin utilisé :
netbox-plugin-prometheus-sdEndpoint d’API utilisé :
http://45.88.180.139:8080/api/plugins/prometheus-sd/virtual-machines/?status=active&has_primary_ip=true
La configuration de la cible de scrape dans Kubernetes se fait avec un objet ScrapeConfig du Prometheus Operator :
Gestion des secrets
Pour sécuriser l'accès à l’API Netbox, le token est stocké dans un Secret Kubernetes :
Sélection des configurations de scrape
Prometheus (via kube-prometheus-stack) est configuré pour découvrir automatiquement toutes les ScrapeConfig portant le label release: prom dans le namespace supervision.
Cela rend la supervision extensible simplement en ajoutant un fichier ScrapeConfig versionné dans Git : pas besoin de modifier le déploiement principal Prometheus.
Accès, persistance & sécurité
Accès :
Prometheus n’est pas exposé publiquement, uniquement accessible depuis le cluster. Grafana y accède en interne.
Persistance :
Les métriques sont stockées durablement dans des volumes persistants.
Sécurité :
Les tokens sensibles ne sont jamais commités en clair dans Git.
Visualisation et alerting
Grafana se connecte directement à Prometheus pour les dashboards et visualisations.
Alertmanager est configuré pour traiter les alertes Prometheus et les router (mail, webhook, Discord…).
Intégration avec Blackbox Exporter et d'autres ScrapeConfig pour superviser des endpoints HTTP, ICMP, TCP, etc.
Bénéfices et automatisation
Découverte automatique des VM/switches/hosts Netbox dès qu’ils ont un IP principal et le statut “active”.
Gestion déclarative : toute nouvelle cible dans Netbox ou ScrapeConfig apparaît automatiquement dans Prometheus.
Scalabilité : ajouter ou retirer une cible = simplement modifier Netbox ou déposer un fichier dans Git.
Auditabilité : toute modification est historisée via Git.
Exemple de workflow complet
Un nouvel hôte/VM est ajouté ou mis à jour dans Netbox.
Netbox Plugin Prometheus SD expose l’IP dans l’API
/virtual-machines/.Le ScrapeConfig dans Kubernetes interroge Netbox toutes les 60s et met à jour la liste des cibles à monitorer.
Prometheus découvre automatiquement la cible via cette API et commence à scrapper ses métriques Node Exporter.
Les métriques sont accessibles et corrélées dans Grafana.
Ce système permet une supervision dynamique, automatisée et extensible, parfaitement intégrée à la CMDB Netbox et à la stack Grafana.