Neste artigo, você vai aprender a usar o recurso de captura de pacotes do Observador de Rede do Azure para configurar, começar, parar, baixar e excluir capturas de pacotes remotamente.
Pré-requisitos
Uma conta do Azure com uma assinatura ativa.
Crie uma conta gratuitamente.
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 conta de armazenamento do Azure com conectividade TCP de saída da VM por meio da porta 443
. Se você não tiver uma conta de armazenamento, confira Criar uma conta de armazenamento usando o portal do Azure.
- A conta de armazenamento deve ser acessível na sub-rede da máquina virtual de destino ou do conjunto de dimensionamento. Para saber mais, consulte Configurar Redes Virtuais e Firewalls de Armazenamento do Azure.
- O acesso à chave da conta de armazenamento deve ser habilitado para permitir solicitações do Observador de Rede usando tokens SAS (assinatura de acesso compartilhado).
Entre no portal do Azure com sua conta do Azure.
Uma conta do Azure com uma assinatura ativa.
Crie uma conta gratuitamente.
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.
Extensão de VM do Agente do Observador de Rede instalada na máquina virtual de destino. Para obter mais informações, consulte Gerenciar extensão de VM do Agente do Observador de Rede para Windows ou Gerenciar extensão de VM do Agente do Observador de Rede para Linux.
Uma conta de armazenamento do Azure com conectividade TCP de saída da VM por meio da porta 443
. Se você não tiver uma conta de armazenamento, consulte Criar uma conta de armazenamento usando o PowerShell.
- A conta de armazenamento deve ser acessível na sub-rede da máquina virtual de destino ou do conjunto de dimensionamento. Para saber mais, consulte Configurar Redes Virtuais e Firewalls de Armazenamento do Azure.
- O acesso à chave da conta de armazenamento deve ser habilitado para permitir solicitações do Observador de Rede usando tokens SAS (assinatura de acesso compartilhado).
Azure Cloud Shell ou Azure PowerShell.
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 conta do Azure com uma assinatura ativa.
Crie uma conta gratuitamente.
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.
Extensão de VM do Agente do Observador de Rede instalada na máquina virtual de destino. Para obter mais informações, consulte Gerenciar extensão de VM do Agente do Observador de Rede para Windows ou Gerenciar extensão de VM do Agente do Observador de Rede para Linux.
Uma conta de armazenamento do Azure com conectividade TCP de saída da VM por meio da porta 443
. Se você não tiver uma conta de armazenamento, confira Criar uma conta de armazenamento usando a CLI do Azure.
- A conta de armazenamento deve ser acessível na sub-rede da máquina virtual de destino ou do conjunto de dimensionamento. Para saber mais, consulte Configurar Redes Virtuais e Firewalls de Armazenamento do Azure.
- O acesso à chave da conta de armazenamento deve ser habilitado para permitir solicitações do Observador de Rede usando tokens SAS (assinatura de acesso compartilhado).
Azure Cloud Shell ou CLI 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.
Você também pode instalar a CLI do Azure localmente para executar os comandos. Se você executar a CLI do Azure localmente, entre no Azure usando o comando az login .
Observação
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 da máquina virtual ou à sub-rede em que o adaptador de rede está, verifique se existem regras para permitir a conectividade de saída. Da mesma forma, garanta a conectividade de saída ao adicionar rotas definidas pelo usuário à sua rede.
Iniciar uma captura de pacotes
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 |
|
Subscrição |
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.
Para iniciar uma sessão de captura, use o cmdlet New-AzNetworkWatcherPacketCapture:
# Place the virtual machine configuration into a variable.
$vm = Get-AzVM -ResourceGroupName 'myResourceGroup' -Name 'myVM'
# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -ResourceGroupName 'myResourceGroup' -Name 'mystorageaccount'
# Start the Network Watcher capture session.
New-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1' -TargetVirtualMachineId $vm.Id -StorageAccountId $storageAccount.Id
Depois que a sessão de captura for iniciada, você verá a seguinte saída:
ProvisioningState Name BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ----------------------- -------------------- ------------------
Succeeded myVM_1 0 1073741824 18000
A tabela a seguir descreve os parâmetros opcionais que você pode usar com o cmdlet New-AzNetworkWatcherPacketCapture:
Parâmetro |
descrição |
-Filter |
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.
Para iniciar uma sessão de captura, use o comando az network watcher packet-capture create:
# 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:
{
"bytesToCapturePerPacket": 0,
"etag": "W/\"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb\"",
"filters": [],
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/packetCaptures/myVM_1",
"name": "myVM_1",
"provisioningState": "Succeeded",
"resourceGroup": "NetworkWatcherRG",
"scope": {
"exclude": [],
"include": []
},
"storageLocation": {
"storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
"storagePath": "https://mystorageaccount.blob.core.windows.net/network-watcher-logs/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm/2025/01/31/packetcapture_16_39_41_077.cap"
},
"target": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"targetType": "AzureVM",
"timeLimitInSeconds": 18000,
"totalBytesPerSession": 1073741824
}
A tabela a seguir descreve os parâmetros opcionais que você pode usar com o comando az network watcher packet-capture create:
Parâmetro |
descrição |
--filters |
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.
Parar uma captura de pacotes
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.
# Manually stop a packet capture session.
Stop-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Observação
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.
Exibir status de captura de pacotes
Vá para a página Captura de pacotes do Observador de Rede para listar as capturas de pacotes existentes, independentemente de seu status.
Use o cmdlet Get-AzNetworkWatcherPacketCapture para recuperar o status de uma captura de pacotes (em execução ou concluída).
# 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.
ProvisioningState Name Target BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ------ ----------------------- -------------------- ------------------
Succeeded myVM_1 /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM 0 1073741824 18000
Observação
Para obter mais detalhes na saída, adicione | Format-List
ao final do comando.
Use o comando az network watcher packet-capture show-status para recuperar o status de uma captura de pacote (em execução ou concluída).
# 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:
{
"additionalProperties": {
"status": "Succeeded"
},
"captureStartTime": "2016-12-06T17:20:01.5671279Z",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/packetCaptures/myVM_1",
"name": "packetCaptureName",
"packetCaptureError": [],
"packetCaptureStatus": "Stopped",
"stopReason": "TimeExceeded"
}
Baixar um pacote de capturas
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 em 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.
Você também pode baixar arquivos de captura indo diretamente para o contêiner da conta de armazenamento no seguinte caminho:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Se uma conta de armazenamento for especificada, os arquivos de captura serão salvos na conta de armazenamento no seguinte caminho:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
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'
Se uma conta de armazenamento for especificada, os arquivos de captura serão salvos na conta de armazenamento no seguinte caminho:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
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ê pode usar o Gerenciador de Armazenamento do Azure para baixar os arquivos de captura a partir do contêiner da conta de armazenamento. 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.
Importante
Durante a sessão de captura de pacotes, o arquivo de captura pode não aparecer imediatamente no contêiner da conta de armazenamento porque, inicialmente, é salvo em um local temporário. O arquivo é transferido para seu local definitivo após a conclusão da sessão de captura.
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.
Excluir uma captura de pacote
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.
Selecione Sim.
Use Remove-AzNetworkWatcherPacketCapture para excluir um recurso de captura de pacotes.
# Delete a packet capture resource.
Remove-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Use az network watcher packet-capture delete para excluir um recurso de captura de pacote.
# 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.
Conteúdo relacionado