Überwachen von VPN Gateways mit der Problembehandlung von Network WatcherMonitor VPN gateways with Network Watcher troubleshooting

Das Gewinnen von eingehenden Erkenntnissen zu Ihrer Netzwerkleistung ist von entscheidender Bedeutung, damit Sie für Ihre Kunden zuverlässige Dienste bereitstellen können.Gaining deep insights on your network performance is critical to provide reliable services to customers. Daher ist es wichtig, Netzwerkausfälle schnell zu erkennen und Korrekturmaßnahmen einzuleiten, um eine Lösung für die Ausfallsituation zu finden.It is therefore critical to detect network outage conditions quickly and take corrective action to mitigate the outage condition. Mit Azure Automation können Sie eine Aufgabe auf programmgesteuerte Weise mithilfe von Runbooks implementieren und ausführen.Azure Automation enables you to implement and run a task in a programmatic fashion through runbooks. Azure Automation schafft die Voraussetzungen für die Durchführung einer fortlaufenden und proaktiven Netzwerküberwachung und die Verwendung von Warnungen.Using Azure Automation creates a perfect recipe for performing continuous and proactive network monitoring and alerting.

SzenarioScenario

Das Szenario in der folgenden Abbildung ist eine Multi-Tier-Anwendung mit lokaler Verbindung, die über ein VPN Gateway und einen Tunnel hergestellt wird.The scenario in the following image is a multi-tiered application, with on premises connectivity established using a VPN Gateway and tunnel. Zur Erzielung einer hohen Anwendungsleistung muss sichergestellt werden, dass das VPN Gateway betriebsbereit ist und ausgeführt wird.Ensuring the VPN Gateway is up and running is critical to the applications performance.

Ein Runbook wird mit einem Skript erstellt, um den Verbindungsstatus des VPN-Tunnels zu überprüfen, indem die API für die Ressourcenproblembehandlung verwendet wird.A runbook is created with a script to check for connection status of the VPN tunnel, using the Resource Troubleshooting API to check for connection tunnel status. Wenn der Status nicht fehlerfrei ist, wird eine E-Mail-Benachrichtigung an die Administratoren gesendet.If the status is not healthy, an email trigger is sent to administrators.

Beispielszenario

Dieses Szenario umfasst Folgendes:This scenario will:

  • Erstellen eines Runbooks zum Aufrufen des Start-AzureRmNetworkWatcherResourceTroubleshooting-Cmdlets für die Problembehandlung in Bezug auf den VerbindungsstatusCreate a runbook calling the Start-AzureRmNetworkWatcherResourceTroubleshooting cmdlet to troubleshoot connection status
  • Verknüpfen eines Zeitplans mit dem RunbookLink a schedule to the runbook

VoraussetzungenBefore you begin

Vor dem Starten dieses Szenarios müssen die folgenden Voraussetzungen erfüllt sein:Before you start this scenario, you must have the following pre-requisites:

  • Azure Automation-Konto in AzureAn Azure automation account in Azure. Stellen Sie sicher, dass das Automation-Konto über die neuesten Module und über das AzureRM.Network-Modul verfügt.Ensure that the automation account has the latest modules and also has the AzureRM.Network module. Das AzureRM.Network-Modul ist im Modulkatalog verfügbar, falls Sie es ihrem Automation-Konto noch hinzufügen müssen.The AzureRM.Network module is available in the module gallery if you need to add it to your automation account.
  • In Azure Automation muss ein Satz mit Anmeldeinformationen konfiguriert sein.You must have a set of credentials configure in Azure Automation. Weitere Informationen finden Sie im Artikel zur Azure Automation-Sicherheit.Learn more at Azure Automation security
  • Gültiger SMTP-Server (Office 365, Ihre lokale E-Mail-Anwendung oder Ähnliches) und definierte Anmeldeinformationen in Azure AutomationA valid SMTP server (Office 365, your on-premises email or another) and credentials defined in Azure Automation
  • Konfiguriertes Virtual Network-Gateway in AzureA configured Virtual Network Gateway in Azure.
  • Ein bestehendes Speicherkonto mit einem bestehenden Container, in dem die Protokolle gespeichert werden.An existing storage account with an existing container to store the logs in.

Hinweis

