Como monitorizar ligações ponto a site para WAN Virtual

Esta secção documenta como criar um Livro do Azure que mostra dados relevantes de clientes VPN de utilizador ligados ao Azure WAN Virtual.

Antes de começar

Para concluir os passos neste artigo, tem de ter uma WAN virtual, um hub e um Utilizador Gateway de VPN. Para criar estes recursos, siga os passos neste artigo: Criar WAN virtual, um hub e um gateway

Arquitetura da solução de livro

Quando trabalha com o Azure WAN Virtual e analisa as métricas, esta é feita mais frequentemente a partir do contexto de um livro do Azure. Nesta solução, vamos utilizar o que já está disponível no livro do Azure e melhorá-lo com mais detalhes, especialmente sobre ligações ativas.

  • AzureDiagnostics: Estes registos são recebidos ao ativar a Depuração P2S através das definições de depuração do Azure Monitor e ativar os seguintes registos: GatewayDiagnosticLog, IKEDiagnosticLog, P2SDiagnosticLog, AllMetrics. Alguns registos são ruidosos e dispendiosos em relação ao custo do Log Analytics, especialmente IKEDiagnostics.

  • Get-AzP2sVpnGatewayDetailedConnectionHealth: Este é um comando do PowerShell (em execução numa aplicação de funções) para obter detalhes de sessões ativas. Este comando só suporta o armazenamento de dados numa conta de armazenamento com base numa Chave SAS.

A figura seguinte mostra os componentes envolvidos na solução sugerida:

Captura de ecrã a mostrar a arquitetura do livro.

O serviço VPN está em execução no gateway de VPN P2S do Azure vWAN. Tem definições de métricas e depurações associadas que podem ser lidas a partir de um livro do Azure. Para obter as informações adicionais que o comando do PowerShell pode fornecer, optamos por executar este comando numa aplicação de funções do Azure. A partir da aplicação de funções, armazenamos a saída numa conta de armazenamento do Azure.

A saída armazenada na conta de armazenamento é obtida a partir do livro através de uma função especial denominada "externaldata".

Criar uma conta de armazenamento do Azure

  1. No portal, na barra Procurar recursos , escreva Contas de armazenamento.

  2. Selecione Contas de armazenamento nos resultados. Na página Contas de armazenamento, selecione + Criar para abrir a página Criar uma conta de armazenamento .

  3. Na página Criar WAN , no separador Noções Básicas , preencha os campos. Modifique os valores de exemplo a aplicar ao seu ambiente.

    Captura de ecrã a mostrar a secção básica da criação de uma conta de armazenamento.

    • Subscrição: selecione a subscrição que pretende utilizar
    • Grupo de recursos: Criar novo ou utilizar existente
    • Nome da conta de armazenamento: escreva o nome a que pretende chamar a sua conta de armazenamento
    • Região: selecione uma região para a sua conta de armazenamento
    • Desempenho: Standard ou Premium. A norma é adequada para os nossos objetivos de monitorização
    • Redundância: escolha entre armazenamento localmente redundante, Armazenamento georredundante, armazenamento com redundância entre zonas e armazenamento com redundância entre zonas geográficas

    Depois de concluir o preenchimento dos campos, na parte inferior da página, selecione Seguinte: Avançado>.

  4. Na página Avançadas , preencha os seguintes campos.

    Captura de ecrã a mostrar a secção avançada da criação de uma conta de armazenamento.

    • Exigir transferência segura para operações da API REST: selecione Ativado.
    • Ativar o acesso público do blob: selecione Desativado.
    • Ativar o acesso à chave da conta de armazenamento: selecione Ativado.
    • Predefinição da autorização do Azure Active Directory no portal do Azure: Selecione Ativado.
    • Versão mínima do TLS: selecione Versão 1.2.
  5. Selecione Rever + criar na parte inferior para executar a validação.

  6. Assim que a validação for aprovada, selecione Criar para criar a conta de armazenamento.

Criar contentor

  1. Assim que a implementação estiver concluída, aceda ao recurso.

  2. No painel esquerdo, selecione Contentores em Armazenamento de dados.

    Captura de ecrã a mostrar a página de contentor inicial.

  3. Selecione + Contentor para criar um novo contentor.

  4. Escreva um Nome para o contentor e selecione Criar.

