Udostępnij za pośrednictwem


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.

Przykładowy scenariusz

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

Omówienie konta usługi Automation

Krok 2

Kliknij pozycję Dodaj element Runbook , aby rozpocząć proces tworzenia elementu Runbook.

Blok elementów runbook

Krok 3

W obszarze Szybkie tworzenie kliknij pozycję Utwórz nowy element Runbook, aby utworzyć element Runbook .

dodawanie bloku elementu 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.

Blok elementu runbook

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.

Krok 6

Należy utworzyć nowy harmonogram. Kliknij pozycję Połącz harmonogram z elementem Runbook.

Krok 7

Krok 1

W bloku Harmonogram kliknij pozycję Utwórz nowy harmonogram

Krok 8

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 9

Krok 3

Kliknij przycisk Zapisz, aby zapisać harmonogram w ramach elementu Runbook.

Krok 10

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.