Überwachen von Load Balancer

Wenn Sie über unternehmenskritische Anwendungen und Geschäftsprozesse verfügen, die auf Azure-Ressourcen beruhen, sollten Sie Verfügbarkeit, Leistung und Betrieb dieser Ressourcen überwachen.

In diesem Artikel werden die von Load Balancer generierten Überwachungsdaten erläutert. Load Balancer verwendet Azure Monitor. Wenn Sie nicht mit den Features von Azure Monitor vertraut sind, die Bestandteil aller Azure-Dienste sind, für die Azure Monitor verwendet wird, lesen Sie den Artikel Überwachen von Azure-Ressourcen mit Azure Monitor.

Erkenntnisse aus Load Balancer

Für einige Dienste in Azure enthält das Azure-Portal ein spezielles, vorgefertigtes Überwachungsdashboard, das den Ausgangspunkt für die Überwachung Ihres Diensts bildet. Diese speziellen Dashboards werden als „Insights“ (Erkenntnisse) bezeichnet.

Load Balancer-Erkenntnisse:

  • Ansicht der funktionalen Abhängigkeiten
  • Metrikdashboard
  • Registerkarte „Übersicht“
  • Registerkarten „Front-End-Verfügbarkeit“ und „Back-End-Verfügbarkeit“
  • Registerkarte „Datendurchsatz“
  • Flowverteilung
  • Verbindungsmonitore
  • Metrikdefinitionen

Weitere Informationen zu Load Balancer-Erkenntnissen finden Sie unter Verwenden von Erkenntnissen zum Überwachen und Konfigurieren Ihrer Azure Load Balancer-Instanz.

Überwachungsdaten

Load Balancer erfasst dieselben Arten von Überwachungsdaten wie andere Azure-Ressourcen, die unter Überwachungsdaten von Azure-Ressourcen beschrieben werden.

Ausführliche Informationen zu den von Load Balancer erstellten Metriken und Protokollmetriken finden Sie in der Referenz für Load Balancer-Überwachungsdaten.

Load Balancer stellt mit den folgenden Mitteln weitere Überwachungsdaten bereit:

Sammlung und Routing

Plattformmetriken und das Aktivitätsprotokoll werden automatisch erfasst und gespeichert, können jedoch mithilfe einer Diagnoseeinstellung an andere Speicherorte weitergeleitet werden.

Ressourcenprotokolle werden erst erfasst und gespeichert, nachdem Sie eine Diagnoseeinstellung erstellt und die Protokolle an mindestens einen Speicherort weitergeleitet haben.

Erstellen einer Diagnoseeinstellung

Sie können eine Diagnoseeinstellung über das Azure-Portal, PowerShell oder die Azure CLI erstellen.

Eine allgemeine Anleitung finden Sie unter Erstellen einer Diagnoseeinstellung zum Erfassen von Plattformprotokollen und Metriken in Azure.

Wenn Sie eine Diagnoseeinstellung erstellen, legen Sie fest, welche Kategorien von Protokollen gesammelt werden sollen. Die Kategorie für Load Balancer lautet AllMetrics.

Portal

  1. Melden Sie sich beim Azure-Portal an.

  2. Geben Sie am oberen Rand des Portals den Suchbegriff Lastenausgleich in das Suchfeld ein.

  3. Wählen Sie in den Suchergebnissen Lastenausgleichsmodule aus.

  4. Wählen Sie Ihren Lastenausgleich aus. Für dieses Beispiel wird myLoadBalancer verwendet.

  5. Wählen Sie im Abschnitt Überwachung von myLoadBalancer die Option Diagnoseeinstellungen aus.

  6. Wählen Sie auf der Seite Diagnoseeinstellungen den Eintrag + Diagnoseeinstellung hinzufügen aus.

  7. Geben Sie die folgenden Informationen für die Diagnoseeinstellung an, oder wählen Sie sie aus.

    Einstellung Wert
    Name der Diagnoseeinstellung Geben Sie einen Namen für die Diagnoseeinstellung ein.
    Kategoriedetails
    Metrik Wählen Sie AllMetrics aus.
  8. Wählen Sie die Zieldetails aus. Auswahl der Zieloptionen:

    • An Log Analytics senden
      • Wählen Sie das Abonnement und den Log Analytics-Arbeitsbereich aus.
    • In einem Speicherkonto archivieren
      • Wählen Sie das Abonnement und das Speicherkonto aus.
    • An einen Event Hub streamen
      • Wählen Sie das Abonnement, den Event Hub-Namespace, den Event Hub-Namen (optional) und den Event Hub-Richtliniennamen aus.
  9. Wählen Sie Speichern aus.

