Gerenciar capturas de pacotes em conjuntos de dimensionamento de máquinas virtuais com o Observador de Rede do Azure usando o PowerShell
A captura de pacotes do Observador de Rede permite que você crie sessões de captura para controlar o tráfego de/para instâncias de conjunto de dimensionamento de máquinas virtuais. Os filtros são fornecidos para a sessão de captura garantir que somente o tráfego que você deseja capturar. A captura de pacote ajuda a diagnosticar problemas de rede de maneiras reativas e proativas. Outros usos incluem a coleta de estatísticas de rede, obter informações sobre as invasões de rede, depurar comunicações entre cliente e servidor e muito mais. A capacidade de disparar remotamente as capturas de pacotes alivia o esforço de executar uma captura de pacotes manualmente nas instâncias do conjunto de dimensionamento de máquinas virtuais desejadas, o que economiza tempo.
Este artigo o guiará durante as tarefas de gerenciamento diferentes que estão atualmente disponíveis para captura de pacote.
- Iniciar uma captura de pacote
- Parar uma captura de pacotes
- Excluir uma captura de pacote
- Baixar uma captura de pacote
Antes de começar
Este artigo pressupõe que você tenha os seguintes recursos:
- Uma instância do Observador de Rede na região na qual você deseja criar uma captura de pacotes
Importante
A captura de pacotes exige uma extensão de conjunto de dimensionamento de máquinas virtuais AzureNetworkWatcherExtension
. Para instalar a extensão em uma VM do Windows, visite Extensão da máquina virtual do Agente do Observador de Rede do Azure para Windows e para a VM do Linux, visite Extensão da máquina virtual do Agente do Observador de Rede do Azure para Linux.
Instalar uma extensão de conjunto de dimensionamento de máquinas virtuais
Etapa 1
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Etapa 2
Instalar o networkWatcherAgent no conjunto de dimensionamento de máquinas virtuais ou nas instâncias do conjunto de dimensionamento de máquinas virtuais
Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "AzureNetworkWatcherExtension" -Publisher "Microsoft.Azure.NetworkWatcher" -Type "NetworkWatcherAgentWindows" -TypeHandlerVersion "1.4" -AutoUpgradeMinorVersion $True
Update-AzVmss -ResourceGroupName "$resourceGroupName" -Name $virtualMachineScaleSetName -VirtualMachineScaleSet $vmss
Update-AzVmssInstance -ResourceGroupName "$resourceGroupName" -VMScaleSetName $vmss.Name -InstanceId 0
> The `Set-AzVMExtension` cmdlet may take several minutes to complete.
Etapa 3
Para garantir que o agente esteja instalado, siga a Etapa 1
Get-AzVMss -ResourceGroupName $vmss.ResourceGroupName -VMNScaleSetName $vmss.Name
Iniciar uma captura de pacotes
Quando as etapas anteriores forem concluídas, o agente de captura de pacotes estará instalado no conjunto de dimensionamento de máquinas virtuais.
Etapa 1
A próxima etapa é recuperar a instância do Observador de Rede. Essa variável é passada para o cmdlet New-AzNetworkWatcherPacketCapture
na etapa 4.
$networkWatcher = Get-AzNetworkWatcher | Where {$_.Location -eq "westcentralus" }
Etapa 2
Recupere uma conta de armazenamento. Essa conta de armazenamento é usada para armazenar o arquivo de captura de pacote.
$storageAccount = Get-AzStorageAccount -ResourceGroupName testrg -Name testrgsa123
Etapa 3
Filtros podem ser usados para limitar os dados armazenados por pacote de captura. O exemplo a seguir configura dois filtros. Um filtro coleta o tráfego de saída TCP somente do IP local 10.0.0.3 até as portas de destino 20, 80 e 443. O segundo filtro coleta apenas o tráfego UDP.
$filter1 = New-AzPacketCaptureFilterConfig -Protocol TCP -RemoteIPAddress "1.1.1.1-255.255.255.255" -LocalIPAddress "10.0.0.3" -LocalPort "1-65535" -RemotePort "20;80;443"
$filter2 = New-AzPacketCaptureFilterConfig -Protocol UDP
Observação
Vários filtros podem ser definidos para uma captura de pacote.
Etapa 4
Criar o escopo da captura de pacotes
$s1 = New-AzPacketCaptureScopeConfig -Include "0", "1"
Etapa 5
Execute o cmdlet New-AzNetworkWatcherPacketCaptureV2
para iniciar o processo de captura de pacotes, passando os valores necessários recuperados nas etapas anteriores.
New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkwatcher -PacketCaptureName $pcName -TargetId $vmss.Id -TargetType "azurevmss" -StorageAccountId $storageAccount.id -Filter $filter1, $filter2
Obter uma captura de pacote
Executando o Get-AzNetworkWatcherPacketCapture
cmdlet, recupera o status de uma captura de pacote atualmente em execução ou concluído.
Get-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
O exemplo a seguir é a 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.
Name : PacketCaptureTest
Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatcher
s/NetworkWatcher_westcentralus/packetCaptures/PacketCaptureTest
Etag : W/"4b9a81ed-dc63-472e-869e-96d7166ccb9b"
ProvisioningState : Succeeded
Target : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm1
BytesToCapturePerPacket : 0
TotalBytesPerSession : 1073741824
TimeLimitInSeconds : 60
StorageLocation : {
"StorageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/Microsoft.Storage/storageA
ccounts/examplestorage",
"StoragePath": "https://examplestorage.blob.core.windows.net/network-watcher-logs/subscriptions/00000000-0000-0000-0000-00000
0000000/resourcegroups/testrg/providers/microsoft.compute/virtualmachines/testvm1/2017/02/01/packetcapture_22_42_48_238.cap"
}
Filters : [
{
"Protocol": "TCP",
"RemoteIPAddress": "1.1.1.1-255.255.255",
"LocalIPAddress": "10.0.0.3",
"LocalPort": "1-65535",
"RemotePort": "20;80;443"
},
{
"Protocol": "UDP",
"RemoteIPAddress": "",
"LocalIPAddress": "",
"LocalPort": "",
"RemotePort": ""
}
]
CaptureStartTime : 2/1/2017 10:43:01 PM
PacketCaptureStatus : Stopped
StopReason : TimeExceeded
PacketCaptureError : []
Parar uma captura de pacotes
Ao executar o cmdlet Stop-AzNetworkWatcherPacketCapture
, se uma sessão de captura estiver em andamento, ela será interrompida.
Stop-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Observação
O cmdlet retorna sem resposta quando executado em uma sessão de captura atualmente em execução ou uma sessão existente que já foi interrompido.
Excluir uma captura de pacotes
Remove-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Observação
Excluir uma captura de pacotes não exclui o arquivo na conta de armazenamento.
Baixar um pacote de capturas
Quando a sessão de captura de pacotes for concluído, o arquivo de captura pode ser carregado no Armazenamento de Blobs ou em um arquivo local na VM. O local de armazenamento da captura de pacotes é definido na criação da sessão. Uma ferramenta conveniente para acessar esses arquivos de captura salvos em uma conta de armazenamento é o Gerenciador de Armazenamento do Microsoft Azure, que pode ser baixado aqui: https://storageexplorer.com/
Se uma conta de armazenamento for especificada, os arquivos de captura de pacote serão salvos em uma conta de armazenamento no seguinte local:
Se várias instâncias forem selecionadas
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachinescalesets/{VMSSName}/{year}/{month}/{day}/packetCapture_{creationTime}
Se uma instância individual for selecionada
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachinescalesets/{VMSSName}/virtualMachines/{instance}/{year}/{month}/{day}/packetCapture_{creationTime}.cap
Próximas etapas
Localize se determinado tráfego é permitido dentro ou fora de sua VM visitando Verificar o fluxo do IP