VPN-gateways bewaken met Network Watcher-probleemoplossing

Het verkrijgen van diepgaande inzichten over de prestaties van uw netwerk is essentieel om betrouwbare services te bieden aan klanten. Het is daarom essentieel om snel netwerkstoringsomstandigheden te detecteren en corrigerende maatregelen te nemen om de storingsvoorwaarde te beperken. Met Azure Automation kunt u een taak op programmatische wijze implementeren en uitvoeren via runbooks. Het gebruik van Azure Automation maakt een perfect recept voor het uitvoeren van continue en proactieve netwerkbewaking en waarschuwingen.

Scenario

Het scenario in de volgende afbeelding is een toepassing met meerdere lagen, waarbij on-premises connectiviteit tot stand is gebracht met behulp van een VPN Gateway en tunnel. Ervoor zorgen dat de VPN-gateway actief is, is essentieel voor de prestaties van de toepassingen.

Er wordt een runbook gemaakt met een script om te controleren op de verbindingsstatus van de VPN-tunnel, met behulp van de API voor het oplossen van problemen met resources om te controleren op de status van de verbindingstunnel. Als de status niet in orde is, wordt er een e-mailtrigger naar beheerders verzonden.

Scenario example

In dit scenario wordt het volgende beschreven:

  • Een runbook maken dat de Start-AzureRmNetworkWatcherResourceTroubleshooting cmdlet aanroept om verbindingsstatus op te lossen
  • Een planning koppelen aan het runbook

Voordat u begint

Voordat u dit scenario start, moet u aan de volgende vereisten voldoen:

  • Een Azure Automation-account in Azure. Zorg ervoor dat het Automation-account de meest recente modules heeft en dat ook de AzureRM.Network-module is geïnstalleerd. De AzureRM.Network-module is beschikbaar in de modulegalerie als u deze wilt toevoegen aan uw Automation-account.
  • U moet een set referenties configureren in Azure Automation. Meer informatie op Azure Automation-beveiliging
  • Een geldige SMTP-server (Microsoft 365, uw on-premises e-mail of een andere) en referenties die zijn gedefinieerd in Azure Automation
  • Een geconfigureerde virtuele netwerkgateway in Azure.
  • Een bestaand opslagaccount met een bestaande container waarin de logboeken moeten worden opgeslagen.

Notitie

De infrastructuur die in de voorgaande afbeelding wordt weergegeven, is bedoeld voor illustratiedoeleinden en wordt niet gemaakt met de stappen in dit artikel.

Het runbook maken

De eerste stap bij het configureren van het voorbeeld is het maken van het runbook.

Stap 1

Navigeer naar Azure Automation in Azure Portal en klik op Runbooks

automation account overview

Stap 2

Klik op Een runbook toevoegen om het maakproces van het runbook te starten.

runbooks blade

Stap 3

Klik onder Snel maken op Een nieuw runbook maken om het runbook te maken.

add a runbook blade

Stap 4

In deze stap geven we het runbook een naam, in het voorbeeld heet het Get-VPNGatewayStatus. Het is belangrijk om het runbook een beschrijvende naam te geven en het is raadzaam deze een naam te geven die voldoet aan de standaard PowerShell-naamgevingsstandaarden. Het runbooktype voor dit voorbeeld is PowerShell, de andere opties zijn grafische, PowerShell-werkstroom en grafische PowerShell-werkstroom.

runbook blade

Stap 5

In deze stap wordt het runbook gemaakt, het volgende codevoorbeeld bevat alle code die nodig is voor het voorbeeld. De items in de code die waarde> bevatten<, moeten worden vervangen door de waarden uit uw abonnement.

Gebruik de volgende code als klik op Opslaan

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

Stap 6

Zodra het runbook is opgeslagen, moet er een planning aan worden gekoppeld om het begin van het runbook te automatiseren. Klik op Planning om het proces te starten.

Step 6

Er moet een nieuw schema worden gemaakt. Klik op Een planning aan uw runbook koppelen.

Step 7

Stap 1

Klik op de blade Planning op Een nieuwe planning maken

Step 8

Stap 2

Vul op de blade Nieuwe planning de planningsgegevens in. De waarden die kunnen worden ingesteld, bevinden zich in de volgende lijst:

  • Naam : de beschrijvende naam van het schema.
  • Beschrijving : een beschrijving van het schema.
  • Begint - Deze waarde is een combinatie van datum, tijd en tijdzone waaruit de tijd bestaat die de schematriggers vormen.
  • Terugkeerpatroon : deze waarde bepaalt de planningsherhaling. Geldige waarden zijn eenmaal of terugkerend.
  • Recur every - The recurrence interval of the schedule in hours, days, weeks, or months.
  • Vervaldatum instellen: de waarde bepaalt of het schema moet verlopen of niet. Kan worden ingesteld op Ja of Nee. Er moet een geldige datum en tijd worden opgegeven indien ja.

Notitie

Als u een runbook vaker wilt uitvoeren dan elk uur, moeten er meerdere planningen worden gemaakt met verschillende intervallen (dat wil gezegd 15, 30, 45 minuten na het uur)

Step 9

Stap 3

Klik op Opslaan om het schema op te slaan in het runbook.

Step 10

Volgende stappen

Nu u begrijpt hoe u Problemen met Network Watcher integreert met Azure Automation, leert u hoe u pakketopnamen activeert voor VM-waarschuwingen door een waarschuwingspakketopname te maken met Azure Network Watcher.