Dela via


Övervaka VPN-gatewayer med felsökning av Network Watcher

Det är viktigt att få djupgående insikter om dina nätverksprestanda för att tillhandahålla tillförlitliga tjänster till kunder. Det är därför viktigt att snabbt identifiera nätverksavbrott och vidta korrigerande åtgärder för att minska avbrottstillståndet. Med Azure Automation kan du implementera och köra en uppgift på ett programmatiskt sätt via runbooks. Med Hjälp av Azure Automation skapas ett perfekt recept för kontinuerlig och proaktiv nätverksövervakning och aviseringar.

Scenario

Scenariot i följande bild är ett program med flera nivåer, med lokal anslutning upprättad med hjälp av en VPN Gateway och tunnel. Att se till att VPN Gateway är igång är viktigt för programmets prestanda.

En runbook skapas med ett skript för att söka efter anslutningsstatus för VPN-tunneln med hjälp av API för resursfelsökning för att söka efter status för anslutningstunneln. Om statusen inte är felfri skickas en e-postutlösare till administratörer.

Scenario example

Det här scenariot kommer att:

  • Skapa en runbook som anropar cmdleten Start-AzureRmNetworkWatcherResourceTroubleshooting för att felsöka anslutningsstatus
  • Länka ett schema till runbooken

Innan du börjar

Innan du börjar det här scenariot måste du ha följande förutsättningar:

  • Ett Azure Automation-konto i Azure. Kontrollera att automationskontot har de senaste modulerna och även har modulen AzureRM.Network. Modulen AzureRM.Network är tillgänglig i modulgalleriet om du behöver lägga till den i ditt automationskonto.
  • Du måste ha en uppsättning autentiseringsuppgifter konfigurerade i Azure Automation. Läs mer i Azure Automation Security
  • En giltig SMTP-server (Microsoft 365, din lokala e-post eller någon annan) och autentiseringsuppgifter som definierats i Azure Automation
  • En konfigurerad virtuell nätverksgateway i Azure.
  • Ett befintligt lagringskonto med en befintlig container för att lagra loggarna i.

Kommentar

Infrastrukturen som visas i föregående bild är i illustrationssyfte och skapas inte med stegen i den här artikeln.

Skapa runbooken

Det första steget för att konfigurera exemplet är att skapa runbooken.

Steg 1

Gå till Azure Automation i Azure-portalen och klicka på Runbooks

automation account overview

Steg 2

Klicka på Lägg till en runbook för att starta skapandeprocessen för runbooken.

runbooks blade

Step 3

Under Snabbskapa klickar du på Skapa en ny runbook för att skapa runbooken.

add a runbook blade

Steg 4

I det här steget ger vi runbooken ett namn, i exemplet kallas den Get-VPNGatewayStatus. Det är viktigt att ge runbooken ett beskrivande namn och rekommenderar att du ger den ett namn som följer standardstandarder för PowerShell-namngivning. Runbook-typen för det här exemplet är PowerShell, de andra alternativen är grafiskt, PowerShell-arbetsflöde och grafiskt PowerShell-arbetsflöde.

runbook blade

Steg 5

I det här steget skapas runbooken, i följande kodexempel finns all kod som behövs för exemplet. Objekten i koden som innehåller <värdet> måste ersättas med värdena från din prenumeration.

Använd följande kod som klicka på Spara

# Set these variables to the proper values for your environment
$automationCredential = "<work or school 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 work or school account
$cred = Get-AutomationPSCredential -Name $automationCredential

# 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)")
    }

Steg 6

När runbooken har sparats måste ett schema länkas till den för att automatisera starten av runbooken. Starta processen genom att klicka på Schema.

Step 6

Ett nytt schema måste skapas. Klicka på Länka ett schema till din runbook.

Step 7

Steg 1

På bladet Schema klickar du på Skapa ett nytt schema

Step 8

Steg 2

På bladet Nytt schema fyller du i schemainformationen. De värden som kan anges finns i följande lista:

  • Namn – det egna namnet på schemat.
  • Beskrivning – En beskrivning av schemat.
  • Startar – Det här värdet är en kombination av datum, tid och tidszon som utgör den tid som schemautlösare.
  • Upprepning – det här värdet bestämmer scheman för upprepning. Giltiga värden är en gång eller återkommande.
  • Upprepa varje – upprepningsintervallet för schemat i timmar, dagar, veckor eller månader.
  • Ange Förfallodatum – värdet avgör om schemat ska upphöra att gälla eller inte. Kan anges till Ja eller Nej. Ett giltigt datum och en giltig tid ska anges om ja väljs.

Kommentar

Om du behöver ha en runbook-körning oftare än varje timme måste flera scheman skapas med olika intervall (det vill: 15, 30, 45 minuter efter timmen)

Step 9

Step 3

Klicka på Spara för att spara schemat i runbooken.

Step 10

Nästa steg

Nu när du har en förståelse för hur du integrerar network watcher-felsökning med Azure Automation kan du lära dig hur du utlöser paketinsamlingar på VM-aviseringar genom att gå till Skapa en avisering utlöst paketinsamling med Azure Network Watcher.