RousselTMLEARNING

Cloud computing

Observabilité sur Azure : Azure Monitor, Log Analytics, Application Insights, Prometheus et Grafana managés

Panorama complet de l'observabilité sur Azure : Azure Monitor (métriques, journaux et Log Analytics, KQL), Application Insights, Azure Monitor Agent et règles de collecte, Prometheus et Grafana managés, Container Insights, alertes et groupes d'actions, compatibilité OpenTelemetry, piliers pris en charge et intégrations externes.

1. Vue d'ensemble #

Azure Monitor et ses magasins de données.

Une plateforme unique : Azure Monitor #

Sur Azure, toute l'observabilité passe par Azure Monitor. Il repose sur deux magasins principaux : Azure Monitor Metrics (séries temporelles légères, conservées 93 jours) et les journaux Azure Monitor stockés dans des espaces de travail Log Analytics et interrogés en KQL (Kusto Query Language). Application Insights apporte l'APM et stocke ses données (requêtes, dépendances, traces, exceptions) dans Log Analytics. Pour Kubernetes et les métriques Prometheus, Azure propose Azure Monitor managed service for Prometheus et Azure Managed Grafana.

Architecture d'Azure Monitor
À gauche les producteurs de données, au centre les composants internes d'Azure Monitor, à droite les outils externes. Les composants entourés en orange (Managed Grafana, API de requête, groupes d'actions, Event Hubs) sont les seuls points d'ouverture vers l'extérieur.

Piliers pris en charge #

PilierComposant AzureExplorationOpenTelemetry
MétriquesAzure Monitor Metrics, Managed PrometheusMetrics Explorer, PromQL✅ Oui
JournauxLog Analytics (tables, plans Analytics, Basic, Auxiliary)KQL, Logs, Workbooks✅ Oui
TracesApplication Insights (tables AppRequests, AppDependencies)Recherche de transactions, carte d'application✅ Oui (distro Azure Monitor OpenTelemetry)
ProfilsApplication Insights Profiler (.NET, Java)Traces de profilage par requête🟡 Partiel (Profiler propre à Azure)
RUM et synthétiqueApplication Insights (SDK navigateur), tests de disponibilité standardExpérience utilisateur, tests web🟡 Partiel
Événements et auditJournal d'activité, Change AnalysisKQL, Azure Resource Graph❌ Non
À savoir : Le Snapshot Debugger d'Application Insights capture l'état des variables au moment d'une exception en production (.NET) : un complément utile aux profils.

2. Les composants en détail #

Rôle de chaque brique d'Azure Monitor.

Métriques de plateforme et paramètres de diagnostic #

Chaque ressource Azure publie gratuitement ses métriques de plateforme. Les journaux de ressources (requêtes d'une passerelle d'application, journaux d'audit d'une base, etc.) ne sont collectés que si l'on crée un paramètre de diagnostic qui les envoie vers Log Analytics, un compte de stockage, Event Hubs ou une solution partenaire. Le journal d'activité trace les opérations de gestion (création, suppression, modifications de la configuration).

az monitor diagnostic-settings create --name vers-law \
  --resource /subscriptions/<abonnement>/resourceGroups/rg-prod/providers/Microsoft.Web/sites/api-boutique \
  --workspace /subscriptions/<abonnement>/resourceGroups/rg-obs/providers/Microsoft.OperationalInsights/workspaces/law-prod \
  --logs '[{"category":"AppServiceHTTPLogs","enabled":true}]' --metrics '[{"category":"AllMetrics","enabled":true}]'

Log Analytics et KQL #

Un espace de travail Log Analytics contient des tables (Syslog, Perf, ContainerLogV2, AppRequests…). Chaque table peut utiliser le plan Analytics (requêtes complètes, alertes), Basic ou Auxiliary (moins chers, requêtes limitées) selon l'usage. La rétention interactive et l'archivage longue durée se règlent par table.

