Quand une infrastructure grandit, le monitoring devient un sujet d’architecture. Il ne s’agit plus seulement de vérifier qu’un service répond, mais de comprendre ce qui se passe, où, et pourquoi.
Dans ce rapport, nous nous intéressons à une question centrale : faut-il tout uniformiser avec une brique unique, ou garder des outils spécialisés tout en centralisant la visualisation dans Grafana ?
I. Pourquoi monitorer une infrastructure ?
Mettre une infrastructure en production ne suffit pas : il faut pouvoir suivre son état dans le temps, qu’il s’agisse de bare metal, de VMs, de Clusters Kubernetes, de ressources cloud ou d’équipements réseau. Le monitoring permet d’observer les signaux essentiels comme la disponibilité, la latence, les erreurs, le trafic ou la saturation.
Cette visibilité permet de détecter les incidents plus rapidement, mais aussi d’anticiper certaines dégradations avant qu’elles ne deviennent critiques. Une partition qui se remplit, une latence qui augmente ou une consommation mémoire anormale sont autant de signaux faibles qu’il faut pouvoir identifier tôt
II. la complexité du monitoring
La difficulté vient du fait qu’une infrastructure moderne produit des données très différentes : métriques système, logs applicatifs, événements, traces ou informations issues du réseau. Le défi n’est donc pas seulement de collecter ces données, mais de les rendre cohérentes et exploitables.
C’est là que se pose la question de l’architecture : faut-il centraliser toute la collecte dans une même chaîne, ou garder des pipelines spécialisés selon le type de donnée ?
III. Comprendre les signaux et la chaîne de monitoring
Avant de parler d’outils, il faut comprendre ce que l’on cherche réellement à observer. Une infrastructure produit en permanence différents types de données : certaines donnent une vision globale de l’état du système, d’autres permettent d’analyser précisément ce qui s’est passé lors d’un incident.
On distingue généralement trois grands signaux : les métriques, les logs et les traces.
Les métriques
Les métriques sont des valeurs chiffrées mesurées dans le temps. Elles permettent de suivre l’évolution d’un système et de détecter rapidement une anomalie.
Exemples :
utilisation CPU ;
consommation mémoire ;
espace disque ;
trafic réseau ;
latence ;
taux d’erreur ;
nombre de requêtes ;
disponibilité d’un service.
Les métriques sont particulièrement utiles pour créer des dashboards et des alertes. Elles permettent par exemple d’identifier une saturation progressive ou une hausse anormale des erreurs.
Les logs
Les logs sont les événements produits par un système, une application ou un service. Ils permettent de comprendre ce qui s’est passé à un moment précis.
Exemples :
erreurs applicatives ;
logs système ;
logs d’accès HTTP ;
événements de sécurité ;
messages de debug ;
événements Kubernetes ;
changements d’état d’un service.
Là où une métrique peut montrer qu’un problème existe, un log aide souvent à comprendre pourquoi il s’est produit.
Les traces
Les traces permettent de suivre le parcours d’une requête entre plusieurs services. Elles sont surtout utiles dans les architectures distribuées, où une action utilisateur peut traverser plusieurs composants avant d’obtenir une réponse.
Elles permettent notamment d’identifier :
les services appelés ;
le temps passé dans chaque composant ;
les dépendances entre applications ;
le service responsable d’un ralentissement ;
le chemin complet d’une requête.
Les traces sont donc très utiles pour analyser les performances applicatives, mais elles demandent souvent une instrumentation plus poussée que les métriques ou les logs
Ces visuels montrent que les outils d’observabilité ne se placent pas tous au même niveau. Certains, comme OpenTelemetry Collector ou Grafana Alloy , peuvent couvrir plusieurs usages et s’intégrer dans une chaîne plus large. Ils simplifient l’architecture en donnant un cadre commun, mais créent aussi une dépendance plus forte à un même pipeline.
À l’inverse, des briques comme Prometheus, Thanos ou Loki sont plus spécialisées. Elles font moins de choses, mais les font très bien. La vraie question n’est donc pas seulement de choisir un outil, mais de comprendre où chaque brique se positionne dans le parcours de la donnée : collecte, transport, stockage, visualisation ou alerting.
IV. De la collecte à la visualisation : la chaîne du monitoring
Une fois les signaux produits, ils doivent être collectés, acheminés, stockés, analysés puis visualisés. C’est cette circulation de la donnée qui forme la chaîne de monitoring. L’objectif est de transformer un événement brut, généré par une application, une machine ou un équipement réseau, en une information lisible et exploitable par les équipes.
On retrouve généralement plusieurs rôles dans cette chaîne :
Producteurs : applications, serveurs bare metal, machines virtuelles, bases de données, clusters Kubernetes, équipements réseau ou services cloud. Ce sont eux qui génèrent les métriques, les logs ou les traces.
Exporters : composants qui exposent des métriques dans un format exploitable, souvent pour Prometheus. Par exemple : Node Exporter pour les métriques système, Blackbox Exporter pour tester la disponibilité d’un service, ou encore des exporters spécifiques pour les bases de données, le réseau ou certaines applications.
Collecteurs / agents : composants qui récupèrent, filtrent, enrichissent ou redirigent les données vers les bons backends. On peut citer Fluent Bit pour les logs, OpenTelemetry Collector pour une approche multi-signaux, ou Grafana Alloy pour une collecte plus unifiée dans l’écosystème Grafana.
Backends : systèmes chargés de stocker et de requêter les données. Selon le type de signal, on peut retrouver Prometheus, Thanos ou VictoriaMetrics pour les métriques, Loki ou OpenSearch pour les logs, et Tempo, Jaeger ou Zipkin pour les traces.
Visualisateurs : outils qui rendent les données exploitables à travers des dashboards, des vues d’exploration ou des recherches. Grafana est souvent utilisé pour centraliser cette visualisation, car il peut interroger plusieurs datasources depuis une même interface.
Alerting : mécanismes qui déclenchent une notification lorsqu’un comportement anormal est détecté. Cela peut passer par Grafana Alerting, Prometheus Alertmanager, ou des intégrations vers Slack, Teams, PagerDuty ou Opsgenie.
Cette séparation est importante, car elle montre qu’une stack de monitoring ne repose pas forcément sur un seul outil. Une même architecture peut combiner plusieurs pipelines spécialisés : un pour les métriques, un pour les logs, un pour les traces, tout en centralisant l’exploitation dans une interface commune comme Grafana.
V. Étude de l’existant chez Steamulo
Chez Steamulo, l’infrastructure repose sur un écosystème assez hétérogène. On retrouve des serveurs bare metal hébergeant des environnements Proxmox, sur lesquels peuvent tourner des machines virtuelles applicatives ou des clusters Kubernetes. À côté de cette infrastructure locale, certaines applications ou certains services peuvent aussi être déployés chez des cloud providers comme OVH, Scaleway, AWS ou d’autres plateformes externes.
Cette diversité rend l’environnement puissant et flexible, mais elle complexifie aussi sa supervision. Les sources à monitorer ne sont pas toutes au même endroit, ne produisent pas les mêmes types de données et ne se supervisent pas toujours avec les mêmes outils. Une VM, un cluster Kubernetes, un service cloud, une base de données ou un équipement réseau n’exposent pas les mêmes métriques ni les mêmes logs.
Le problème n’est donc pas seulement de mettre en place du monitoring, mais de réussir à construire une vision cohérente de l’ensemble. Sans centralisation claire, les informations peuvent vite se retrouver dispersées entre plusieurs dashboards, plusieurs sources de logs ou plusieurs outils de supervision. Cela rend le diagnostic plus long, surtout lorsqu’un incident peut venir aussi bien d’une application, d’un cluster Kubernetes, d’une VM, d’un nœud Proxmox ou d’une dépendance cloud.
VI. Notre approche : une visualisation centralisée avec des briques spécialisées
Notre approche a été de centraliser au maximum la visualisation des données dans Grafana. L’objectif n’est pas forcément de faire passer toutes les métriques et tous les logs par un seul collecteur, mais de permettre aux équipes de retrouver les informations importantes depuis une interface commune. Pour cela, plusieurs datasources sont connectées à Grafana, avec une organisation par dossiers et par services. Cette structure permet de rendre les dashboards plus lisibles, mais aussi de mieux gérer les accès grâce aux teams et aux permissions Grafana. Grafana permet justement d’utiliser les équipes pour mutualiser les droits d’accès aux dashboards et aux datasources, ainsi que des permissions par dossiers pour structurer l’accès aux contenus.
Pour le reste de l’architecture, nous avons choisi de conserver des composants spécialisés selon le type de donnée. Les métriques sont gérées avec une approche Prometheus / Thanos, afin de garder un socle robuste pour la collecte, les requêtes et la rétention. Plusieurs exporters sont utilisés selon les besoins : des exporters orientés Kubernetes, Node Exporter pour l’état des machines, ainsi que d’autres exporters spécifiques selon les services à superviser .
Pour les logs, la logique est similaire : Loki reste le backend principal, car il s’intègre bien avec Grafana et répond au besoin de centralisation des journaux. La partie collecte a cependant évolué. Historiquement, Promtail était utilisé pour récupérer les logs et les envoyer vers Loki. Mais Promtail est désormais annoncé en fin de vie, avec les futurs développements orientés vers Grafana Alloy.
Dans notre cas, le choix a été de migrer vers Fluent Bit plutôt que vers Alloy. Ce choix correspond à notre philosophie d’architecture : garder des outils spécialisés, performants et maîtrisables pour chaque besoin, plutôt que de tout regrouper dans une seule brique multi-usage. Alloy reste intéressant pour une approche unifiée, puisqu’il permet de collecter plusieurs types de signaux, mais cette approche peut aussi créer une dépendance plus forte à un pipeline unique et une moins bonne performance.
Notre choix se résume donc ainsi : centraliser l’exploitation dans Grafana, mais conserver des pipelines spécialisés pour les métriques et les logs. Grafana sert de point d’entrée commun, tandis que Prometheus / Thanos, Loki et Fluent Bit gardent chacun un rôle clair dans la chaîne de monitoring.
Les traces ne sont pas encore intégrées aujourd’hui, mais elles représentent une évolution logique pour aller plus loin dans l’observabilité, notamment sur le suivi des requêtes entre services et l’analyse des lenteurs applicatives.
VII. Évolutions permanentes et derniers travaux
Le monitoring n’est pas une brique figée : il évolue avec l’infrastructure, les besoins des équipes et les changements dans l’écosystème des outils. Ces derniers mois, plusieurs travaux ont été menés pour rendre la stack plus robuste, plus lisible et plus simple à maintenir :
**Migration de Loki vers **une architecture distribuée : passage d’un simple deployment à un mode distribué afin de mieux séparer l’ingestion, le stockage et les requêtes de logs.
**Migration de Promtail vers **Fluent Bit : remplacement de Promtail par un agent de collecte plus léger et spécialisé, dans la continuité de l’arrêt progressif de Promtail.
Fusion de deux instances Grafana en une seule : centralisation de la visualisation pour réduire la fragmentation des dashboards et simplifier l’accès aux données.
Déploiement d’un** Varnish Exporter** : mise en place d’un exporter dédié pour extraire les métriques Varnish, notamment autour du cache, du trafic, des erreurs HTTP et de l’état des backends.
Création de nouveaux dashboards : ajout de dashboards dédiés à Trivy et Varnish afin d’améliorer la visibilité sur la sécurité et les métriques Varnish.
Mise à jour des composants de la stack : montée de version de Grafana, Loki, Prometheus et Thanos pour bénéficier des corrections, améliorations de performance et nouvelles fonctionnalités.
POC autour de Proxmox Datacenter Manager : expérimentation en cours pour évaluer son intérêt dans la supervision et l’administration centralisée de l’environnement Proxmox.
VIII. Le Futur
Les prochaines évolutions s’inscrivent dans la continuité du travail déjà réalisé. L’objectif est d’étendre progressivement la couverture du monitoring, tout en gardant une architecture lisible, maintenable et adaptée aux besoins réels de l’infrastructure.
Mise en place de nouveaux exporters spécialisés : ajout progressif d’exporters pour des composants encore peu ou pas supervisés, notamment le réseau, certaines bases de données ou des services internes spécifiques.
Intégration progressive des traces : ajout d’un pipeline de tracing afin de suivre le parcours des requêtes entre plusieurs services et d’analyser plus finement les problèmes de performance applicative.
Amélioration continue de l’existant : enrichissement des dashboards, ajustement des alertes, mise à jour des composants et amélioration des conventions de labels pour garder une stack exploitable dans le temps.
IX. Les points importants à garder en tête
Centraliser le monitoring ne veut pas forcément dire tout faire passer par un seul outil. L’approche retenue consiste surtout à centraliser la visualisation dans Grafana.
Les pipelines spécialisés restent pertinents. Prometheus / Thanos pour les métriques, Loki pour les logs et Fluent Bit pour la collecte permettent de garder des briques adaptées à leur usage.
Les outils unifiés comme Alloy ou OpenTelemetry Collector sont intéressants, mais ils ne doivent pas être choisis uniquement parce qu’ils savent tout faire. Le choix dépend du besoin, de la maintenabilité et du niveau de maîtrise attendu.
La qualité du monitoring dépend aussi de son organisation. Des dashboards clairs, des datasources bien rangées, des labels cohérents et des alertes pertinentes sont aussi importants que les outils utilisés.
X. Conclusion
Centraliser le monitoring, ce n’est pas forcément tout faire passer dans une seule brique : c’est surtout construire une vision exploitable de l’infrastructure dans le temps. Dans un environnement hétérogène, entre bare metal, Proxmox, VMs, Kubernetes, cloud providers,** applications** et services transverses, le vrai sujet n’est pas seulement de collecter plus de données, mais de rendre ces données lisibles, corrélables et utiles au quotidien.
L’objectif est de garder une architecture maîtrisable, capable d’évoluer sans tout reconstruire à chaque nouveau besoin, tout en conservant des briques optimisées pour leur usage.
Monitoring centralisé : visualisation unifiée, collecte spécialisée was originally published in STEAMULO Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.