Monitorare i gateway VPN con la risoluzione dei problemi di Network WatcherMonitor VPN gateways with Network Watcher troubleshooting

Ottenere informazioni approfondite sulle prestazioni di rete è fondamentale per offrire servizi affidabili ai clienti.Gaining deep insights on your network performance is critical to provide reliable services to customers. È quindi essenziale rilevare rapidamente le interruzioni di rete e adottare misure correttive per mitigare la condizione di interruzione.It is therefore critical to detect network outage conditions quickly and take corrective action to mitigate the outage condition. Automazione di Azure consente di implementare ed eseguire un'attività a livello di codice attraverso i runbook.Azure Automation enables you to implement and run a task in a programmatic fashion through runbooks. Con Automazione di Azure è possibile mettere in atto una soluzione continua e attiva di monitoraggio e avviso relativa alla rete.Using Azure Automation creates a perfect recipe for performing continuous and proactive network monitoring and alerting.

ScenarioScenario

Lo scenario nell'immagine seguente è un'applicazione a più livelli, con connettività locale stabilita tramite un gateway VPN e un tunnel.The scenario in the following image is a multi-tiered application, with on premises connectivity established using a VPN Gateway and tunnel. Per prestazioni ottimali delle applicazioni è importante assicurarsi che il Gateway VPN sia in funzione.Ensuring the VPN Gateway is up and running is critical to the applications performance.

Viene creato un runbook con uno script per il controllo dello stato della connessione del tunnel VPN, usando l'API di risoluzione dei problemi delle risorse per verificare lo stato della connessione del tunnel.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. Se lo stato non è integro, viene inviato un trigger di posta elettronica agli amministratori.If the status is not healthy, an email trigger is sent to administrators.

Esempio dello scenario

Questo scenario illustrerà come:This scenario will:

  • Creare un runbook chiamando il cmdlet Start-AzureRmNetworkWatcherResourceTroubleshooting per risolvere lo stato di connessione.Create a runbook calling the Start-AzureRmNetworkWatcherResourceTroubleshooting cmdlet to troubleshoot connection status
  • Collegare una pianificazione al runbook.Link a schedule to the runbook

Prima di iniziareBefore you begin

Prima di iniziare questo scenario, sono necessari i prerequisiti seguenti:Before you start this scenario, you must have the following pre-requisites:

  • Un account di automazione di Azure in Azure.An Azure automation account in Azure. Assicurarsi che l'account di automazione abbia i moduli più recenti e anche il modulo AzureRM.Network.Ensure that the automation account has the latest modules and also has the AzureRM.Network module. Il modulo AzureRM.Network è disponibile nella raccolta di moduli, se è necessario aggiungerlo all'account di automazione.The AzureRM.Network module is available in the module gallery if you need to add it to your automation account.
  • Un set di credenziali configurato in Automazione di Azure.You must have a set of credentials configure in Azure Automation. Per altre informazioni, vedere l'articolo relativo alla sicurezza in Automazione di Azure.Learn more at Azure Automation security
  • Un server SMTP valido, che sia di Office 365, della posta elettronica in locale o altro, e credenziali definite in Automazione di Azure.A valid SMTP server (Office 365, your on-premises email or another) and credentials defined in Azure Automation
  • Un gateway di rete virtuale configurato in Azure.A configured Virtual Network Gateway in Azure.
  • Un account di archiviazione esistente con un contenitore esistente in cui archiviare i log.An existing storage account with an existing container to store the logs in.

Nota

L'infrastruttura mostrata nell'immagine precedente è a scopo illustrativo e non è stata creata con la procedura descritta in questo articolo.The infrastructure depicted in the preceding image is for illustration purposes and are not created with the steps contained in this article.

Creare il runbookCreate the runbook

Il primo passaggio per la configurazione dell'esempio consiste nel creare il runbook.The first step to configuring the example is to create the runbook. Questo esempio usa un account RunAs.This example uses a run-as account. Per altre informazioni sugli account RunAs, vedere Autenticare runbook con account RunAs di Azure.To learn about run-as accounts, visit Authenticate Runbooks with Azure Run As account

Passaggio 1Step 1

Passare ad Automazione di Azure nel portale di Azure e fare clic su Runbook.Navigate to Azure Automation in the Azure portal and click Runbooks

Panoramica dell'account di Automazione

