Architecture de monitoring Azure
Azure Monitor collecte deux types de données fondamentaux :
- Métriques : valeurs numériques horodatées (CPU %, latence, connexions actives) stockées 93 jours
- Logs : données structurées envoyées vers un espace de travail Log Analytics, interrogeables via KQL
1. Connecter les serveurs on-premises
# Déployer l'agent Azure Monitor (AMA) via Arc sur un serveur on-premises
az connectedmachine connect
--name "SRV-PROD01"
--resource-group "rg-monitoring"
--location "westeurope"
--correlation-id $(New-Guid)
# Installer l'extension Azure Monitor Agent
az connectedmachine extension create
--name AzureMonitorWindowsAgent
--publisher Microsoft.Azure.Monitor
--type AzureMonitorWindowsAgent
--machine-name "SRV-PROD01"
--resource-group "rg-monitoring"
--location "westeurope"
2. Créer une règle de collecte de données (DCR)
# Associer une DCR qui collecte les événements Windows Security et System
az monitor data-collection rule association create
--name "dcr-windows-servers"
--resource "/subscriptions/.../resourceGroups/rg-monitoring/providers/Microsoft.HybridCompute/machines/SRV-PROD01"
--rule-id "/subscriptions/.../resourceGroups/rg-monitoring/providers/Microsoft.Insights/dataCollectionRules/dcr-prod"
3. Requêtes KQL essentielles
// Taux d'erreur HTTP 5xx sur les 24 dernières heures (App Service)
AppServiceHTTPLogs
| where TimeGenerated > ago(24h)
| where ScStatus >= 500
| summarize Errors = count() by bin(TimeGenerated, 1h), CsUriStem
| order by TimeGenerated desc
// Connexions RDP échouées sur les DCs (Event ID 4625)
SecurityEvent
| where TimeGenerated > ago(7d)
| where EventID == 4625
| where LogonType == 10 // Remote Interactive
| summarize Tentatives = count() by IpAddress, Account, Computer
| where Tentatives > 5
| order by Tentatives desc
// Utilisation CPU > 90% sur les VMs Azure
Perf
| where TimeGenerated > ago(1h)
| where ObjectName == "Processor" and CounterName == "% Processor Time"
| where CounterValue > 90
| summarize AvgCPU = avg(CounterValue) by Computer, bin(TimeGenerated, 5m)
| order by TimeGenerated desc
// Espace disque critique (< 10 Go libres)
Perf
| where TimeGenerated > ago(30m)
| where CounterName == "Free Megabytes" and ObjectName == "LogicalDisk"
| where InstanceName != "_Total" and InstanceName != "HarddiskVolume*"
| where CounterValue < 10240
| project TimeGenerated, Computer, Disk = InstanceName,
LibreGo = round(CounterValue / 1024, 1)
| order by LibreGo asc
4. Alertes intelligentes (Smart Alerts)
# Créer une alerte sur le CPU via PowerShell Az
$criteria = New-AzMetricAlertRuleV2Criteria `
-MetricName "Percentage CPU" `
-DimensionSelection @() `
-TimeAggregation Average `
-Operator GreaterThan `
-Threshold 85
Add-AzMetricAlertRuleV2 `
-Name "alert-cpu-eleve" `
-ResourceGroupName "rg-monitoring" `
-WindowSize 00:05:00 `
-Frequency 00:01:00 `
-TargetResourceId "/subscriptions/.../virtualMachines/SRV-PROD01" `
-Condition $criteria `
-ActionGroupId "/subscriptions/.../actionGroups/ag-ops-team" `
-Severity 2
5. Automatiser la réponse : Action Groups + Logic Apps
Chaînez une alerte à une Logic App pour automatiser la réponse :
- Alerte CPU élevé → Logic App → scale-out du VMSS automatiquement
- Alerte disque critique → Logic App → notification Teams + ticket ServiceNow
- Alerte connexion suspecte → Logic App → désactivation du compte Azure AD concerné
6. Workbooks : tableaux de bord dynamiques
Les Azure Monitor Workbooks permettent de combiner métriques, logs KQL et paramètres interactifs dans un tableaux de bord partageable. Utilisez les templates prêts à l'emploi :
- VM Insights : performances et dépendances des VMs
- Active Directory Replication Status : santé de la réplication AD
- Failure Analysis : taux d'erreur applicatif multi-sources
Tableau de bord de coûts monitoring
| Source de données | Rétention défaut | Coût (Go/mois) |
|---|---|---|
| Métriques Azure natives | 93 jours | Inclus |
| Log Analytics (ingestion) | 30 jours | ~2,30 €/Go |
| Rétention étendue | Jusqu'à 2 ans | ~0,10 €/Go/mois |
| Application Insights | 90 jours | 5 Go/mois gratuits |
Conclusion
Azure Monitor est l'épine dorsale de la supervision hybride. En combinant AMA, Log Analytics, KQL et les alertes intelligentes, vous passez d'une supervision réactive à une approche proactive et automatisée, réduisant le MTTR et améliorant la fiabilité de votre infrastructure.