Gerenciar capturas de pacotes com o Observador de Rede do Azure
Artigo
Neste artigo, você aprenderá a usar o recurso captura de pacotes do Observador de Rede do Azure para configurar, iniciar, parar, baixar e excluir remotamente capturas de pacotes de máquina virtual.
Uma VM (máquina virtual) ou um conjunto de dimensionamento de máquinas virtuais com conectividade TCP de saída para: 169.254.169.254 pela porta 80 e 168.63.129.16 pela porta 8037. A extensão de VM do agente do Observador de Rede usa esses endereços IP para se comunicar com a plataforma do Azure.
Extensão de VM do Agente do Observador de Rede instalada na máquina virtual de destino. Sempre que você usa a captura de pacotes do Observador de Rede no portal do Azure, o agente é instalado automaticamente na VM de destino ou no conjunto de dimensionamento se ele não tiver sido instalado anteriormente. Para atualizar um agente já instalado, consulte Atualizar a extensão do Observador de Rede para a versão mais recente.
Uma máquina virtual (VM) com conectividade TCP de saída para: 169.254.169.254 pela porta 80 e 168.63.129.16 pela porta 8037. A extensão de VM do agente do Observador de Rede usa esses endereços IP para se comunicar com a plataforma do Azure.
As etapas desse artigo executam os cmdlets do Azure PowerShell interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir o Cloud Shell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e cole-o no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell no portal do Azure.
Você também pode instalar o Azure PowerShell localmente para executar os cmdlets. Esse artigo requer o módulo Az PowerShell. Para obter mais informações, veja Como instalar o Azure PowerShell. Se você executar o PowerShell localmente, entre no Azure usando a cmdlet Connect-AzAccount.
Uma máquina virtual (VM) com conectividade TCP de saída para: 169.254.169.254 pela porta 80 e 168.63.129.16 pela porta 8037. A extensão de VM do agente do Observador de Rede usa esses endereços IP para se comunicar com a plataforma do Azure.
As etapas desse artigo executam os comandos da CLI do Azure interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir o Cloud Shell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e colá-lo no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell no portal do Azure.
O Azure cria uma instância do Observador de Rede na região da máquina virtual se o Observador de Rede não estiver habilitado para essa região. Para obter mais informações, consulte Habilitar ou desabilitar o Observador de Rede do Azure.
Se um grupo de segurança de rede estiver associado ao adaptador de rede ou à sub-rede na qual o adaptador de rede está, verifique se de existem regras que permitem a conectividade de saída nas portas anteriores. Da mesma forma, verifique a conectividade de saída nas portas anteriores ao adicionar rotas definidas pelo usuário à rede.
Para iniciar uma sessão de captura, use as seguintes etapas:
Na caixa de pesquisa na parte superior do portal, insira Observador de Rede. Selecione Observador de Rede nos resultados da pesquisa.
Selecione Captura de pacotes em Ferramentas de diagnóstico de rede e selecione + Adicionar para criar uma captura de pacotes.
Em Adicionar captura de pacote, insira ou selecione valores para as seguintes configurações:
Configuração
Valor
Detalhes básicos
Subscription
Selecione a assinatura do Azure da máquina virtual.
Grupo de recursos
Selecione o grupo de recursos da máquina virtual.
Tipo de destino
Selecione Máquina virtual ou Conjunto de dimensionamento de máquinas virtuais.
Conjunto de dimensionamento de máquinas virtuais de destino
Selecione o conjunto de dimensionamento de máquinas virtuais. Essa opção estará disponível se você selecionar Conjunto de dimensionamento de máquinas virtuais como o tipo de destino.
Instância de destino
Selecione a máquina virtual ou a instância do conjunto de dimensionamento.
Nome da captura de pacotes
Digite um nome ou mantenha o nome padrão.
Configuração da captura de pacotes
Capturar localização
Selecione Conta de armazenamento (opção padrão), Arquivo ou Ambos.
Conta de armazenamento
Selecione sua conta de armazenamento Standard1. Essa opção estará disponível se você selecionar Conta de armazenamento ou Ambos como um local de captura. A conta de armazenamento deve estar na mesma região que a instância de destino.
Caminho de arquivo local
Insira um caminho de arquivo local válido em que você deseja que a captura seja salva na máquina virtual de destino. Se você estiver usando uma máquina Linux, o caminho pode começar com /var/captures. Se você estiver usando um computador Windows, o caminho pode começar com C:\Captures. Essa opção estará disponível se você selecionar Arquivo ou Ambos como um local de captura.
Máximo de bytes por pacote
Insira o número máximo de bytes a serem capturados por cada pacote. Todos os bytes serão capturados se forem deixados em branco ou se for inserido 0.
Máximo de bytes por sessão
Insira o número total de bytes capturados. Quando o valor é atingido, a captura de pacotes é interrompida. Até 1 GB será capturado se deixado em branco.
Tempo limite (segundos)
Insira o limite de tempo da sessão de captura de pacotes em segundos. Quando o valor é atingido, a captura de pacotes é interrompida. Até 5 horas (18.000 segundos) são capturadas se deixado em branco.
Filtragem (opcional)
Adicionar critérios de filtro
Selecione Adicionar critérios de filtro para adicionar um novo filtro. Você pode definir tantos filtros quantos forem necessários.
Protocolo
Filtra a captura de pacotes com base no protocolo selecionado. Os valores disponíveis são TCP, UDP ou Qualquer.
Endereço IP local2
Filtra a captura de pacote para pacotes em que o endereço IP local corresponde a esse valor.
Porta local2
Filtra a captura de pacotes para os pacotes em que a porta local corresponde a esse valor.
Endereço IP remoto2
Filtra a captura de pacote para pacotes em que o endereço IP remoto corresponde a esse valor.
Porta remota2
Filtra a captura de pacotes para os pacotes em que a porta remota corresponde a esse valor.
1 As contas de armazenamento Premium atualmente não têm suporte para armazenar as capturas de pacotes.
2 Os valores da porta e do endereço IP podem ser apenas um valor, um intervalo, como 80-1024, ou vários valores, como 80, 443.
Selecione Iniciar captura de pacotes.
A captura de pacotes é interrompida quando o limite de tempo ou o tamanho do arquivo (máximo de bytes por sessão) é atingido.
Adicione filtros para capturar apenas o tráfego desejado. Por exemplo, você pode capturar apenas o tráfego TCP de um endereço IP específico para uma porta específica.
-TimeLimitInSeconds
Defina a duração máxima da sessão de captura. O valor padrão é 18000 segundos (5 horas).
-BytesToCapturePerPacket
Defina o número máximo de bytes a serem capturados por cada pacote. Todos os bytes serão capturados se não forem usados ou se for inserido 0.
-TotalBytesPerSession
Defina o número total de bytes capturados. Quando o valor é atingido, a captura de pacotes é interrompida. Até 1 GB (1.073.741.824 bytes) será capturado se não for usado.
-LocalFilePath
Insira um caminho de arquivo local válido se desejar que a captura seja salva na máquina virtual de destino (por exemplo, C:\Capture\myVM_1.cap). Se você estiver usando um computador Linux, o caminho deverá começar com /var/captures.
A captura de pacotes é interrompida quando o limite de tempo ou o tamanho do arquivo (máximo de bytes por sessão) é atingido.
# Start the Network Watcher capture session.
az network watcher packet-capture create --name 'myVM_1' --resource-group 'myResourceGroup' --vm 'myVM' --storage-account 'mystorageaccount'
# Start the Network Watcher capture session (storage account is in different resource group from the VM).
az network watcher packet-capture create --name 'myVM_1' --resource-group 'myResourceGroup' --vm 'myVM' --storage-account '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup2/providers/Microsoft.Storage/storageAccounts/mystorageaccount'
Depois que a sessão de captura for iniciada, você verá a seguinte saída:
Adicione filtros para capturar apenas o tráfego desejado. Por exemplo, você pode capturar apenas o tráfego TCP de um endereço IP específico para uma porta específica.
--time-limit
Defina a duração máxima da sessão de captura. O valor padrão é 18000 segundos (5 horas).
--capture-size
Defina o número máximo de bytes a serem capturados por cada pacote. Todos os bytes serão capturados se não forem usados ou se for inserido 0.
--capture-limit
Defina o número total de bytes capturados. Quando o valor é atingido, a captura de pacotes é interrompida. Até 1 GB (1.073.741.824 bytes) será capturado se não for usado.
--file-path
Insira um caminho de arquivo local válido se desejar que a captura seja salva na máquina virtual de destino (por exemplo, C:\Capture\myVM_1.cap). Se você estiver usando um computador Linux, o caminho deverá começar com /var/captures.
A captura de pacotes é interrompida quando o limite de tempo ou o tamanho do arquivo (máximo de bytes por sessão) é atingido.
Para interromper manualmente uma sessão de captura de pacotes antes que ela atinja seus limites de tempo ou tamanho de arquivo, selecione as reticências ... no lado direito da captura de pacotes, clique com o botão direito do mouse e selecione Parar.
Para interromper manualmente uma sessão de captura de pacotes antes que ela atinja seus limites de tempo ou tamanho de arquivo, use o cmdlet Stop-AzNetworkWatcherPacketCapture.
O cmdlet não retorna uma resposta, seja executado em uma sessão de captura em andamento ou em uma sessão que já foi encerrada.
Para interromper manualmente uma sessão de captura de pacotes antes que ela atinja seus limites de tempo ou tamanho de arquivo, use o comando az network watcher packet-capture stop.
# Manually stop a packet capture session.
az network watcher packet-capture stop --location 'eastus' --name 'myVM_1'
Observação
O comando não retorna uma resposta se foi executado em uma sessão de captura em execução no momento ou em uma sessão que já foi interrompida.
# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
A saída a seguir é um exemplo da saída do cmdlet Get-AzNetworkWatcherPacketCapture. O exemplo a seguir é após a conclusão da captura. O valor de PacketCaptureStatus é Parado, com um StopReason de TimeExceeded. Esse valor mostra que a captura de pacote foi bem-sucedida e executou seu tempo.
# Get information, properties, and status of a packet capture.
az network watcher packet-capture show-status --location 'eastus' --name 'myVM_1'
O exemplo a seguir mostra a saída JSON do az network watcher packet-capture show-status comando. Você pode ver que o valor packetCaptureStatus é Stopped, com um valor StopReason de TimeExceeded:
Quando a sessão de captura de pacotes for concluída, o arquivo de captura resultante será salvo em um armazenamento do Azure, em um arquivo local na máquina virtual de destino ou ambos. O destino de armazenamento para a captura de pacotes é especificado durante a criação dela. Para obter mais informações, consulte a seção Iniciar uma captura de pacotes.
Para baixar um arquivo de captura de pacotes salvo no armazenamento do Azure, siga estas etapas:
Na página captura de pacotes, selecione a captura de pacotes cujo arquivo você deseja baixar.
Na seção Detalhes, selecione o link do arquivo de captura de pacotes.
Na página de blob, selecione Baixar.
Observação
Você também pode baixar o arquivo de captura do contêiner da conta de armazenamento usando o portal do Azure ou o Gerenciador de Armazenamento1 no seguinte caminho:
1 O Gerenciador de Armazenamento é um aplicativo autônomo que você pode usar para, de maneira prática, acessar e trabalhar com os dados do Armazenamento do Azure. Para obter mais informações, confira Introdução ao Gerenciador de Armazenamento.
Para baixar um arquivo de captura de pacote salvo na VM (máquina virtual), conecte-se à VM e baixe o arquivo do caminho local especificado durante a criação da captura de pacotes.
Quando a sessão de captura de pacotes for concluída, o arquivo de captura resultante será salvo em um armazenamento do Azure, em um arquivo local na máquina virtual de destino ou ambos. O destino de armazenamento para a captura de pacotes é especificado durante a criação dela. Para obter mais informações, consulte a seção Iniciar uma captura de pacotes.
Se uma conta de armazenamento for especificada, os arquivos de captura serão salvos na conta de armazenamento no seguinte caminho:
Para baixar uma captura de pacote do armazenamento do Azure para o disco local, use o cmdlet Get-AzStorageBlobContent:
# Download the packet capture file from Azure storage container.
Get-AzStorageBlobContent -Container 'network-watcher-logs' -Blob '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm/2024/01/25/packetcapture_22_44_54_342.cap' -Destination 'C:\Capture\myVM_1.cap'
Observação
Você também pode baixar o arquivo de captura no contêiner da conta de armazenamento usando o Gerenciador de Armazenamento do Azure. O Gerenciador de Armazenamento é um aplicativo autônomo que você pode usar para, de maneira prática, acessar e trabalhar com os dados do Armazenamento do Azure. Para obter mais informações, confira Introdução ao Gerenciador de Armazenamento.
Quando a sessão de captura de pacotes for concluída, o arquivo de captura resultante será salvo em um armazenamento do Azure, em um arquivo local na máquina virtual de destino ou ambos. O destino de armazenamento para a captura de pacotes é especificado durante a criação dela. Para obter mais informações, consulte a seção Iniciar uma captura de pacotes.
Se uma conta de armazenamento for especificada, os arquivos de captura serão salvos na conta de armazenamento no seguinte caminho:
Para baixar uma captura de pacote do armazenamento do Azure para o disco local, use o comando az storage blob download:
# Download the packet capture file from Azure storage container.
az storage blob download --container-name 'network-watcher-logs' --blob-url '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm/2024/01/25/packetcapture_22_44_54_342.cap' --file 'C:\Capture\myVM_1.cap'
Observação
Você também pode baixar o arquivo de captura no contêiner da conta de armazenamento usando o Gerenciador de Armazenamento do Azure. O Gerenciador de Armazenamento é um aplicativo autônomo que você pode usar para, de maneira prática, acessar e trabalhar com os dados do Armazenamento do Azure. Para obter mais informações, confira Introdução ao Gerenciador de Armazenamento.
Na página Captura de pacotes, selecione ... no lado direito da captura de pacotes que você deseja excluir ou clique com o botão direito do mouse e selecione Excluir.
# Delete a packet capture resource.
az network watcher packet-capture delete --location 'eastus' --name 'myVM_1'
Importante
A exclusão do recurso de captura de pacotes no Observador de Rede não exclui o arquivo de captura da conta de armazenamento ou da máquina virtual. Se você não precisar mais do arquivo de captura, deverá excluí-lo manualmente da conta de armazenamento ou da máquina virtual.