Passaggio 2Step 2

Fare clic su Aggiungi runbook per avviare il processo di creazione del runbook.Click Add a runbook to start the creation process of the runbook.

Pannello Runbook

Passaggio 3Step 3

In Creazione rapida fare clic su Crea un nuovo runbook per creare il runbook.Under Quick Create, click Create a new runbook to create the runbook.

Pannello Aggiungi runbook

Passaggio 4Step 4

In questo passaggio si attribuisce un nome al runbook, che nell'esempio è denominato Get-VPNGatewayStatus.In this step, we give the runbook a name, in the example it is called Get-VPNGatewayStatus. È importante attribuire al runbook un nome descrittivo che segua gli standard di denominazione di PowerShell.It is important to give the runbook a descriptive name, and recommended giving it a name that follows standard PowerShell naming standards. Il tipo di runbook per questo esempio è PowerShell, le altre opzioni disponibili sono Grafico, Flusso di lavoro PowerShell e Flusso di lavoro PowerShell grafico.The runbook type for this example is PowerShell, the other options are Graphical, PowerShell workflow, and Graphical PowerShell workflow.

Pannello Runbook

Passaggio 5Step 5

In questo passaggio viene creato il runbook. L'esempio di codice seguente contiene tutto il codice necessario per l'esempio.In this step the runbook is created, the following code example provides all the code needed for the example. Sostituire gli elementi nel codice che contengono <value> con i valori della sottoscrizione usata.The items in the code that contain <value> need to be replaced with the values from your subscription.

Usare il codice seguente e fare clic su Salva.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..."
Add-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)")
    }

Passaggio 6Step 6

Dopo aver salvato il runbook, è necessario collegarlo a una pianificazione per automatizzare l'avvio del runbook.Once the runbook is saved, a schedule must be linked to it to automate the start of the runbook. Per avviare il processo, fare clic su Pianificazione.To start the process, click Schedule.

Passaggio 6

È necessario creare una nuova pianificazione.A new schedule must be created. Fare clic su Collegare una pianificazione al runbook.Click Link a schedule to your runbook.

Passaggio 7

Passaggio 1Step 1

Nel pannello Pianificazione fare clic su Crea una nuova pianificazione.On the Schedule blade, click Create a new schedule

Passaggio 8

Passaggio 2Step 2

Nel pannello Nuova pianificazione immettere le informazioni sulla pianificazione.On the New Schedule blade fill out the schedule information. Di seguito sono elencati i valori che è possibile impostare.The values that can be set are in the following list:

  • Nome: nome descrittivo della pianificazione.Name - The friendly name of the schedule.
  • Descrizione: descrizione della pianificazione.Description - A description of the schedule.
  • Inizia: questo valore è una combinazione di data, ora e fuso orario che costituiscono l'orario di attivazione della pianificazione.Starts - This value is a combination of date, time, and time zone that make up the time the schedule triggers.
  • Ricorrenza: questo valore determina la ripetizione della pianificazione.Recurrence - This value determines the schedules repetition. I valori validi sono Una sola volta o Ricorrente.Valid values are Once or Recurring.
  • Ricorre ogni: intervallo di ricorrenza della pianificazione espresso in ore, giorni, settimane o mesi.Recur every - The recurrence interval of the schedule in hours, days, weeks, or months.
  • Imposta scadenza: questo valore determina se la pianificazione debba scadere o meno.Set Expiration - The value determines if the schedule should expire or not. I valori validi sono o No.Can be set to Yes or No. Sì è necessario specificare data e ora valide.A valid date and time are to be provided if yes is chosen.

Nota

Se un runbook specifico deve essere eseguito con una frequenza superiore a un'ora, è necessario creare più pianificazioni a intervalli diversi, vale a dire a 15, 30, 45 minuti dopo l'ora.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)

Passaggio 9:

Passaggio 3Step 3

Fare clic su Salva per salvare la pianificazione del runbook.Click Save to save the schedule to the runbook.

Passaggio 10

Passaggi successiviNext steps

Dopo aver appreso come integrare la risoluzione dei problemi di Network Watcher con Automazione di Azure, è possibile apprendere come attivare le acquisizioni pacchetti per gli avvisi di macchina virtuale. Vedere in proposito l'articolo relativo alla creazione di un'acquisizione pacchetti attivata da un avviso mediante Azure Network Watcher.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.