Die in der obigen Abbildung dargestellte Infrastruktur dient nur Informationszwecken und umfasst nicht die in diesem Artikel enthaltenen Schritte.The infrastructure depicted in the preceding image is for illustration purposes and are not created with the steps contained in this article.

Erstellen des RunbooksCreate the runbook

Der erste Schritt zum Konfigurieren des Beispiels ist die Erstellung des Runbooks.The first step to configuring the example is to create the runbook. In diesem Beispiel wird ein ausführendes Konto verwendet.This example uses a run-as account. Informationen zu ausführenden Konten finden Sie unter Authentifizieren von Runbooks mit der Azure-Option „Ausführendes Konto“.To learn about run-as accounts, visit Authenticate Runbooks with Azure Run As account

Schritt 1Step 1

Navigieren Sie im Azure-Portal zu Azure Automation, und klicken Sie auf Runbooks.Navigate to Azure Automation in the Azure portal and click Runbooks

Automation-Konto – Übersicht

Schritt 2Step 2

Klicken Sie auf Runbook hinzufügen, um den Erstellungsprozess des Runbooks zu starten.Click Add a runbook to start the creation process of the runbook.

Blatt „Runbooks“

Schritt 3Step 3

Klicken Sie unter Schnellerstellung auf Neues Runbook erstellen, um das Runbook zu erstellen.Under Quick Create, click Create a new runbook to create the runbook.

Blatt „Runbook hinzufügen“

Schritt 4Step 4

In diesem Schritt geben wir dem Runbook einen Namen. Im Beispiel ist dies Get-VPNGatewayStatus.In this step, we give the runbook a name, in the example it is called Get-VPNGatewayStatus. Es ist wichtig, dem Runbook einen beschreibenden Namen zu geben, und wir raten Ihnen zu einem Namen, der den PowerShell-Benennungsstandards entspricht.It is important to give the runbook a descriptive name, and recommended giving it a name that follows standard PowerShell naming standards. Der Runbooktyp für dieses Beispiel ist PowerShell, und die anderen Optionen sind „Grafisch“, „PowerShell-Workflow“ und „Grafischer PowerShell-Workflow“.The runbook type for this example is PowerShell, the other options are Graphical, PowerShell workflow, and Graphical PowerShell workflow.

Blatt „Runbook“

Schritt 5Step 5

In diesem Schritt wird das Runbook erstellt. Das folgende Codebeispiel enthält den gesamten Code, der für das Beispiel benötigt wird.In this step the runbook is created, the following code example provides all the code needed for the example. Die Elemente im Code, die <value> enthalten, müssen durch die Werte aus Ihrem Abonnement ersetzt werden.The items in the code that contain <value> need to be replaced with the values from your subscription.

Verwenden Sie den folgenden Code, und klicken Sie auf Speichern.Use the following code as click Save

# Set these variables to the proper values for your environment
$o365AutomationCredential = "<Office 365 account>"
$fromEmail = "<from email address>"
$toEmail = "<to email address>"
$smtpServer = "<smtp.office365.com>"
$smtpPort = 587
$runAsConnectionName = "<AzureRunAsConnection>"
$subscriptionId = "<subscription id>"
$region = "<Azure region>"
$vpnConnectionName = "<vpn connection name>"
$vpnConnectionResourceGroup = "<resource group name>"
$storageAccountName = "<storage account name>"
$storageAccountResourceGroup = "<resource group name>"
$storageAccountContainer = "<container name>"

# Get credentials for Office 365 account
$cred = Get-AutomationPSCredential -Name $o365AutomationCredential

# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $runAsConnectionName

"Logging in to Azure..."
Connect-AzureRmAccount `
    -ServicePrincipal `
    -TenantId $servicePrincipalConnection.TenantId `
    -ApplicationId $servicePrincipalConnection.ApplicationId `
    -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
"Setting context to a specific subscription"
Set-AzureRmContext -SubscriptionId $subscriptionId

$nw = Get-AzurermResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq $region }
$networkWatcher = Get-AzureRmNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName
$connection = Get-AzureRmVirtualNetworkGatewayConnection -Name $vpnConnectionName -ResourceGroupName $vpnConnectionResourceGroup
$sa = Get-AzureRmStorageAccount -Name $storageAccountName -ResourceGroupName $storageAccountResourceGroup 
$storagePath = "$($sa.PrimaryEndpoints.Blob)$($storageAccountContainer)"
$result = Start-AzureRmNetworkWatcherResourceTroubleshooting -NetworkWatcher $networkWatcher -TargetResourceId $connection.Id -StorageId $sa.Id -StoragePath $storagePath

