Surveillance de l’équilibreur de charge

Lorsque vous avez des applications critiques et des processus métier basés sur des ressources Azure, vous voulez superviser ces ressources pour connaître leur disponibilité, leurs performances et leur fonctionnement.

Cet article décrit les données de surveillance générées par Load Balancer. L’Équilibreur de charge utilise Azure Monitor. Si vous n’êtes pas familiarisé avec les fonctionnalités d’Azure Monitor communes à tous les services Azure qui l’utilisent, consultez Supervision de ressources Azure avec Azure Monitor.

Insights de l’équilibreur de charge

Dans Azure, certains services disposent d’un tableau de bord de surveillance prédéfini spécial dans le Portail Azure qui constitue un point de départ pour la surveillance de votre service. Ces tableaux de bord spéciaux sont appelés « insights ».

Les insights de Load Balancer fournissent :

  • Vue des dépendances fonctionnelles
  • Tableau de bord des métriques
  • Onglet Overview
  • Onglet Disponibilité des front-ends et des back-ends
  • Onglet Débit de données
  • Distribution des flux
  • Moniteurs de connexion
  • Définitions de métriques

Pour plus d’informations sur les insights de l’Équilibreur de charge, consultez Utilisation des insights pour surveiller et configurer votre Azure Load Balancer

Données de surveillance

L’Équilibreur de charge collecte les mêmes types de données de surveillance que d’autres ressources Azure, lesquelles sont décrites dans Supervision des données à partir des ressources Azure.

Pour obtenir des informations détaillées sur les métriques et les métriques de journaux créées par Load Balancer, consultez Informations de référence sur les données de surveillance de Load Balancer.

Load Balancer fournit des données de monitoring via :

Collecte et routage

Les métriques de plateforme et le journal d’activité sont collectés et stockés automatiquement, mais ils peuvent être acheminés vers d’autres emplacements à l’aide d’un paramètre de diagnostic.

Les journaux de ressources ne sont pas collectés ni stockés tant que vous n’avez pas créé un paramètre de diagnostic et que vous ne les acheminez pas vers un ou plusieurs emplacements.

Création d’un paramètre de diagnostic

Vous pouvez créer un paramètre de diagnostic avec le portail Azure, PowerShell ou l’interface Azure CLI.

Pour obtenir des instructions générales, consultez Créer un paramètre de diagnostic pour collecter des journaux et métriques de plateforme dans Azure.

Lorsque vous créez un paramètre de diagnostic, vous spécifiez les catégories de journaux à collecter. La catégorie de Load Balancer est AllMetrics

Portail

  1. Connectez-vous au portail Azure.

  2. Dans la zone de recherche située en haut du portail, entrez Équilibreur de charge.

  3. Sélectionnez Équilibreurs de charge dans les résultats de la recherche.

  4. Sélectionnez votre équilibreur de charge. Dans cet exemple, on a utilisé myLoadBalancer.

  5. Dans la section Surveillance de myLoadBalancer, sélectionnez Paramètres de diagnostic.

  6. Dans Paramètres de diagnostic, sélectionnez +Ajouter un paramètre de diagnostic.

  7. Entrez ou sélectionnez les informations suivantes dans Paramètre de diagnostic.

    Paramètre Valeur
    Nom du paramètre de diagnostic Entrez un nom pour le paramètre de diagnostic.
    Détails de la catégorie
    Métrique Sélectionnez AllMetrics.
  8. Sélectionnez les Détails de la destination. Voici certaines options de destination :

    • Envoyer à Log Analytics
      • Sélectionnez l’Abonnement et l’Espace de travail Log Analytics.
    • Archiver dans un compte de stockage
      • Sélectionnez l’Abonnement et le Compte de stockage.
    • Diffuser vers un hub d’événements
      • Sélectionnez l’Abonnement, l’Espace de noms Event hub, le Nom de l’Event hub (facultatif) et le Nom de la stratégie de l’Event hub
  9. Sélectionnez Enregistrer.

PowerShell

