Introduction
Azure Monitor est essentiel pour observer les performances et la santé des ressources Azure à grande échelle. Dans ce tutoriel avancé, nous allons configurer un environnement complet incluant Log Analytics, des alertes multi-conditions et des dashboards dynamiques. Vous apprendrez à collecter des métriques personnalisées et à automatiser les réponses aux incidents. Ce guide s'adresse aux ingénieurs DevOps et SRE cherchant à industrialiser leur monitoring.
Prérequis
- Compte Azure avec droits Owner sur un abonnement
- Azure CLI 2.60+ installé
- Connaissances solides de KQL et PowerShell
- Ressource Application Insights existante
Créer le workspace Log Analytics
#!/bin/bash
az monitor log-analytics workspace create \
--resource-group rg-monitoring \
--workspace-name law-prod-advanced \
--location westeurope \
--sku PerGB2018Cette commande crée un workspace Log Analytics optimisé pour la rétention longue durée et l'analyse avancée des logs.
Configurer la collecte de données
{
"properties": {
"dataSources": {
"performanceCounters": [{
"streams": ["Microsoft-InsightsMetrics"],
"samplingFrequencyInSeconds": 60,
"name": "perfCounters"
}]
},
"destinations": {
"logAnalytics": [{
"workspaceResourceId": "/subscriptions/xxx/resourceGroups/rg-monitoring/providers/Microsoft.OperationalInsights/workspaces/law-prod-advanced"
}]
}
}
}Le Data Collection Rule définit précisément les compteurs de performance envoyés vers le workspace, évitant la surcharge de données inutiles.
Créer une alerte multi-conditions
$actionGroup = New-AzActionGroup -ResourceGroupName rg-monitoring -Name ag-critical -ShortName critical
$condition = New-AzMetricAlertRuleV2Criteria -MetricName "Percentage CPU" -Operator GreaterThan -Threshold 85 -TimeAggregation Average
New-AzMetricAlertRuleV2 -Name "HighCPU-Alert" -ResourceGroupName rg-monitoring -TargetResourceId "/subscriptions/xxx/..." -Condition $condition -WindowSize 00:05:00 -Frequency 00:01:00 -ActionGroupId $actionGroup.Id -Severity 1Ce script PowerShell crée une alerte composite avec action group pour notification immédiate via Teams ou email.
Requête KQL avancée
InsightsMetrics
| where TimeGenerated > ago(1h)
| where Name == "Percentage CPU"
| summarize avg(Val) by bin(TimeGenerated, 5m), Computer
| where avg_Val > 80
| render timechartCette requête KQL optimise l'analyse des métriques CPU avec agrégation temporelle et visualisation directe dans les dashboards.
Dashboard avec template ARM
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [{
"type": "Microsoft.Portal/dashboards",
"apiVersion": "2022-12-01-preview",
"name": "monitoring-advanced-dashboard",
"location": "westeurope",
"properties": {
"lenses": {
"0": {
"parts": [{
"position": {"x": 0, "y": 0, "rowSpan": 4, "colSpan": 6},
"metadata": {"type": "Extension/HubsExtension/PartType/MonitorChartPart"}
}]
}
}
}
}]
}Ce template ARM déploie un dashboard prêt à l'emploi avec des visualisations de métriques clés pour les équipes opérationnelles.
Bonnes pratiques
- Toujours utiliser des Data Collection Rules pour filtrer les données
- Configurer des alertes avec seuils dynamiques basés sur le comportement historique
- Centraliser les logs dans un workspace unique par environnement
- Ajouter des tags systématiques sur toutes les ressources monitorées
- Automatiser le déploiement via Infrastructure as Code
Erreurs courantes à éviter
- Oublier de lier le workspace aux ressources via DCR (aucune donnée collectée)
- Créer trop d'alertes statiques sans corrélation
- Ignorer la rétention et les coûts de stockage Log Analytics
- Ne pas tester les requêtes KQL avec de grands volumes de données
Pour aller plus loin
Approfondissez vos compétences avec nos formations Azure avancées.