Monitorowanie bram sieci VPN za pomocą usługi Network Watcher — rozwiązywanie problemów
Uzyskiwanie szczegółowych informacji na temat wydajności sieci ma kluczowe znaczenie dla zapewnienia niezawodnych usług klientom. W związku z tym kluczowe znaczenie ma szybkie wykrywanie warunków awarii sieci i podejmowanie działań naprawczych w celu ograniczenia stanu awarii. Usługa Azure Automation umożliwia implementowanie i uruchamianie zadania w sposób programowy za pomocą elementów Runbook. Korzystanie z usługi Azure Automation tworzy doskonały przepis na ciągłe i proaktywne monitorowanie sieci oraz zgłaszanie alertów.
Scenariusz
Scenariusz na poniższej ilustracji to wielowarstwowa aplikacja z łącznością lokalną ustanowioną przy użyciu usługi VPN Gateway i tunelu. Zapewnienie, że usługa VPN Gateway jest uruchomiona, ma kluczowe znaczenie dla wydajności aplikacji.
Element Runbook jest tworzony za pomocą skryptu w celu sprawdzenia stanu połączenia tunelu VPN przy użyciu interfejsu API rozwiązywania problemów z zasobami w celu sprawdzenia stanu tunelu połączenia. Jeśli stan nie jest w dobrej kondycji, wyzwalacz wiadomości e-mail jest wysyłany do administratorów.
W tym scenariuszu:
- Tworzenie elementu Runbook wywołującego polecenie cmdlet w celu rozwiązywania problemów ze stanem
Start-AzureRmNetworkWatcherResourceTroubleshooting
połączenia - Łączenie harmonogramu z elementem Runbook
Zanim rozpoczniesz
Przed rozpoczęciem tego scenariusza musisz mieć następujące wymagania wstępne:
- Konto usługi Azure Automation na platformie Azure. Upewnij się, że konto usługi Automation ma najnowsze moduły, a także moduł AzureRM.Network. Moduł AzureRM.Network jest dostępny w galerii modułów, jeśli musisz dodać go do konta usługi Automation.
- Musisz mieć zestaw poświadczeń skonfigurowanych w usłudze Azure Automation. Dowiedz się więcej na temat zabezpieczeń usługi Azure Automation
- Prawidłowy serwer SMTP (Platforma Microsoft 365, lokalna poczta e-mail lub inny) i poświadczenia zdefiniowane w usłudze Azure Automation
- Skonfigurowana brama sieci wirtualnej na platformie Azure.
- Istniejące konto magazynu z istniejącym kontenerem do przechowywania dzienników.
Uwaga
Infrastruktura przedstawiona na powyższym obrazie służy do celów ilustracyjnych i nie jest tworzona przy użyciu kroków zawartych w tym artykule.
Tworzenie elementu Runbook
Pierwszym krokiem do skonfigurowania przykładu jest utworzenie elementu Runbook.
Krok 1
Przejdź do usługi Azure Automation w witrynie Azure Portal i kliknij pozycję Elementy Runbook
Krok 2
Kliknij pozycję Dodaj element Runbook , aby rozpocząć proces tworzenia elementu Runbook.
Krok 3
W obszarze Szybkie tworzenie kliknij pozycję Utwórz nowy element Runbook, aby utworzyć element Runbook .
Krok 4
W tym kroku nadamy elementowi Runbook nazwę w przykładzie o nazwie Get-VPNGatewayStatus. Ważne jest nadanie elementowi Runbook nazwy opisowej i zalecane nadanie mu nazwy zgodnej ze standardowymi standardami nazewnictwa programu PowerShell. Typ elementu Runbook dla tego przykładu to PowerShell, inne opcje to Graficzny, Przepływ pracy programu PowerShell i Graficzny przepływ pracy programu PowerShell.
Krok 5
W tym kroku tworzony jest element Runbook, poniższy przykład kodu zawiera cały kod wymagany w tym przykładzie. Elementy w kodzie, które zawierają <wartość> , muszą zostać zastąpione wartościami z subskrypcji.
Użyj następującego kodu, klikając przycisk Zapisz
# 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)")
}
Krok 6
Po zapisaniu elementu Runbook należy połączyć z nim harmonogram, aby zautomatyzować uruchamianie elementu Runbook. Aby rozpocząć proces, kliknij pozycję Harmonogram.
Łączenie harmonogramu z elementem Runbook
Należy utworzyć nowy harmonogram. Kliknij pozycję Połącz harmonogram z elementem Runbook.
Krok 1
W bloku Harmonogram kliknij pozycję Utwórz nowy harmonogram
Krok 2
W bloku Nowy harmonogram wypełnij informacje o harmonogramie. Wartości, które można ustawić, znajdują się na następującej liście:
- Nazwa — przyjazna nazwa harmonogramu.
- Opis — opis harmonogramu.
- Starts — ta wartość jest kombinacją daty, godziny i strefy czasowej, które tworzą czas wyzwalaczy harmonogramu.
- Cykl — ta wartość określa powtórzenia harmonogramów. Prawidłowe wartości to Raz lub Cykliczne.
- Powtarzaj co — interwał cyklu harmonogramu w godzinach, dniach, tygodniach lub miesiącach.
- Ustaw wygaśnięcie — wartość określa, czy harmonogram powinien wygasać, czy nie. Można ustawić wartość Tak lub Nie. Należy podać prawidłową datę i godzinę, jeśli wybrano opcję tak.
Uwaga
Jeśli potrzebujesz uruchamiać element Runbook częściej niż co godzinę, należy utworzyć wiele harmonogramów w różnych odstępach czasu (czyli 15, 30, 45 minut po godzinie)
Krok 3
Kliknij przycisk Zapisz, aby zapisać harmonogram w ramach elementu Runbook.
Następne kroki
Teraz, gdy już wiesz, jak zintegrować rozwiązywanie problemów z usługą Network Watcher z usługą Azure Automation, dowiedz się, jak wyzwalać przechwytywanie pakietów na alertach maszyn wirtualnych, odwiedzając stronę Tworzenie przechwytywania pakietów wyzwolonych alertów za pomocą usługi Azure Network Watcher.