Connectez-vous à Azure PowerShell :

Connect-AzAccount 

Espace de travail Log Analytics

Pour envoyer des journaux de ressources à un espace de travail Log Analytics, entrez ces commandes. Remplacez les valeurs entre parenthèses par vos propres valeurs :

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the workspace in a variable. ##
$wspara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-log-analytics-workspace-name>
}
$ws = Get-AzOperationalInsightsWorkspace @wspara
    
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.id `
    -Name <your-diagnostic-setting-name> `
    -Enabled $true `
    -MetricCategory 'AllMetrics' `
    -WorkspaceId $ws.ResourceId

Compte de stockage

Pour envoyer des journaux de ressources à un compte de stockage, entrez ces commandes. Remplacez les valeurs entre parenthèses par vos propres valeurs :

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the storage account in a variable. ##
$storpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-storage-account-name>
}
$storage = Get-AzStorageAccount @storpara
    
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.id `
    -Name <your-diagnostic-setting-name> `
    -StorageAccountId $storage.id `
    -Enabled $true `
    -MetricCategory 'AllMetrics'

Event Hub

Pour envoyer des journaux de ressources à un espace de noms Event Hub, entrez ces commandes. Remplacez les valeurs entre parenthèses par vos propres valeurs :

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the event hub in a variable. ##
$hubpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-event-hub-name>
}
$eventhub = Get-AzEventHubNamespace @hubpara

## Place the event hub authorization rule in a variable. ##    
$hubrule = @{
    ResourceGroupName = 'myResourceGroup'
    Namespace = 'myeventhub8675'
}
$eventhubrule = Get-AzEventHubAuthorizationRule @hubrule

## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.Id `
    -Name 'myDiagSetting-event'`
    -EventHubName $eventhub.Name `
    -EventHubAuthorizationRuleId $eventhubrule.Id `
    -Enabled $true `
    -MetricCategory 'AllMetrics'

Azure CLI

Connectez-vous à Azure CLI :

az login

Espace de travail Log Analytics

Pour envoyer des journaux de ressources à un espace de travail Log Analytics, entrez ces commandes. Remplacez les valeurs entre parenthèses par vos propres valeurs :

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

wsid=$(az monitor log-analytics workspace show \
    --resource-group <your-resource-group> \
    --workspace-name <your-log-analytics-workspace-name> \
    --query id \
    --output tsv)
    
az monitor diagnostic-settings create \
    --name <your-diagnostic-setting-name> \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --workspace $wsid

Compte de stockage

Pour envoyer des journaux de ressources à un compte de stockage, entrez ces commandes. Remplacez les valeurs entre parenthèses par vos propres valeurs :

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

storid=$(az storage account show \
        --name <your-storage-account-name> \
        --resource-group <your-resource-group> \
        --query id \
        --output tsv)
    
az monitor diagnostic-settings create \
    --name <your-diagnostic-setting-name> \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --storage-account $storid

Event Hub

Pour envoyer des journaux de ressources à un espace de noms Event Hub, entrez ces commandes. Remplacez les valeurs entre parenthèses par vos propres valeurs :

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

az monitor diagnostic-settings create \
    --name myDiagSetting-event \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --event-hub-rule /subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.EventHub/namespaces/<your-event-hub-namespace>/authorizationrules/RootManageSharedAccessKey

Les métriques et les journaux que vous pouvez collecter sont décrits dans les sections suivantes.

Analyse des métriques

Vous pouvez analyser les métriques de l’Équilibreur de charge avec les métriques d’autres services Azure à l’aide de l’explorateur de métriques en ouvrant Métriques dans le menu Azure Monitor. Consultez Analyser les métriques avec l’Explorateur de métriques Azure Monitor pour plus d’informations sur l’utilisation de cet outil.

Pour obtenir la liste des métriques de plateforme collectées pour l’Équilibreur de charge, consultez Surveillance des métriques de référence des données de Load Balancer

Pour référence, vous pouvez voir une liste de toutes les métriques de ressources prises en charge dans Azure Monitor.