Criar e carregar o blob para o contentor

  1. No seu computador, abra uma aplicação de editor de texto, como o Bloco de Notas.

    Captura de ecrã a mostrar como abrir o bloco de notas.

  2. Deixe o ficheiro de texto vazio e selecione Ficheiro –> Guardar Como.

  3. Guarde o ficheiro de texto vazio com um nome à sua escolha seguido da extensão .json .

    Captura de ecrã a mostrar como guardar o ficheiro json.

  4. Voltar para a secção Contentores no portal.

    Captura de ecrã a mostrar a secção do contentor depois de criar um novo contentor.

  5. Selecione na segunda linha, que corresponde ao contentor que criou (não $logs).

  6. Se vir esta mensagem de aviso vermelha a dizer "Não tem permissão...", selecione Mudar para a chave de Acesso como método de autenticação. Esta localização encontra-se mesmo por baixo da caixa de aviso vermelha.

  7. Selecione Carregar.

    Captura de ecrã a mostrar o contentor específico que foi criado pelo utilizador.

  8. Selecione o ficheiro correspondente ao ficheiro JSON vazio no seu computador e selecione Carregar.

  9. Depois de o ficheiro ser carregado, selecione no ficheiro JSON e navegue para o separador Gerar SAS .

    Captura de ecrã a mostrar o campo Gerar SAS para blob.

  10. Em Método de assinatura, selecione Chave de conta.

  11. Em Permissões, atribua à chave as seguintes permissões: Ler, Adicionar, Criar e Escrever.

  12. Escolha uma data e hora de expiração para a chave.

  13. Selecione Gerar token e URL de SAS.

  14. Copie o token SAS de Blob e o URL de SAS de Blobs para uma localização segura.