AppRequests
| where TimeGenerated > ago(1h)
| summarize requetes = count(), erreurs = countif(Success == false),
            p95 = percentile(DurationMs, 95) by bin(TimeGenerated, 5m), Name
| order by TimeGenerated desc

Azure Monitor Agent et règles de collecte (DCR) #

L'Azure Monitor Agent (AMA) remplace les anciens agents Log Analytics (MMA/OMS). Il collecte journaux système, compteurs de performance et fichiers texte sur les VM Windows et Linux, y compris hors Azure via Azure Arc. Ce qu'il collecte et où il l'envoie est décrit dans des règles de collecte de données (DCR), qui peuvent aussi filtrer et transformer les données en KQL avant ingestion pour réduire les coûts.

Application Insights #

Application Insights est la brique APM : requêtes entrantes, dépendances sortantes, exceptions, traces, carte de l'application, analyse des défaillances et des performances, recherche de transactions de bout en bout, métriques en direct, tests de disponibilité et expérience des utilisateurs (SDK JavaScript). Une ressource Application Insights est rattachée à un espace Log Analytics.

Kubernetes : Container Insights, Prometheus et Grafana managés #

Sur AKS, Container Insights collecte journaux et inventaire des conteneurs, tandis que Managed Prometheus collecte les métriques (cibles par défaut, ServiceMonitor et PodMonitor) dans un espace de travail Azure Monitor. Azure Managed Grafana s'y connecte avec des tableaux de bord prêts à l'emploi.

az aks update --resource-group rg-prod --name aks-prod \
  --enable-azure-monitor-metrics \
  --azure-monitor-workspace-resource-id <id-espace-azure-monitor> \
  --grafana-resource-id <id-grafana-manage>

Alertes, groupes d'actions et classeurs #

TypeUsage
Alertes de métriquesSeuils statiques ou dynamiques sur des métriques, évaluées chaque minute
Alertes de recherche de journauxRequête KQL planifiée ; idéale pour des conditions complexes
Alertes PrometheusGroupes de règles PromQL sur l'espace Azure Monitor
Alertes du journal d'activité et Service HealthOpérations de gestion et incidents de la plateforme Azure
Groupes d'actionsNotifications (e-mail, SMS, application) et actions (webhook, Logic Apps, Functions, ITSM)
Classeurs (Workbooks)Rapports interactifs combinant métriques, KQL et paramètres

3. Fiche détaillée de chaque composant #

Rôle, contenu, types de données, rétention et interactions internes et externes de chaque brique du schéma.

Vue récapitulative #

Le tableau suivant résume chaque composant du schéma d'architecture ; les fiches qui suivent les détaillent une par une.

ComposantZoneSignauxOuvrable vers l'extérieur
Paramètres de diagnosticCollecteJournaux de ressources, métriques🔒 Non (interne)
AMA + règles DCRCollecteJournaux, compteurs, métriques🔒 Non (interne)
Azure Monitor MetricsStockageMétriques🟡 Indirectement
Managed PrometheusStockageMétriques Prometheus🟡 Indirectement
Log AnalyticsStockageJournaux, traces, événements🟡 Indirectement
Application InsightsAPMTraces, requêtes, exceptions, profils🟡 Indirectement
Managed GrafanaSortieVisualisation🟠 Oui
API de requêteSortieTous🟠 Oui
Alertes et groupes d'actionsSortieÉvénements🟠 Oui
Event HubsSortieJournaux et métriques en flux🟠 Oui
Valeurs indicatives : Les durées de rétention, limites et modèles de prix évoluent régulièrement : vérifiez-les dans la documentation officielle avant de dimensionner une architecture.

Paramètres de diagnostic (diagnostic settings) #

Le mécanisme qui active la collecte des journaux de ressources d'un service Azure et choisit leur destination.