Analyse des journaux d’activité

Les données des journaux Azure Monitor sont stockées dans des tables, chacune ayant son propre ensemble de propriétés uniques.

Le Journal d’activité est un type de journal de plateforme qui fournit des insights dans les événements de niveau abonnement. Vous pouvez l’afficher indépendamment ou le router vers Azure Monitor Logs, où vous pouvez effectuer des requêtes bien plus complexes à l’aide de Log Analytics.

Pour obtenir la liste des tables utilisées par les Journaux de surveillance Azure Monitor et interrogeables par Log Analytics, consultez Informations de référence sur les données de surveillance de l’Équilibreur de charge

Analyse du trafic de l’équilibreur de charge avec les journaux de flux NSG

Les journaux de flux NSG sont une fonctionnalité d’Azure Network Watcher qui vous permet de journaliser des informations sur le trafic IP circulant dans un groupe de sécurité réseau. Les données de flux sont envoyées au stockage Azure à partir duquel vous pouvez accéder aux données et les exporter vers n’importe quel outil de visualisation, solution de gestion des informations et des événements de sécurité (SIEM) ou système de détection des intrusions (IDS) de votre choix.

Les journaux de flux NSG peuvent servir à analyser le trafic transitant par l’équilibreur de charge. Les journaux de flux NSG ne contiennent pas l’adresse IP front-end des équilibreurs de charge. Pour analyser le trafic qui circule dans un équilibreur de charge, les journaux de flux NSG doivent être filtrés par les adresses IP privées des membres du pool back-end de l’équilibreur de charge.

Alertes

Azure Monitor vous avertit de façon proactive lorsque des conditions significatives sont détectées dans vos données de surveillance. Elles permettent d’identifier et de résoudre les problèmes affectant votre système avant que vos clients ne les remarquent. Vous pouvez définir des alertes sur des métriques, sur des journaux et sur le journal d’activité. Les différents types d’alertes présentent des avantages et des inconvénients

Si vous créez ou exécutez une application qui utilise Load Balancer, Application Insights d’Azure Monitor vous propose d’autres types d’alertes.

La table suivante répertorie les règles d’alerte courantes et recommandées pour Load Balancer.

Type d’alerte Condition Description
Règle d’équilibrage de charge indisponible en raison de machines virtuelles indisponibles Si la disponibilité du chemin de données fractionnée par l’adresse IP du serveur frontal et le port frontend (toutes les valeurs connues et futures) est égale à zéro et, dans une alerte secondaire, l’état de la sonde d’intégrité est égal à zéro, alors déclenchez des alertes Ces alertes déterminent si la disponibilité du chemin des données pour les règles d’équilibrage de charge configurées ne traite pas le trafic en raison de la détection par la sonde d’intégrité configurée de toutes les machines virtuelles du pool de back-ends associé. Consultez le guide de résolution des problèmes de l’équilibreur de charge pour identifier la cause racine éventuelle.
Disponibilité des machines virtuelles considérablement faible Si l’état de la sonde d’intégrité réparti entre « IP du back-end » et « Port du back-end » est égal au pourcentage d’exploration défini par l’utilisateur (c’est-à-dire, si 25 % sont explorés), vous devez déclencher une alerte Cette alerte détermine s’il y a moins de machines virtuelles que nécessaire pour traiter le trafic
Échec des connexions sortantes au point de terminaison Internet Si le nombre de connexions SNAT filtré à l’État de la connexion = échec supérieur à zéro, alors déclenchez l’alerte Cette alerte se déclenche lorsque les ports SNAT sont épuisés et que les machines virtuelles ne parviennent pas à établir des connexions sortantes.
Approche de l’épuisement SNAT Si les ports SNAT utilisés sont supérieurs au nombre défini par l’utilisateur, alors déclenchez l’alerte Cette alerte nécessite une configuration sortante statique où le même nombre de ports est toujours alloué. Elle se déclenche lorsqu’un pourcentage des ports alloués est utilisé.

Étapes suivantes