Criar aplicação de funções do Azure

  1. No portal, na barra Procurar recursos , escreva Aplicação de Funções.

  2. Selecione Aplicação de Funções nos resultados. Na página Aplicação de Funções, selecione + Criar para abrir a página Criar Aplicação de Funções .

  3. Na página Criar WAN , no separador Noções Básicas , preencha os campos. Modifique os valores de exemplo a aplicar ao seu ambiente.

    Captura de ecrã a mostrar o separador noções básicas da aplicação de funções.

    • Subscrição: selecione a subscrição que pretende utilizar
    • Grupo de recursos: Criar novo ou utilizar existente
    • Nome da Aplicação de Funções: escolha um nome para a Aplicação de Funções
    • Publicar: Selecionar Código
    • Pilha de tempo de execução: selecione PowerShell Core
    • Versão: escolha 7.0 (ou a sua versão preferida)
    • Região: escolha a sua região preferida
  4. Os restantes separadores são opcionais para alterar, pelo que pode selecionar Rever + criar e, em seguida, selecionar Criar quando a validação for aprovada.

  5. Aceda ao recurso da Aplicação de Funções .

  6. Selecione em Identidade em Definições no painel esquerdo. Alterne o botão Estado para Ativado para Sistema atribuído e selecione Guardar.

    Captura de ecrã a mostrar o separador identidade da aplicação de funções.

  7. Selecione em Configuração em Definições no painel esquerdo.

  8. Selecione em + Nova definição de aplicação. Captura de ecrã a mostrar o separador de adicionar uma definição de aplicação.

  9. Crie as 7 entradas seguintes ao introduzir o Nome e o Valor e, em seguida, selecione OK após cada valor..

    Name Valor
    "grupo de recursos" o seu grupo de recursos
    "sasuri" @Microsoft.KeyVault(SecretUri=https://\<keyvaultname>.vault.azure.net/secrets/sasuri/\<version>)
    --> atualize em conformidade após a criação do keyvault na secção seguinte.
    "subscrição" o seu ID de subscrição
    "tenantname" o seu ID de inquilino
    "vpngw" Este nome é algo como <guid-eastus-ps2-gw>. Pode obter isto a partir das definições de VPN de Utilizador do HUB vWAN.
  10. Selecione Guardar.

  11. Selecione Em Funções no painel esquerdo e selecione + Criar.

  12. Preencha os campos.

    Captura de ecrã a mostrar a página ao criar uma função.

    • Ambiente de Desenvolvimento: Desenvolver no portal
    • Modelo: Acionador de Temporizador
    • Nova Função: escolher um nome para a Função
    • Agenda: introduza uma expressão cron do formato '{second} {minute} {hour} {day} {month} {day of the week}' para especificar a agenda
  13. Selecione Código + Teste no painel esquerdo e escreva o seguinte código no ficheiro run.ps1 . Selecione Guardar.

    # 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. Navegue de volta para a página Function App e selecione no Serviço de Aplicações Editor no painel esquerdo, em Ferramentas de Desenvolvimento. Em seguida, selecione Ir -->.

  15. Aceda a requirements.psd1 e anule o comentário da linha a partir de "Az"... conforme mostrado.

    Captura de ecrã a mostrar o ficheiro de requisitos da aplicação de funções.

  16. Para que o comando get-AzP2sVpnGatewayDetailedConnectionHealth seja bem-sucedido, tem de ter as permissões certas para as informações. Navegue para o grupo de recursos e selecione "Controlo de Acesso (IAM)" no painel esquerdo. Isto corresponde à gestão de identidades e acessos. Atribua o acesso de leitura functionApp através do grupo de recursos.

Criar Key Vault do Azure

  1. No portal, na barra Procurar recursos , escreva Cofres de chaves.

  2. Selecione + Criar nos resultados para abrir a página Criar um cofre de chaves .

  3. No separador Informações Básicas , preencha os campos. Modifique os valores de exemplo a aplicar ao seu ambiente.

    Captura de ecrã a mostrar a secção noções básicas da criação de um cofre de chaves.

    • Subscrição: selecione a subscrição que pretende utilizar.
    • Grupo de recursos: crie um novo ou utilize o existente.
    • Nome da conta de armazenamento: escreva o nome a que pretende chamar o cofre de chaves.
    • Região: selecione uma região para a sua conta de armazenamento.
    • Escalão de preço: Standard ou Premium. A norma é adequada para os nossos objetivos de monitorização.
  4. Selecione Seguinte: Política >de acesso .

  5. Em Modelo de permissão, selecione Política de acesso do cofre.

  6. Deixe as opções em Acesso a recursos como desativado.

  7. Em Políticas de acesso, selecione + Criar.

    Captura de ecrã a mostrar o primeiro ecrã na criação da política de acesso.

  8. Selecione Seguinte para aceder ao separador Principal . Escreva o nome da sua aplicação de funções e selecione-a.

  9. Selecione Seguinte duas vezes para aceder ao quarto separador: Rever + criar e selecione Criar na parte inferior.

  10. Deverá agora ver a política de acesso recentemente criada na secção Políticas de acesso . Modificar os valores predefinidos no separador Rede é opcional, por isso, selecione Rever + criar no canto inferior esquerdo.

  11. Aceda a Segredos em Objetos no painel esquerdo do recurso do cofre de chaves. Selecione + Gerar/Importar e adicione o segredo da seguinte forma:

    • Nome: sasuri
    • valor: <SASURI>
    • Ativado: Sim
  12. Voltar para o separador Configuração da Aplicação de Funções e modifique a seguinte entrada. O valor provém do campo Identificador secreto que aparece depois de clicar no segredo:

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

Criar Livro do Azure

O livro do Azure está agora pronto para ser criado. Vamos utilizar uma combinação de funcionalidades incorporadas e os detalhes de sessão adicionados da nossa solução de aplicação de funções.

  1. Navegue para o recurso WAN Virtual e selecione Informações em Monitorizar no painel esquerdo. Selecione Livros e , em seguida, selecione + Novo. Captura de ecrã a mostrar o primeiro passo na criação do Livro do Azure.

  2. Adicione a seguinte consulta ao livro. Substitua "SASURI" pelo seu 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. Para ver os resultados, selecione o botão azul Executar Consulta para ver os resultados.

  4. Se vir o seguinte erro, navegue de volta para o ficheiro (vpnstatfile.json) no blob do contentor de armazenamento e volte a gerar o URL de SAS. Em seguida, cole o URL de SAS atualizado na consulta.

    Captura de ecrã a mostrar o erro ao executar a consulta no livro.

  5. Guarde o livro para voltar ao mesmo mais tarde.

  6. Para as seguintes métricas, tem de ativar o registo de diagnósticos ao adicionar definições de diagnóstico no portal do Azure. Preencha os campos necessários para a subscrição e o grupo de recursos. Para tipo de recurso, escreva "microsoft.network/p2svpngateways". Adicione uma definição de diagnóstico (ou edite a definição de diagnóstico atual) para o gateway ponto a site que pretende monitorizar.

    Captura de ecrã a mostrar a primeira página Definições de diagnóstico no Azure Monitor.

  7. Ative allLogs e allMetrics e opte por enviar para a "área de trabalho do Log Analytics" como destino. Alguns registos são ruidosos e podem ser dispendiosos (especificamente IKEDiagnosticLog). Como resultado, não hesite em ativar apenas registos específicos que pretenda ver em vez de ativar allLogs.

    Captura de ecrã a mostrar a segunda página Definições de diagnóstico no Azure Monitor.

Consultas de exemplo

A secção seguinte mostra consultas de exemplo.

Ligações com êxito do Utilizador P2S com IP

Captura de ecrã a mostrar a consulta para ligações P2S bem-sucedidas com o IP.

Autenticação EAP (Extensible Authentication Protocol) efetuada com êxito

Captura de ecrã a mostrar a consulta das métricas de Autenticação EAP.

Informações de utilizador da VPN P2S

Captura de ecrã a mostrar a consulta das Informações de Utilizador da VPN P2S.

Ligações com êxito da VPN P2S por utilizador

Captura de ecrã a mostrar a consulta das ligações com êxito da VPN P2S.

Ligações VPN P2S

Captura de ecrã a mostrar a consulta das ligações VPN P2S.

Ligações VPN P2S bem-sucedidas

Captura de ecrã a mostrar a consulta para ligações VPN P2S bem-sucedidas.

Falha nas ligações VPN P2S

Captura de ecrã a mostrar a consulta de ligações VPN P2S com falhas.

Contagem de ligações VPN por P2SDiagnosticLog

Captura de ecrã a mostrar a consulta da contagem de ligações VPN.

IKEDiagnosticLog

Captura de ecrã a mostrar a consulta para IKEDiagnosticLog.

Detalhes de diagnóstico do IKE adicionais

Captura de ecrã a mostrar a consulta dos detalhes do Diagnóstico IKE.

Estatísticas de VPN P2S

Captura de ecrã a mostrar a consulta das estatísticas de VPN P2S.

Passos seguintes

Para saber mais sobre as perguntas mais frequentes, consulte a página WAN Virtual FAQ.