CaractéristiqueDétail
RôleRouter les journaux de ressources, les métriques de plateforme et le journal d'activité vers une ou plusieurs destinations.
ContenuJusqu'à 5 paramètres par ressource ; choix des catégories de journaux (ou groupes allLogs, audit) et des métriques (AllMetrics).
Type de donnéesJournaux de ressources (requêtes, audits, erreurs), métriques de plateforme, journal d'activité de l'abonnement.
Stockage et rétentionAucun : simple routage.
Entrées (composants internes)Ressources Azure (App Service, Key Vault, SQL, Application Gateway…).
Sorties (composants internes)Log Analytics, compte de stockage, Event Hubs, solutions partenaires.
Interactions externesVia Event Hubs ou les services ISV natifs (Datadog, Elastic, Dynatrace, New Relic).
Ouvrable vers l'extérieur🔒 Non (interne) : il alimente des composants ouvrables mais n'expose rien lui-même.
Sécurité et accèsRôle Contributeur de supervision ; déploiement à grande échelle par Azure Policy (DeployIfNotExists).
CoûtGratuit ; on paie l'ingestion à destination.

Azure Monitor Agent (AMA) et règles de collecte (DCR) #

L'agent unique de collecte d'Azure Monitor, piloté par des règles de collecte de données.

CaractéristiqueDétail
RôleCollecter journaux et compteurs des machines virtuelles et serveurs, filtrer et transformer avant ingestion.
ContenuRègles DCR : sources (compteurs de performance, Syslog, événements Windows, fichiers texte et JSON, IIS), destinations, transformations KQL ; points de terminaison DCE ; API d'ingestion de journaux pour les applications.
Type de donnéesJournaux système et applicatifs, compteurs de performance, métriques invitées ; métriques Prometheus sur AKS (module ama-metrics).
Stockage et rétentionAucun : tampon local.
Entrées (composants internes)VM Azure, groupes identiques, serveurs sur site ou d'autres clouds via Azure Arc, clusters AKS.
Sorties (composants internes)Log Analytics, Azure Monitor Metrics, Managed Prometheus (espace Azure Monitor).
Interactions externesAucune directe : passer par Event Hubs ou les API.
Ouvrable vers l'extérieur🔒 Non (interne)
Sécurité et accèsIdentité managée de la machine ; association de règles DCR par Azure Policy.
CoûtGratuit ; ingestion facturée à destination (réduite par les transformations).

Azure Monitor Metrics #

Le magasin de métriques léger et rapide d'Azure Monitor.

CaractéristiqueDétail
RôleStocker les métriques numériques de toutes les ressources et alimenter alertes, autoscaling et tableaux de bord.
ContenuMétriques de plateforme (automatiques), métriques invitées et personnalisées ; dimensions ; Metrics Explorer.
Type de donnéesSéries temporelles, granularité d'une minute.
Stockage et rétentionConservées 93 jours.
Entrées (composants internes)Ressources Azure (automatique), AMA, Application Insights (métriques personnalisées).
Sorties (composants internes)Alertes de métriques, autoscaling, Managed Grafana, paramètres de diagnostic (export vers Log Analytics, stockage, Event Hubs).
Interactions externesLu par Grafana, Datadog, Dynatrace via l'API REST Metrics.
Ouvrable vers l'extérieur🟡 Indirectement : par l'API REST et l'export des paramètres de diagnostic.
Sécurité et accèsRBAC Azure (Lecteur de surveillance) ; identités managées pour les outils.
CoûtMétriques de plateforme gratuites ; métriques personnalisées et appels d'API facturés.

Azure Monitor managed service for Prometheus #

Le service Prometheus managé d'Azure, adossé à un espace de travail Azure Monitor.

CaractéristiqueDétail
RôleStocker et interroger en PromQL les métriques Prometheus, en particulier celles d'AKS et d'Azure Arc pour Kubernetes.
ContenuEspace de travail Azure Monitor, groupes de règles Prometheus (enregistrement et alerte), point de terminaison de requête PromQL.
Type de donnéesSéries temporelles Prometheus.
Stockage et rétentionConservées 18 mois.
Entrées (composants internes)Module ama-metrics d'AKS (cibles par défaut, ServiceMonitor, PodMonitor), remote write depuis Prometheus ou un collecteur.
Sorties (composants internes)Managed Grafana, alertes Prometheus vers les groupes d'actions.
Interactions externesTout outil compatible PromQL (Grafana auto-hébergé, KEDA) via le point de terminaison de requête.
Ouvrable vers l'extérieur🟡 Indirectement : par son API PromQL.
Sécurité et accèsEntra ID (identité managée ou principal de service) avec le rôle Lecteur de données de surveillance.
CoûtÉchantillons ingérés et requêtés.