if($result.code -ne "Healthy")
    {
        $body = "Connection for $($connection.name) is: $($result.code) `n$($result.results[0].summary) `nView the logs at $($storagePath) to learn more."
        Write-Output $body
        $subject = "$($connection.name) Status"
        Send-MailMessage `
        -To $toEmail `
        -Subject $subject `
        -Body $body `
        -UseSsl `
        -Port $smtpPort `
        -SmtpServer $smtpServer `
        -From $fromEmail `
        -BodyAsHtml `
        -Credential $cred
    }
else
    {
    Write-Output ("Connection Status is: $($result.code)")
    }

Schritt 6Step 6

Nach dem Speichern des Runbooks muss ein Zeitplan damit verknüpft werden, um den Start des Runbooks zu automatisieren.Once the runbook is saved, a schedule must be linked to it to automate the start of the runbook. Klicken Sie zum Starten des Prozesses auf Zeitplan.To start the process, click Schedule.

Schritt 6

Es muss ein neuer Zeitplan erstellt werden.A new schedule must be created. Klicken Sie auf Zeitplan mit Runbook verknüpfen.Click Link a schedule to your runbook.

Schritt 7

Schritt 1Step 1

Klicken Sie auf dem Blatt Zeitplan auf Neuen Zeitplan erstellen.On the Schedule blade, click Create a new schedule

Schritt 8

Schritt 2Step 2

Geben Sie auf dem Blatt Neuer Zeitplan die Zeitplaninformationen ein.On the New Schedule blade fill out the schedule information. Die Werte, die festgelegt werden können, sind in der folgenden Liste aufgeführt:The values that can be set are in the following list:

  • Name: Der Anzeigename des Zeitplans.Name - The friendly name of the schedule.
  • Beschreibung: Eine Beschreibung des Zeitplans.Description - A description of the schedule.
  • Startet: Dieser Wert ist eine Kombination aus Datum, Uhrzeit und Zeitzone, um den Zeitpunkt für das Auslösen des Zeitplans anzugeben.Starts - This value is a combination of date, time, and time zone that make up the time the schedule triggers.
  • Wiederholung: Mit diesem Wert wird die Wiederholung für den Zeitplan bestimmt.Recurrence - This value determines the schedules repetition. Gültige Werte sind Einmal oder Wiederholt.Valid values are Once or Recurring.
  • Wiederholen alle: Das Wiederholungsintervall des Zeitplans in Stunden, Tagen, Wochen oder Monaten.Recur every - The recurrence interval of the schedule in hours, days, weeks, or months.
  • Ablaufdatum festlegen: Mit diesem Wert wird bestimmt, ob der Zeitplan ablaufen soll.Set Expiration - The value determines if the schedule should expire or not. Sie können Ja oder Nein wählen.Can be set to Yes or No. Wenn Sie „Ja“ wählen, müssen Sie ein gültiges Datum und eine Uhrzeit angeben.A valid date and time are to be provided if yes is chosen.

Hinweis

Wenn Sie ein Runbook häufiger als jede Stunde ausführen müssen, müssen mehrere Zeitpläne mit unterschiedlichen Intervallen erstellt werden (also 15, 30 oder 45 Minuten nach der vollen Stunde).If you need to have a runbook run more often than every hour, multiple schedules must be created at different intervals (that is, 15, 30, 45 minutes after the hour)

Schritt 9

Schritt 3Step 3

Klicken Sie auf „Speichern“, um den Zeitplan im Runbook zu speichern.Click Save to save the schedule to the runbook.

Schritt 10

Nächste SchritteNext steps

Nachdem Sie sich darüber informiert haben, wie Sie die Network Watcher-Problembehandlung in Azure Automation integrieren können, helfen Ihnen die Informationen zum Auslösen von Paketerfassungen bei VM-Warnungen unter Verwenden der Paketerfassung für die proaktive Netzwerküberwachung mit Azure Functions weiter.Now that you have an understanding on how to integrate Network Watcher troubleshooting with Azure Automation, learn how to trigger packet captures on VM alerts by visiting Create an alert triggered packet capture with Azure Network Watcher.