Monitore gateways VPN com a solução de problemas do Inspetor de Rede
Obter insights profundos sobre o desempenho da sua rede é fundamental para fornecer serviços confiáveis aos clientes. Portanto, é fundamental detetar rapidamente as condições de interrupção da rede e tomar medidas corretivas para mitigar a condição de interrupção. A Automação do Azure permite implementar e executar uma tarefa de forma programática por meio de runbooks. Usar a Automação do Azure cria uma receita perfeita para executar monitoramento e alertas de rede contínuos e proativos.
Cenário
O cenário na imagem a seguir é um aplicativo de várias camadas, com conectividade local estabelecida usando um gateway VPN e túnel. Garantir que o VPN Gateway esteja instalado e funcionando é fundamental para o desempenho dos aplicativos.
Um runbook é criado com um script para verificar o status da conexão do túnel VPN, usando a API de Solução de Problemas de Recursos para verificar o status do túnel de conexão. Se o status não estiver íntegro, um gatilho de e-mail será enviado aos administradores.
Este cenário irá:
- Criar um runbook chamando o cmdlet para solucionar problemas de status da
Start-AzureRmNetworkWatcherResourceTroubleshooting
conexão - Vincular uma agenda ao runbook
Antes de começar
Antes de iniciar esse cenário, você deve ter os seguintes pré-requisitos:
- Uma conta de automação do Azure no Azure. Certifique-se de que a conta de automação tem os módulos mais recentes e também tem o módulo AzureRM.Network. O módulo AzureRM.Network está disponível na galeria de módulos se você precisar adicioná-lo à sua conta de automação.
- Você deve ter um conjunto de credenciais configuradas na Automação do Azure. Saiba mais em Segurança de automação do Azure
- Um servidor SMTP válido (Microsoft 365, seu email local ou outro) e credenciais definidas na Automação do Azure
- Um Gateway de Rede Virtual configurado no Azure.
- Uma conta de armazenamento existente com um contêiner existente para armazenar os logons.
Nota
A infraestrutura retratada na imagem anterior é para fins ilustrativos e não são criadas com as etapas contidas neste artigo.
Criar o runbook
A primeira etapa para configurar o exemplo é criar o runbook.
Passo 1
Navegue até Automação do Azure no portal do Azure e clique em Runbooks
Passo 2
Clique em Adicionar um runbook para iniciar o processo de criação do runbook.
Passo 3
Em Criação Rápida, clique em Criar um novo runbook para criar o runbook.
Passo 4
Nesta etapa, damos um nome ao runbook, no exemplo ele é chamado Get-VPNGatewayStatus. É importante dar ao runbook um nome descritivo e é recomendável dar-lhe um nome que siga os padrões de nomenclatura padrão do PowerShell. O tipo de runbook para este exemplo é PowerShell, as outras opções são Gráfico, fluxo de trabalho do PowerShell e fluxo de trabalho do PowerShell Gráfico.
Passo 5
Nesta etapa o runbook é criado, o exemplo de código a seguir fornece todo o código necessário para o exemplo. Os itens no código que contêm <valor> precisam ser substituídos pelos valores da sua assinatura.
Use o seguinte código como clique em Salvar
# 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)")
}
Passo 6
Depois que o runbook é salvo, um cronograma deve ser vinculado a ele para automatizar o início do runbook. Para iniciar o processo, clique em Agendar.
Vincular uma agenda ao runbook
Um novo cronograma deve ser criado. Clique em Vincular uma agenda ao seu runbook.
Passo 1
Na folha Agendar, clique em Criar uma nova agenda
Passo 2
Na folha Nova agenda, preencha as informações da agenda. Os valores que podem ser definidos estão na seguinte lista:
- Nome - O nome amigável da agenda.
- Descrição - Descrição do horário.
- Inícios - Este valor é uma combinação de data, hora e fuso horário que compõem a hora que a agenda dispara.
- Recorrência - Este valor determina a repetição dos horários. Os valores válidos são Once ou Recurring.
- Recorrente a cada - O intervalo de recorrência do cronograma em horas, dias, semanas ou meses.
- Definir Expiração - O valor determina se o cronograma deve expirar ou não. Pode ser definido como Sim ou Não. Em caso afirmativo, deve ser indicada uma data e hora válidas.
Nota
Se você precisar ter um runbook executado com mais frequência do que a cada hora, várias agendas devem ser criadas em intervalos diferentes (ou seja, 15, 30, 45 minutos após a hora)
Passo 3
Clique em Salvar para salvar a agenda no runbook.
Próximos passos
Agora que você já entendeu como integrar a solução de problemas do Inspetor de Rede com a Automação do Azure, saiba como acionar capturas de pacotes em alertas de VM visitando Criar uma captura de pacote acionada por alerta com o Observador de Rede do Azure.