PowerShell

Melden Sie sich bei Azure PowerShell an:

Connect-AzAccount 

Log Analytics-Arbeitsbereich

Um Ressourcenprotokolle an einen Log Analytics-Arbeitsbereich zu senden, geben Sie diese Befehle ein. Ersetzen Sie die Werte in Klammern durch Ihre Werte:

## 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

Speicherkonto

Geben Sie diese Befehle ein, um Ressourcenprotokolle an ein Speicherkonto zu senden. Ersetzen Sie die Werte in Klammern durch Ihre Werte:

## 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

Geben Sie diese Befehle ein, um Ressourcenprotokolle an einen Event Hub-Namespace zu senden. Ersetzen Sie die Werte in Klammern durch Ihre Werte:

## 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

Anmelden bei der Azure CLI an:

az login

Log Analytics-Arbeitsbereich

Um Ressourcenprotokolle an einen Log Analytics-Arbeitsbereich zu senden, geben Sie diese Befehle ein. Ersetzen Sie die Werte in Klammern durch Ihre Werte:

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

Speicherkonto

Geben Sie diese Befehle ein, um Ressourcenprotokolle an ein Speicherkonto zu senden. Ersetzen Sie die Werte in Klammern durch Ihre Werte:

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

Geben Sie diese Befehle ein, um Ressourcenprotokolle an einen Event Hub-Namespace zu senden. Ersetzen Sie die Werte in Klammern durch Ihre Werte:

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

In den folgenden Abschnitten werden die Metriken und Protokolle behandelt, die Sie erfassen können.

Analysieren von Metriken

Sie können im Metrik-Explorer Metriken für Load Balancer mithilfe von Metriken aus anderen Azure-Diensten analysieren, indem Sie im Menü Azure Monitor die Option Metriken öffnen. Ausführliche Informationen zur Verwendung dieses Tools finden Sie unter Analysieren von Metriken mit Azure Metrik-Explorer.

Eine Liste der Plattformmetriken, die für die Load Balancer gesammelt wurden, finden Sie unter Referenzmetriken zur Überwachung von Load Balancer-Daten.

Sie können zur Referenz auf eine Liste aller in Azure Monitor unterstützter Ressourcenmetriken anzeigen.

Analysieren von Protokollen

Daten in Azure Monitor-Protokollen werden in Tabellen gespeichert, wobei jede Tabelle ihren eigenen Satz an eindeutigen Eigenschaften hat.

Das Aktivitätsprotokoll ist eine Art von Plattformprotokoll, das Erkenntnisse zu Ereignissen auf Abonnementebene liefert. Sie können es unabhängig anzeigen oder an Azure Monitor-Protokolle weiterleiten, in denen Sie mithilfe von Log Analytics viel komplexere Abfragen durchführen können.

Eine Liste der Tabellen, die von Azure Monitor-Protokollen verwendet und von Log Analytics abgefragt werden können, finden Sie in der Referenz zur Überwachung von Load Balancer-Daten.

Analysieren des Lastenausgleichs-Datenverkehrs mit NSG-Datenflussprotokollen

NSG-Datenflussprotokolle sind ein Feature von Azure Network Watcher, mit dem Sie Informationen zu IP-Datenverkehr protokollieren können, der eine Netzwerksicherheitsgruppe (NSG) durchläuft. Flowdaten werden an Azure Storage gesendet. Von dort aus können Sie auf die Daten zugreifen und sie in jedes Visualisierungstool, eine SIEM-Lösung (Security Information and Event Management) oder ein Intrusion-Detection-System (IDS, Angriffserkennungssystem) Ihrer Wahl exportieren.

NSG-Datenflussprotokolle können verwendet werden, um den Datenverkehr zu analysieren, der durch den Lastenausgleich fließt. Beachten Sie, dass NSG-Datenflussprotokolle nicht die Front-End-IP-Adresse des Lastenausgleichs enthalten. Um den Datenverkehr zu analysieren, der in einen Lastenausgleich fließt, müssten die NSG-Datenflussprotokolle nach den privaten IP-Adressen der Back-End-Poolmitglieder des Lastenausgleichs gefiltert werden.

Alerts

Azure Monitor-Warnungen informieren Sie proaktiv, wenn wichtige Bedingungen in Ihren Überwachungsdaten gefunden werden. Sie ermöglichen Ihnen, Probleme in Ihrem System zu identifizieren und zu beheben, bevor Ihre Kunden sie bemerken. Sie können Warnungen für Metriken, Protokolle und das Aktivitätsprotokoll festlegen. Verschiedene Arten von Warnungen haben jeweils ihre Vor- und Nachteile.

Wenn Sie eine Anwendung erstellen oder ausführen, die Load Balancer verwendet, bietet Azure Monitor Application Insights möglicherweise andere Typen von Warnungen.

In der folgenden Tabelle sind gängige und empfohlene Warnungsregeln für Load Balancer aufgeführt.

Warnungstyp Bedingung BESCHREIBUNG
Lastenausgleichsregel aufgrund nicht verfügbarer VMs nicht verfügbar Wenn die Verfügbarkeit des Datenpfads nach Front-End-IP-Adresse und Front-End-Port (alle bekannten und zukünftigen Werte) als 0 angegeben ist und in einer zweiten Warnung der Status des Integritätstests ebenfalls 0 lautet, werden Warnungen ausgelöst. Mit diesen Warnungen kann bestimmt werden, ob die Datenpfadverfügbarkeit für konfigurierte Lastenausgleichsregeln keinen Datenverkehr verarbeitet, da alle VMs im zugeordneten Back-End-Pool durch den konfigurierten Integritätstest heruntergefahren werden. Lesen Sie den Leitfaden zur Problembehandlung für Load Balancer, um die potenzielle Grundursache zu untersuchen.
VM-Verfügbarkeit erheblich reduziert Wenn der nach Back-End-IP-Adresse und Back-End-Port aufgeteilte Status des Integritätstests dem benutzerdefinierten Prozentsatz für die Gesamtgröße des Pools entspricht (d. h. 25 % werden untersucht), wird eine Warnung ausgelöst. Diese Warnung bestimmt, ob weniger VMs als für die Verarbeitung des Datenverkehrs benötigt verfügbar sind.
Fehler bei ausgehenden Verbindungen mit dem Internetendpunkt Wenn „Anzahl von SNAT-Verbindungen“ nach „Verbindungsstatus = Fehler“ gefiltert wird und das Ergebnis größer als 0 (null) ist, wird eine Warnung ausgelöst. Diese Warnung wird ausgelöst, wenn die SNAT-Ports erschöpft sind und VMs keine ausgehenden Verbindungen initiieren können.
Bevorstehende SNAT-Erschöpfung Wenn „Verwendete SNAT-Ports“ größer als die benutzerdefinierte Zahl ist, wird eine Warnung ausgelöst. Für diese Warnung ist eine statische ausgehende Konfiguration erforderlich, bei der immer die gleiche Anzahl von Ports zugeordnet wird. Sie wird dann ausgelöst, wenn ein gewisser Prozentsatz der zugeordneten Ports verwendet wird.

Nächste Schritte