Log Analytics #

Le cœur des journaux Azure Monitor : un espace de travail contenant des tables interrogées en KQL.

CaractéristiqueDétail
RôleStocker et analyser journaux, traces, événements et données de sécurité ; servir de base à Application Insights et Microsoft Sentinel.
ContenuTables (Syslog, Perf, Event, ContainerLogV2, AzureDiagnostics, tables App* d'Application Insights, tables personnalisées), requêtes KQL, classeurs, fonctions.
Type de donnéesEnregistrements structurés en colonnes (journaux, traces, métriques invitées, événements).
Stockage et rétentionRétention interactive de 30 jours par défaut (jusqu'à 2 ans) et rétention totale jusqu'à 12 ans ; plans de table Analytics, Basic et Auxiliary.
Entrées (composants internes)Paramètres de diagnostic, AMA et DCR, Application Insights, API d'ingestion de journaux.
Sorties (composants internes)Alertes de recherche de journaux, classeurs, Managed Grafana, règles d'export de données.
Interactions externesRègles d'export vers Event Hubs ou stockage ; requêtes par l'API Log Analytics depuis Grafana ou un SIEM.
Ouvrable vers l'extérieur🟡 Indirectement : par l'API de requête et les règles d'export.
Sécurité et accèsRBAC au niveau de l'espace, de la table ou de la ressource (contexte de ressource) ; liaisons privées.
CoûtIngestion par Go selon le plan de table, rétention au-delà de la période incluse, requêtes sur les plans Basic et Auxiliary.

Application Insights #

La brique APM d'Azure Monitor.

CaractéristiqueDétail
RôleSuivre la performance et la fiabilité des applications : requêtes, dépendances, exceptions, disponibilité, expérience utilisateur.
ContenuCarte de l'application, recherche de transactions, analyse des défaillances et des performances, métriques en direct, tests de disponibilité, Profiler, Snapshot Debugger.
Type de donnéesRequêtes, dépendances, exceptions, traces, vues de pages, métriques personnalisées, résultats de disponibilité.
Stockage et rétentionDans l'espace Log Analytics associé (tables AppRequests, AppDependencies, AppExceptions…), selon sa rétention.
Entrées (composants internes)Distro Azure Monitor OpenTelemetry, agent Java, SDK JavaScript, instrumentation automatique d'App Service.
Sorties (composants internes)Log Analytics, Azure Monitor Metrics (métriques standard), alertes.
Interactions externesLes données OpenTelemetry peuvent être dupliquées vers un APM tiers par le collecteur.
Ouvrable vers l'extérieur🟡 Indirectement : par l'API Log Analytics.
Sécurité et accèsChaîne de connexion ; authentification Entra ID de l'ingestion possible ; RBAC.
CoûtComme Log Analytics (ingestion) ; l'échantillonnage réduit le volume.

Azure Managed Grafana #

Une instance Grafana gérée par Microsoft, intégrée à Entra ID.

CaractéristiqueDétail
RôleVisualiser métriques, journaux et traces de plusieurs sources dans des tableaux de bord partagés.
ContenuTableaux de bord prêts à l'emploi pour Azure et AKS, sources Azure Monitor, Prometheus, Azure Data Explorer et plugins.
Type de donnéesNe stocke pas de télémétrie.
Stockage et rétentionTableaux de bord et configuration.
Entrées (composants internes)Azure Monitor Metrics, Managed Prometheus, Log Analytics, Application Insights.
Sorties (composants internes)Alertes et notifications Grafana.
Interactions externesPeut interroger des sources hors Azure (Prometheus, Loki, Datadog) via les plugins.
Ouvrable vers l'extérieur🟠 Oui : interface web et API Grafana, avec accès public ou point de terminaison privé.
Sécurité et accèsEntra ID, rôles Grafana Admin, Editor, Viewer ; identité managée pour lire les données.
CoûtPar instance et par utilisateur actif (niveau Standard).

API de requête (Azure Monitor, Log Analytics, Prometheus) #

Les points de terminaison qui exposent les données d'Azure Monitor en lecture.

CaractéristiqueDétail
RôlePermettre aux outils, scripts et tableaux de bord d'interroger métriques et journaux.
ContenuAPI REST Azure Monitor Metrics, API de requête Log Analytics (KQL), API HTTP Prometheus de l'espace Azure Monitor, Azure Resource Graph ; bibliothèques Azure Monitor Query.
Type de donnéesRéponses JSON.
Entrées (composants internes)Azure Monitor Metrics, Log Analytics, Managed Prometheus.
Sorties (composants internes)Managed Grafana et tout client autorisé.
Interactions externesGrafana auto-hébergé ou Cloud, SIEM, outils d'observabilité tiers, scripts.
Ouvrable vers l'extérieur🟠 Oui : points de terminaison publics ou privés (Azure Monitor Private Link Scope).
Sécurité et accèsJeton Entra ID (principal de service ou identité managée) ; RBAC en lecture.
CoûtGratuit pour la plupart des requêtes ; facturées sur les tables Basic et Auxiliary.

Alertes et groupes d'actions #

Le moteur d'alerte d'Azure Monitor et ses canaux de notification et d'action.

CaractéristiqueDétail
RôleDétecter des conditions sur les données et notifier ou agir automatiquement.
ContenuAlertes de métriques (seuils statiques ou dynamiques), de recherche de journaux (KQL), Prometheus, du journal d'activité et de Service Health ; règles de traitement des alertes ; schéma d'alerte commun.
Type de donnéesInstances d'alerte (déclenchée, résolue) au schéma JSON commun.
Entrées (composants internes)Azure Monitor Metrics, Log Analytics, Managed Prometheus, journal d'activité.
Sorties (composants internes)Groupes d'actions : runbooks Automation, Logic Apps, Azure Functions.
Interactions externesE-mail, SMS, notifications vocales et mobiles, webhooks, connecteurs ITSM (ServiceNow), PagerDuty, Teams.
Ouvrable vers l'extérieur🟠 Oui : webhooks et notifications sortants.
Sécurité et accèsRôle Contributeur de surveillance ; webhooks sécurisés (authentification Entra ID possible).
CoûtPar règle d'alerte et par notification (SMS, appels).

Azure Event Hubs #

La plateforme de diffusion en continu d'Azure, utilisée comme passerelle d'export de la télémétrie.

CaractéristiqueDétail
RôleRecevoir en continu journaux et métriques depuis Azure Monitor et les mettre à disposition de consommateurs externes.
ContenuEspace de noms, hubs d'événements, partitions, groupes de consommateurs ; protocole AMQP et compatibilité Apache Kafka.
Type de donnéesÉvénements JSON (enregistrements des paramètres de diagnostic, exports Log Analytics).
Stockage et rétentionRétention de 1 à 7 jours (Standard), jusqu'à 90 jours (Premium, Dedicated) ; capture possible vers le stockage.
Entrées (composants internes)Paramètres de diagnostic, règles d'export de Log Analytics, journal d'activité.
Sorties (composants internes)Azure Functions, Stream Analytics, stockage (Capture).
Interactions externesSplunk (module complémentaire), Elastic Agent et Logstash, Datadog (fonction de transfert), Sumo Logic, IBM QRadar, consommateurs Kafka.
Ouvrable vers l'extérieur🟠 Oui : c'est le principal canal d'export en continu vers l'extérieur.
Sécurité et accèsSignatures d'accès partagé (SAS) ou Entra ID ; points de terminaison privés et règles de pare-feu.
CoûtUnités de débit ou de traitement et volume d'événements.

4. Compatibilité OpenTelemetry #

Distro Azure Monitor OpenTelemetry et collecteur.

Instrumenter avec la distro Azure Monitor OpenTelemetry #

Microsoft recommande désormais OpenTelemetry pour Application Insights : la distro Azure Monitor OpenTelemetry (.NET, Java, Node.js, Python) regroupe le SDK, l'instrumentation automatique des bibliothèques courantes et l'exportateur Azure Monitor. Les traces, métriques et journaux OpenTelemetry deviennent des requêtes, dépendances, traces et métriques personnalisées dans Application Insights.

pip install azure-monitor-opentelemetry

# app.py
from azure.monitor.opentelemetry import configure_azure_monitor
configure_azure_monitor()   # lit APPLICATIONINSIGHTS_CONNECTION_STRING

Avec un collecteur OpenTelemetry, l'exportateur azuremonitor de la distribution contrib envoie traces, métriques et journaux vers Application Insights ; les métriques peuvent aussi partir en remote write vers Managed Prometheus. Azure Monitor propose par ailleurs l'ingestion OTLP native, en cours de déploiement : vérifiez sa disponibilité dans votre région avant de vous y appuyer.

À savoir : Pour Java, l'agent Application Insights 3.x est lui-même construit sur OpenTelemetry : il instrumente sans modification de code et accepte les API OpenTelemetry pour la télémétrie personnalisée.

5. Interconnexions avec les produits externes #

Exporter et intégrer.

Envoyer les données Azure ailleurs #

MécanismeDonnéesDestinations
Paramètres de diagnostic vers Event HubsJournaux de ressources, métriques, journal d'activitéSplunk, Elastic, Datadog, IBM QRadar, Sumo Logic
Services ISV natifs AzureMétriques et journaux par intégration nativeDatadog, Dynatrace, New Relic, Elastic Cloud, Grafana
Règles d'exportation Log AnalyticsTables Log Analytics en continuCompte de stockage, Event Hubs
Microsoft SentinelJournaux de sécurité dans Log AnalyticsSIEM, détection et réponse
GrafanaPlugin Azure Monitor (Metrics, Logs, Traces, Resource Graph)Grafana Cloud ou auto-hébergé
Bonne Pratique : Pour un outil tiers, passez par Event Hubs plutôt que par l'interrogation des API : le flux est continu, scalable et indépendant du nombre de ressources.

6. Coûts et bonnes pratiques #

Maîtriser l'ingestion.

Bonnes pratiques #

  • Centraliser les journaux dans peu d'espaces Log Analytics (par environnement ou par région), avec un contrôle d'accès par ressource.
  • Choisir le plan de table adapté (Analytics, Basic, Auxiliary) et filtrer avec des transformations DCR.
  • Déployer paramètres de diagnostic et règles DCR par Azure Policy pour couvrir automatiquement les nouvelles ressources.
  • Instrumenter avec la distro OpenTelemetry pour rester portable.
  • Échantillonner la télémétrie d'Application Insights sur les applications à fort trafic.
  • Fixer un plafond journalier et des alertes de coût sur l'ingestion.
Erreur courante : Collecter « tous les journaux » de toutes les ressources dans le plan Analytics fait exploser la facture : commencez par les catégories utiles.

Articles liés

Comprendre Azure : régions, hiérarchie des ressources, outils et tarification

Les bases de Microsoft Azure : géographies, régions, paires de régions et zones de disponibilité, hiérarchie …

Microsoft Entra ID, RBAC et Azure Policy : identités, droits et gouvernance

Gérer identités et accès sur Azure : Microsoft Entra ID (utilisateurs, groupes, MFA, accès conditionnel), ide…

Le réseau Azure : VNet, NSG, peering, équilibrage et connectivité hybride

Concevoir le réseau sur Azure : réseaux virtuels et sous-réseaux, groupes de sécurité réseau (NSG), peering e…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !