Come monitorare le connessioni da punto a sito per rete WAN virtuale

Questa sezione illustra come creare una cartella di lavoro di Azure che mostra i dati pertinenti dei client VPN utente connessi ad Azure rete WAN virtuale.

Prima di iniziare

Per completare la procedura descritta in questo articolo, è necessario avere una rete WAN virtuale, un hub e un Gateway VPN utente. Per creare queste risorse, seguire la procedura descritta in questo articolo: Creare una rete WAN virtuale, un hub e un gateway

Architettura della soluzione della cartella di lavoro

Quando si lavora con Azure rete WAN virtuale e si esaminano le metriche, viene spesso eseguita dall'interno del contesto di una cartella di lavoro di Azure. In questa soluzione si userà ciò che è già disponibile nella cartella di lavoro di Azure e lo arricchire con altri dettagli, in particolare sulle connessioni attive.

  • AzureDiagnostics: Questi log vengono ricevuti abilitando il debug P2S tramite le impostazioni di debug di Monitoraggio di Azure e abilitando i log seguenti: GatewayDiagnosticLog, IKEDiagnosticLog, P2SDiagnosticLog, AllMetrics. Alcuni log sono rumorosi e costosi relativi ai costi di Log Analytics, specialmente IKEDiagnostics.

  • Get-AzP2sVpnGatewayDetailedConnectionHealth: Si tratta di un comando di PowerShell (in esecuzione in un'app per le funzioni) per ottenere i dettagli delle sessioni attive. Questo comando supporta solo l'archiviazione dei dati in un account di archiviazione in base a una chiave di firma di accesso condiviso.

La figura seguente illustra i componenti coinvolti nella soluzione suggerita:

Screenshot che mostra l'architettura della cartella di lavoro.

Il servizio VPN è in esecuzione nel gateway VPN VWAN di Azure vWAN. Ha associato metriche e impostazioni di debug che possono essere lette da una cartella di lavoro di Azure. Per ottenere le informazioni aggiuntive che il comando di PowerShell può fornire, è possibile scegliere di eseguire questo comando in un'app per le funzioni di Azure. Dall'app per le funzioni viene archiviato l'output in un account di archiviazione di Azure.

L'output archiviato nell'account di archiviazione viene recuperato dall'interno della cartella di lavoro usando una funzione speciale denominata "externaldata".

Creare un account di archiviazione di Azure

  1. Nella barra Delle risorse di ricerca del portale digitare Account di archiviazione.

  2. Selezionare Account di archiviazione nei risultati. Nella pagina Account di archiviazione selezionare + Crea per aprire la pagina Crea un account di archiviazione .

  3. Nella scheda Nozioni di base della pagina Crea rete WAN compilare i campi. Modificare i valori di esempio da applicare all'ambiente.

    Screenshot che mostra la sezione Nozioni di base sulla creazione di un account di archiviazione.

    • Sottoscrizione: selezionare la sottoscrizione da usare
    • Gruppo di risorse: Creare nuovi o usare esistente
    • Nome account di archiviazione: digitare il nome che si vuole chiamare l'account di archiviazione
    • Area: selezionare un'area per l'account di archiviazione
    • Prestazioni: Standard o Premium. Standard è adeguato ai nostri scopi di monitoraggio
    • Ridondanza: scegliere tra archiviazione con ridondanza locale, archiviazione con ridondanza geografica, archiviazione con ridondanza della zona e archiviazione con ridondanza geografica

    Al termine della compilazione dei campi, nella parte inferiore della pagina selezionare Avanti: Avanzate>.

  4. Nella pagina Avanzate compilare i campi seguenti.

    Screenshot che mostra la sezione avanzata della creazione di un account di archiviazione.

    • Richiedere il trasferimento sicuro per le operazioni dell'API REST: scegliere Abilitato.
    • Abilitare l'accesso pubblico DEL BLOB: scegliere Disabilitato.
    • Abilitare l'accesso alla chiave dell'account di archiviazione: scegliere Abilitato.
    • Impostazione predefinita per l'autorizzazione di Azure Active Directory nel portale di Azure: scegliere Abilitato.
    • Versione minima TLS: scegliere versione 1.2.
  5. Selezionare Rivedi e crea nella parte inferiore per eseguire la convalida.

  6. Dopo aver superato la convalida, selezionare Crea per creare l'account di archiviazione.

Creare un contenitore

  1. Al termine della distribuzione, passare alla risorsa.

  2. Nel pannello sinistro selezionare Contenitori in Archiviazione dati.

    Screenshot che mostra la pagina iniziale del contenitore.

  3. Selezionare + Contenitore per creare un nuovo contenitore.

  4. Digitare un nome per il contenitore e selezionare Crea.

Creare e caricare BLOB nel contenitore

  1. Nel computer aprire un'applicazione editor di testo, ad esempio Blocco note.

    Screenshot che mostra come aprire il blocco note.

  2. Lasciare vuoto il file di testo e selezionare File -> Salva con nome.

  3. Salvare il file di testo vuoto con un nome scelto seguito dall'estensione .json .

    Screenshot che mostra come salvare il file json.

  4. Indietro alla sezione Contenitori nel portale.

    Screenshot che mostra la sezione contenitore dopo la creazione di un nuovo contenitore.

  5. Selezionare nella seconda riga, che corrisponde al contenitore creato (non $logs).

  6. Se viene visualizzato questo messaggio di avviso rosso che indica ""Non si dispone dell'autorizzazione...", selezionare Passa alla chiave di accesso come metodo di autenticazione. Si trova sotto la casella di avviso rosso.

  7. Selezionare Carica.

    Screenshot che mostra il contenitore specifico creato dall'utente.

  8. Selezionare il file corrispondente al file JSON vuoto nel computer e selezionare Carica.

  9. Dopo il caricamento del file, selezionare nel file JSON e passare alla scheda Genera firma di accesso condiviso .

    Screenshot che mostra il campo Genera firma di accesso condiviso per BLOB.

  10. In Metodo di firma scegliere Chiave account.

  11. In Autorizzazioni assegnare la chiave alle autorizzazioni seguenti: lettura, aggiunta, creazione e scrittura.

  12. Scegliere una data e un'ora di scadenza per la chiave.

  13. Selezionare Genera token di firma di accesso condiviso e URL.

  14. Copiare il token di firma di accesso condiviso BLOB e l'URL della firma di accesso condiviso BLOB in una posizione sicura.

Creare un'app per le funzioni di Azure

  1. Nella barra Delle risorse di ricerca digitare App per le funzioni nel portale.

  2. Selezionare App per le funzioni nei risultati. Nella pagina App per le funzioni selezionare + Crea per aprire la pagina Crea app per le funzioni .

  3. Nella scheda Nozioni di base della pagina Crea rete WAN compilare i campi. Modificare i valori di esempio da applicare all'ambiente.

    Screenshot che mostra la scheda Nozioni di base dell'app per le funzioni.

    • Sottoscrizione: selezionare la sottoscrizione da usare
    • Gruppo di risorse: Creare nuovi o usare esistente
    • Nome app per le funzioni: scegliere un nome per l'app per le funzioni
    • Pubblica: selezionare codice
    • Stack di runtime: selezionare PowerShell Core
    • Versione: scegliere 7.0 (o la versione preferita)
    • Area: scegliere l'area preferita
  4. Le schede rimanenti sono facoltative per modificare, quindi è possibile selezionare Rivedi e crea e quindi selezionare Crea al passaggio della convalida.

  5. Passare alla risorsa app per le funzioni .

  6. Selezionare Identità in Impostazioni nel pannello sinistro. Attivare il pulsante Stato su Attiva per Sistema assegnato e selezionare Salva.

    Screenshot che mostra la scheda identity dell'app per le funzioni.

  7. Selezionare Configurazione in Impostazioni nel pannello sinistro.

  8. Selezionare in + Nuova impostazione dell'applicazione. Screenshot che mostra la scheda dell'aggiunta di un'impostazione dell'applicazione.

  9. Creare le 7 voci seguenti immettendo il nome e il valore, quindi selezionare OK dopo ogni valore.

    Nome Valore
    "resourcegroup" gruppo di risorse
    "sasuri" @Microsoft.KeyVault(SecretUri=https://\<keyvaultname>.vault.azure.net/secrets/sasuri/\<version>)
    --> aggiornare di conseguenza dopo la creazione dell'insieme di credenziali delle chiavi nella sezione successiva.
    "sottoscrizione" ID sottoscrizione
    "tenantname" ID tenant
    "vpngw" Questo nome è simile <a guid-eastus-ps2-gw>. È possibile ottenerlo dalle impostazioni VPN utente dell'hub VWAN.
  10. Selezionare Salva.

  11. Selezionare Funzioni nel pannello sinistro e selezionare + Crea.

  12. Compilare i campi.

    Screenshot che mostra la pagina durante la creazione di una funzione.

    • Ambiente di sviluppo: sviluppare nel portale
    • Modello: Trigger timer
    • Nuova funzione: scegliere un nome per la funzione
    • Pianificazione: immettere un'espressione cron del formato '{second} {minute} {hour} {day} {month} {day} {day} {day of the week}' per specificare la pianificazione
  13. Selezionare Codice e test nel pannello sinistro e digitare il codice seguente nel file run.ps1 . Selezionare Salva.

    # Input bindings are passed in via param block.
    param($Timer)
    
    # Get the current universal time in the default string format.
    $currentUTCtime = (Get-Date).ToUniversalTime()
    
    # The 'IsPastDue' property is "true" when the current function invocation is later than scheduled.
    if($Timer.IsPastDue){
    Write-Host "PowerShell timer is running late!"
    }
    
    ## Write an information log with current time.
    Write-Host "PowerShell timer trigger function ran! TIME:$currentUTCtime"
    
    $tenantname = $env:appsetting_tenantname
    $subscription = $env:appsetting_subscription
    $resourceGroup = $env:appsetting_resourcegroup
    $vpngw = $env:appsetting_vpngw
    $sasuri = $env:appsetting_sasuri
    
    Write-Host "Connecting to Managed Identity..."
    connect-azaccount -tenant $tenantname -identity -subscription $subscription
    
    Write-Host "Executing File Update..."
    Get-AzP2sVpnGatewayDetailedConnectionHealth -name $vpngw -ResourceGroupName $resourceGroup -OutputBlobSasUrl $sasuri
    
    Write-Host "Function Execution Completed!"
    
  14. Tornare alla pagina App per le funzioni e selezionare servizio app Editor nel pannello sinistro in Strumenti di sviluppo. Selezionare quindi Vai -->.

  15. Passare a requirements.psd1 e rimuovere il commento dalla riga che inizia con 'Az'... come illustrato.

    Screenshot che mostra il file dei requisiti per l'app per le funzioni.

  16. Affinché il comando get-AzP2sVpnGatewayDetailedConnectionHealth abbia esito positivo, è necessario disporre delle autorizzazioni appropriate per le informazioni. Passare al gruppo di risorse e scegliere "Controllo di accesso (IAM)" nel pannello sinistro. Corrisponde alla gestione delle identità e degli accessi. Assegnare l'accesso in lettura FunctionApp tramite il gruppo di risorse.

Creare un Azure Key Vault

  1. Nella barra Cerca risorse del portale digitare Insiemi di credenziali delle chiavi.

  2. Selezionare + Crea nei risultati per aprire la pagina Crea un insieme di credenziali delle chiavi .

  3. Nella scheda Informazioni di base compilare i campi. Modificare i valori di esempio da applicare all'ambiente.

    Screenshot che mostra la sezione Informazioni di base della creazione di un insieme di credenziali delle chiavi.

    • Sottoscrizione: selezionare la sottoscrizione da usare.
    • Gruppo di risorse: crearne uno nuovo o usarne uno esistente.
    • Nome dell'account di archiviazione: digitare il nome che si vuole chiamare l'insieme di credenziali delle chiavi.
    • Area: selezionare un'area per l'account di archiviazione.
    • Piano tariffario: Standard o Premium. Lo standard è adeguato ai nostri scopi di monitoraggio.
  4. Selezionare Avanti: Criteri di >accesso .

  5. In Modello di autorizzazione scegliere Criteri di accesso dell'insieme di credenziali.

  6. Lasciare disabilitate le opzioni in Accesso alle risorse .

  7. In Criteri di accesso selezionare + Crea.

    Screenshot che mostra la prima schermata nella creazione dei criteri di accesso.

  8. Selezionare Avanti per passare alla scheda Principale . Digitare il nome dell'app per le funzioni e selezionarlo.

  9. Selezionare Avanti due volte per passare alla quarta scheda: Rivedi e crea e seleziona Crea nella parte inferiore.

  10. Verrà ora visualizzato il criterio di accesso appena creato nella sezione Criteri di accesso . La modifica dei valori predefiniti nella scheda Rete è facoltativa, quindi selezionare Rivedi e crea nell'angolo in basso a sinistra.

  11. Passare a Segreti in Oggetti nel pannello sinistro della risorsa dell'insieme di credenziali delle chiavi. Selezionare + Genera/Importa e aggiungi segreto come indicato di seguito:

    • Nome: sasuri
    • value: <SASURI>
    • Abilitato: Sì
  12. Indietro alla scheda Configurazione per l'app per le funzioni e modificare la voce seguente. Il valore proviene dal campo Identificatore segreto visualizzato dopo aver fatto clic sul segreto:

    • Nome: "sasuri"
    • Valore: @Microsoft.KeyVault(SecretUri=https://\<keyvaultname>.vault.azure.net/secrets/sasuri/\<version>)

Creare una cartella di lavoro di Azure

La cartella di lavoro di Azure è ora pronta per la creazione. Si userà una combinazione di funzionalità predefinite e i dettagli della sessione aggiunti dalla soluzione dell'app per le funzioni.

  1. Passare alla risorsa rete WAN virtuale e selezionare Informazioni dettagliate in Monitoraggio nel pannello a sinistra. Selezionare Cartelle di lavoro e quindi + Nuovo. Screenshot che mostra il primo passaggio della creazione della cartella di lavoro di Azure.

  2. Aggiungere la query seguente alla cartella di lavoro. Sostituire "SASURI" con l'URI sas.

     let P2Svpnconnections = (externaldata (resource:string, UserNameVpnConnectionHealths: dynamic) [
         @"SASURI"
     ] with(format="multijson"));
    
     P2Svpnconnections
     | mv-expand UserNameVpnConnectionHealths
     | extend Username = parse_json(UserNameVpnConnectionHealths).UserName
     | extend VpnConnectionHealths = parse_json(parse_json(UserNameVpnConnectionHealths).VpnConnectionHealths)
     | mv-expand VpnConnectionHealths
     | extend VpnConnectionId = parse_json(VpnConnectionHealths).VpnConnectionId, VpnConnectionDuration = parse_json(VpnConnectionHealths).VpnConnectionDuration, VpnConnectionTime = parse_json(VpnConnectionHealths).VpnConnectionTime, PublicIpAddress = parse_json(VpnConnectionHealths).PublicIpAddress, PrivateIpAddress = parse_json(VpnConnectionHealths).PrivateIpAddress, MaxBandwidth = parse_json(VpnConnectionHealths).MaxBandwidth, EgressPacketsTransferred = parse_json(VpnConnectionHealths).EgressPacketsTransferred, EgressBytesTransferred = parse_json(VpnConnectionHealths).EgressBytesTransferred, IngressPacketsTransferred = parse_json(VpnConnectionHealths).IngressPacketsTransferred, IngressBytesTransferred = parse_json(VpnConnectionHealths).IngressBytesTransferred, MaxPacketsPerSecond = parse_json(VpnConnectionHealths).MaxPacketsPerSecond
     | extend PubIp = tostring(split(PublicIpAddress, ":").[0])
     | project Username, VpnConnectionId, VpnConnectionDuration, VpnConnectionTime, PubIp, PublicIpAddress, PrivateIpAddress, MaxBandwidth, EgressPacketsTransferred, EgressBytesTransferred, IngressPacketsTransferred, IngressBytesTransferred, MaxPacketsPerSecond;
    
    
  3. Per visualizzare i risultati, selezionare il pulsante blu Esegui query per visualizzare i risultati.

  4. Se viene visualizzato l'errore seguente, tornare al file (vpnstatfile.json) nel BLOB del contenitore di archiviazione e rigenerare l'URL della firma di accesso condiviso. Incollare quindi l'URL di firma di accesso condiviso aggiornato nella query.

    Screenshot che mostra l'errore durante l'esecuzione della query nella cartella di lavoro.

  5. Salvare la cartella di lavoro in modo che venga restituita in un secondo momento.

  6. Per le metriche seguenti, è necessario abilitare la registrazione diagnostica aggiungendo le impostazioni di diagnostica in portale di Azure. Compilare i campi obbligatori per la sottoscrizione e il gruppo di risorse. Per il tipo di risorsa digitare "microsoft.network/p2svpngateways". Aggiungere un'impostazione di diagnostica (o modificare l'impostazione di diagnostica corrente) per il gateway da punto a sito da monitorare.

    Screenshot che mostra la prima pagina Impostazioni di diagnostica in Monitoraggio di Azure.

  7. Abilitare allLogs e allMetrics e scegliere di inviare all'area di lavoro Log Analytics come destinazione. Alcuni log sono rumorosi e potrebbero essere costosi (in particolare IKEDiagnosticLog). Di conseguenza, è possibile abilitare solo log specifici da visualizzare invece di abilitare allLogs.

    Screenshot che mostra la seconda pagina Impostazioni di diagnostica in Monitoraggio di Azure.

Query di esempio

La sezione seguente illustra le query di esempio.

Connessioni utente da sito a sito con esito positivo con IP

Screenshot che mostra la query per le connessioni da sito a sito con esito positivo con IP.

Autenticazione EAP (Extensible Authentication Protocol) completata

Screenshot che mostra la query per le metriche di autenticazione EAP.

Informazioni sull'utente VPN da sito a sito

Screenshot che mostra la query per informazioni utente VPN da sito a sito.

Connessioni VPN da sito a sito riuscite per utente

Screenshot che mostra la query per le connessioni VPN da sito a sito riuscite.

Connessioni VPN da sito a sito

Screenshot che mostra la query per le connessioni VPN da sito a sito.

Connessioni VPN da sito a sito riuscite

Screenshot che mostra la query per le connessioni VPN da sito a sito riuscite.

Connessioni VPN da sito a sito non riuscite

Screenshot che mostra la query per le connessioni VPN da sito a sito non riuscite.

Numero di connessioni VPN per P2SDiagnosticLog

Screenshot che mostra la query per il conteggio delle connessioni VPN.

IKEDiagnosticLog

Screenshot che mostra la query per IKEDiagnosticLog.

Dettagli aggiuntivi sulla diagnostica IKE

Screenshot che mostra la query per i dettagli di diagnostica IKE.

Statistiche VPN da sito a sito

Screenshot che mostra la query per le statistiche VPN da sito a sito.

Passaggi successivi

Per altre informazioni sulle domande frequenti, vedere la pagina rete WAN virtuale domande frequenti.