Retour au parcours

Etude de cas — Observabilite

Superviser 7 flux d'integration hybrides (Windows + Azure) avec Prometheus, Grafana et Log Analytics

Comment j'ai cartographie, instrumente et reuni dans un tableau de bord unique les flux d'integration d'un organisme de formation professionnelle multi-sites — sans modifier leur logique metier.

7
flux supervises en un coup d'oeil
~1 000
profils synchronises chaque jour vers SharePoint
2
chaines de collecte reunies dans un seul dashboard
~40
panels Grafana generes et valides par script

Le contexte

Un organisme de formation professionnelle multi-sites fait vivre son SI par une serie de flux d'integration : provisionnement automatique des comptes des formateurs vacataires (CDDU) depuis le SIRH vers Entra ID et Exchange Online, synchronisation d'attributs vers les profils SharePoint (~1 000 comptes/jour), nettoyage reglementaire de listes de diffusion, purge de calendriers de diffusion, et echanges de fichiers securises avec l'ERP metier de gestion de formation via des runbooks Azure Automation qui ouvrent et ferment un acces SFTP sur une fenetre nocturne.

Probleme : ces flux tournaient sans supervision centralisee. L'objectif du projet etait de les cartographier, les instrumenter et les reunir dans un tableau de bord unique.

La demarche

  1. 01

    Cartographie

    J'ai inventorie les taches planifiees Windows avec un script PowerShell d'export (declencheurs, actions, scripts associes) et les ressources Azure sur deux tenants via Azure CLI / Cloud Shell (Logic Apps, Data Factory, Azure Automation), puis lu le code de chaque flux. Livrable : un document de cartographie complet pour la DSI — sources, destinations, planification, ecritures reelles, points de securite.

  2. 02

    Instrumentation

    J'ai ajoute un bloc de metriques standardise dans chaque script PowerShell (succes, duree, horodatage, compteurs metier), pousse vers un Pushgateway Prometheus en fin d'execution — y compris sur les sorties en erreur. L'envoi est non bloquant : la logique metier des scripts reste inchangee et un incident de supervision ne peut jamais bloquer un flux.

  3. 03

    Double chaine de supervision

    Les runbooks Azure Automation s'executent dans le sandbox cloud Microsoft, sans route reseau vers le Pushgateway prive. Plutot que d'exposer le Pushgateway ou de deployer un Hybrid Worker, j'ai exporte les journaux de jobs via diagnostic settings vers un workspace Log Analytics, interroge en KQL par Grafana (datasource Azure Monitor, service principal dedie en lecture seule, role Monitoring Reader).

  4. 04

    Dashboard unique

    Le dashboard Grafana est genere par script Python, avec une grille validee automatiquement (zero chevauchement, IDs uniques) : environ 40 panels, une vue d'ensemble rouge/vert des 7 flux, une section detaillee par flux et des tables KQL pour les runbooks Azure. Il est regenerable et versionnable — maintenu « as code ».

L'architecture

Schema d'architecture de la supervisionDeux chaines convergent vers un meme Grafana. Chaine on-premise : cinq scripts PowerShell en taches planifiees envoient leurs metriques en HTTP PUT vers un Pushgateway, scrape par Prometheus, lu par Grafana. Chaine Azure : les runbooks Azure Automation exportent leurs journaux via diagnostic settings vers Log Analytics, interroge en KQL par le meme Grafana.Serveur d'integrationon-premise5 scripts PowerShell (SYSTEM)HTTP PUTPushgatewayscrapePrometheusAzure Automation(runbooks SFTP)sandbox cloud Microsoftdiagnostic settingsLog Analyticsworkspacerequetes KQL (Monitoring Reader)Grafana1 dashboard, ~40 panels
Deux chaines de collecte, un seul point de verite : le meme dashboard Grafana.

Le dashboard en images

Vue d'ensemble anonymisee du dashboard Grafana : sept indicateurs de statut, un par flux d'integration, avec duree, erreurs et fraicheur de derniere execution
Vue d'ensemble : l'etat des 7 flux en un coup d'oeil
Sections detaillees anonymisees de flux dans Grafana : ajouts et retraits sur les listes Exchange par jour, arrivees et departs detectes, comptes traites
Detail d'un flux : metriques metier, pas seulement techniques
Tables anonymisees de resultats KQL dans Grafana : dernier statut par runbook Azure Automation et historique des reussites et echecs par jour
Les runbooks Azure supervises via Log Analytics, sans modification des runbooks

Les resultats

  • 7 flux supervises en un coup d'oeil : statut, duree, compteurs metier, fraicheur de derniere execution
  • Environ 1 000 profils synchronises chaque jour vers SharePoint
  • Deux chaines de collecte (Prometheus on-premise + Log Analytics cote Azure) reunies dans un seul dashboard
  • Dashboard maintenu « as code » : regenerable, versionnable, valide automatiquement
  • Instrumentation non intrusive : logique metier des scripts inchangee, envoi de metriques non bloquant

Competences mises en oeuvre

  • Grafana (dashboards as code)
  • Prometheus / Pushgateway
  • Azure Monitor / Log Analytics
  • KQL
  • Azure Automation
  • Azure CLI / Cloud Shell
  • Microsoft Graph (SDK + REST)
  • Exchange Online
  • Entra ID (B2B, service principals, RBAC)
  • PowerShell 5.1
  • SharePoint (PnP)
  • Observabilite / SRE
  • Documentation DSI

Des flux a superviser dans votre SI ?

Cartographie, instrumentation, dashboards as code : parlons de votre contexte.