Questo articolo illustra come usare la funzionalità di acquisizione pacchetti di Azure Network Watcher per configurare, avviare, arrestare, scaricare ed eliminare acquisizioni di pacchetti in remoto.
Prerequisiti
Un account Azure con una sottoscrizione attiva.
Creare un account gratuitamente.
Una macchina virtuale (VM) o un set di scalabilità di macchine virtuali con connettività TCP in uscita a: 169.254.169.254
sulla porta 80
e 168.63.129.16
sulla porta 8037
. L'estensione macchina virtuale dell'agente Network Watcher usa questi indirizzi IP per comunicare con la piattaforma Azure.
Estensione macchina virtuale dell'agente Network Watcher installata nella macchina virtuale di destinazione. Ogni volta che si usa l'acquisizione di pacchetti network Watcher nel portale di Azure, l'agente viene installato automaticamente nella macchina virtuale di destinazione o nel set di scalabilità se non è stato installato in precedenza. Per aggiornare un agente già installato, vedere Aggiornare l'estensione Azure Network Watcher alla versione più recente.
Un account di archiviazione di Azure con connettività TCP in uscita della macchina virtuale sulla porta 443
. Se non si ha un account di archiviazione, vedere Creare un account di archiviazione usando il portale di Azure.
- L'account di archiviazione deve essere accessibile dalla subnet della macchina virtuale o del set di scalabilità di destinazione. Per altre informazioni, vedere Configurare i firewall e le reti virtuali di Archiviazione di Azure.
- L'accesso alla chiave dell'account di archiviazione deve essere abilitato per consentire le richieste da Network Watcher usando token di firma di accesso condiviso.
Accedere al portale di Azure con il proprio account Azure.
Un account Azure con una sottoscrizione attiva.
Creare un account gratuitamente.
Una macchina virtuale (VM) con connettività TCP in uscita a: 169.254.169.254
su porta 80
e 168.63.129.16
su porta 8037
. L'estensione macchina virtuale dell'agente Network Watcher usa questi indirizzi IP per comunicare con la piattaforma Azure.
Estensione macchina virtuale dell'agente Network Watcher installata nella macchina virtuale di destinazione. Per altre informazioni, vedere Gestire l'estensione vm dell'agente Network Watcher per Windows o Gestire l'estensione vm dell'agente Network Watcher per Linux.
Un account di archiviazione di Azure con connettività TCP in uscita della macchina virtuale sulla porta 443
. Se non si ha un account di archiviazione, vedere Creare un account di archiviazione con PowerShell.
- L'account di archiviazione deve essere accessibile dalla subnet della macchina virtuale o del set di scalabilità di destinazione. Per altre informazioni, vedere Configurare i firewall e le reti virtuali di Archiviazione di Azure.
- L'accesso alla chiave dell'account di archiviazione deve essere abilitato per consentire le richieste da Network Watcher usando token di firma di accesso condiviso.
Azure Cloud Shell o Azure PowerShell.
I passaggi descritti in questo articolo eseguono i cmdlet di Azure PowerShell in modo interattivo in Azure Cloud Shell. Per eseguire i comandi in Cloud Shell, selezionare Apri Cloud Shell nell'angolo superiore destro di un blocco di codice. Selezionare Copia per copiare il codice e incollarlo in Cloud Shell per eseguirlo. È anche possibile eseguire Cloud Shell dal portale di Azure.
È anche possibile installare Azure PowerShell in locale per eseguire i cmdlet. In questo articolo si presuppone che il modulo Azure PowerShell sia disponibile. Per altre informazioni, vedere Installare Azure PowerShell. Se si esegue PowerShell in locale, accedere ad Azure usando il cmdlet Connect-AzAccount.
Nota
Azure crea un'istanza di Network Watcher nell'area della macchina virtuale se Network Watcher non è stato abilitato per tale area. Per altre informazioni, vedere Abilitare o disabilitare Azure Network Watcher.
Se un gruppo di sicurezza di rete è associato all'interfaccia di rete della macchina virtuale o alla subnet in cui si trova l'interfaccia di rete, assicurarsi che esistano regole per consentire la connettività in uscita. Allo stesso modo, garantire la connettività in uscita quando si aggiungono route definite dall'utente alla rete.
Avviare un'acquisizione di pacchetti
Per avviare una sessione di acquisizione, seguire questa procedura:
Nella casella di ricerca nella parte superiore del portale immettere Network Watcher. Nei risultati della ricerca selezionare Network Watcher.
Selezionare Acquisizione pacchetti in Strumenti di diagnostica di rete, quindi selezionare + Aggiungi per creare un'acquisizione di pacchetti.
In Aggiungi acquisizione pacchetti immettere o selezionare i valori per le impostazioni seguenti:
Impostazione |
Valore |
Dettagli di base |
|
Abbonamento |
Selezionare la sottoscrizione di Azure della macchina virtuale. |
Gruppo di risorse |
Selezionare il gruppo di risorse della macchina virtuale. |
Tipo di destinazione |
Selezionare Macchina virtuale o Set di scalabilità di macchine virtuali. |
Set di scalabilità di macchine virtuali di destinazione |
Selezionare il set di scalabilità di macchine virtuali. Questa opzione è disponibile se si seleziona Set di scalabilità di macchine virtuali come tipo di destinazione. |
Istanza di destinazione |
Selezionare l'istanza della macchina virtuale o del set di scalabilità. |
Nome acquisizione pacchetti |
Immettere un nome o lasciare il nome predefinito. |
Configurazione dell'acquisizione di pacchetti |
|
Percorso di acquisizione |
Selezionare Account di archiviazione (opzione predefinita), File o Entrambi. |
Account di archiviazione |
Selezionare l'account di archiviazione Standard 1. Questa opzione è disponibile se si seleziona Account di archiviazione o Entrambi come posizione di acquisizione. L'account di archiviazione deve trovarsi nella stessa area dell'istanza di destinazione. |
Percorso del file locale |
Immettere un percorso di file locale valido in cui si vuole salvare l'acquisizione nella macchina virtuale di destinazione. Se si usa un computer Linux, il percorso può iniziare con /var/captures . Se si usa un computer Windows, il percorso può iniziare con C:\Captures . Questa opzione è disponibile se si seleziona File o Entrambi come percorso di acquisizione. |
Numero massimo di byte per pacchetto |
Immettere il numero massimo di byte da acquisire per ogni pacchetto. Se questa opzione viene lasciata vuota o si immette 0, vengono acquisiti tutti i byte. |
Numero massimo di byte per sessione |
Immettere il numero totale di byte acquisiti. Una volta raggiunto il valore, l'acquisizione pacchetti si arresta. Se questa opzione viene lasciata vuota, vengono acquisiti fino a 1 GB. |
Limite di tempo (secondi) |
Immettere il limite di tempo della sessione di acquisizione pacchetti in secondi. Una volta raggiunto il valore, l'acquisizione pacchetti si arresta. Se questa opzione viene lasciata vuota, vengono acquisite fino a 5 ore (18.000 secondi). |
Filtro (facoltativo) |
|
Aggiungere criteri di filtro |
Selezionare Aggiungi criteri di filtro per aggiungere un nuovo filtro. È possibile definire tutti i filtri desiderati. |
Protocollo |
Filtra l'acquisizione di pacchetti in base al protocollo selezionato. I valori disponibili sono TCP, UDP o Any. |
IndirizzoIP locale 2 |
Filtra l'acquisizione di pacchetti in base ai pacchetti in cui l'indirizzo IP locale corrisponde a questo valore. |
Portalocale 2 |
Filtra l'acquisizione di pacchetti in base ai pacchetti in cui la porta locale corrisponde a questo valore. |
IndirizzoIP remoto 2 |
Filtra l'acquisizione di pacchetti in base ai pacchetti in cui l'indirizzo IP remoto corrisponde a questo valore. |
Porta remota 2 |
Filtra l'acquisizione di pacchetti in base ai pacchetti in cui la porta remota corrisponde a questo valore. |
1 Gli account di archiviazione Premium non sono attualmente supportati per l'archiviazione delle acquisizioni di pacchetti.
2 I valori di indirizzo IP e porta possono essere un singolo valore, un intervallo come 80-1024 o più valori, ad esempio 80, 443.
Selezionare Avvia acquisizione pacchetti.
L'acquisizione di pacchetti si arresta una volta raggiunto il limite di tempo o le dimensioni del file (byte massimi per sessione).
Per avviare una sessione di acquisizione, usare il 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
Dopo l'avvio della sessione di acquisizione, viene visualizzato l'output seguente:
ProvisioningState Name BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ----------------------- -------------------- ------------------
Succeeded myVM_1 0 1073741824 18000
La tabella seguente descrive i parametri facoltativi che è possibile usare con il cmdlet New-AzNetworkWatcherPacketCapture :
Parametro |
descrizione |
-Filter |
Aggiungere filtri per acquisire solo il traffico desiderato. Ad esempio, è possibile acquisire solo il traffico TCP da un indirizzo IP specifico a una porta specifica. |
-TimeLimitInSeconds |
Impostare la durata massima della sessione di acquisizione. Il valore predefinito è 18000 secondi (5 ore). |
-BytesToCapturePerPacket |
Impostare il numero massimo di byte da acquisire per ogni pacchetto. Tutti i byte vengono acquisiti se non vengono utilizzati o 0 immessi. |
-TotalBytesPerSession |
Impostare il numero totale di byte acquisiti. Una volta raggiunto il valore, l'acquisizione pacchetti si arresta. Se non viene usato, vengono acquisiti fino a 1 GB (1.073.741.824 byte). |
-LocalFilePath |
Immettere un percorso di file locale valido se si vuole salvare l'acquisizione nella macchina virtuale di destinazione, ad esempio C:\Capture\myVM_1.cap. Se si usa un computer Linux, il percorso deve iniziare con /var/captures. |
L'acquisizione di pacchetti si arresta una volta raggiunto il limite di tempo o le dimensioni del file (byte massimi per sessione).
Per avviare una sessione di acquisizione, usare il 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'
Dopo l'avvio della sessione di acquisizione, viene visualizzato l'output seguente:
{
"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
}
La tabella seguente descrive i parametri facoltativi che è possibile usare con il comando az network watcher packet-capture create :
Parametro |
descrizione |
--filters |
Aggiungere filtri per acquisire solo il traffico desiderato. Ad esempio, è possibile acquisire solo il traffico TCP da un indirizzo IP specifico a una porta specifica. |
--time-limit |
Impostare la durata massima della sessione di acquisizione. Il valore predefinito è 18000 secondi (5 ore). |
--capture-size |
Impostare il numero massimo di byte da acquisire per ogni pacchetto. Tutti i byte vengono acquisiti se non vengono utilizzati o 0 immessi. |
--capture-limit |
Impostare il numero totale di byte acquisiti. Una volta raggiunto il valore, l'acquisizione pacchetti si arresta. Se non viene usato, vengono acquisiti fino a 1 GB (1.073.741.824 byte). |
--file-path |
Immettere un percorso di file locale valido se si vuole salvare l'acquisizione nella macchina virtuale di destinazione, ad esempio C:\Capture\myVM_1.cap. Se si usa un computer Linux, il percorso deve iniziare con /var/captures. |
L'acquisizione di pacchetti si arresta una volta raggiunto il limite di tempo o le dimensioni del file (byte massimi per sessione).
Interrompere un'acquisizione di pacchetti
Per arrestare manualmente una sessione di acquisizione di pacchetti prima che raggiunga i limiti di tempo o dimensioni dei file, selezionare i puntini di sospensione ... sul lato destro dell'acquisizione di pacchetti oppure fare clic con il pulsante destro del mouse su di esso, quindi scegliere Arresta.
Per arrestare manualmente una sessione di acquisizione di pacchetti prima che raggiunga i limiti di tempo o dimensioni dei file, usare il cmdlet Stop-AzNetworkWatcherPacketCapture .
# Manually stop a packet capture session.
Stop-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Nota
Il cmdlet non restituisce una risposta se eseguita in una sessione di acquisizione attualmente in esecuzione o in una sessione già arrestata.
Per arrestare manualmente una sessione di acquisizione di pacchetti prima che raggiunga i limiti di tempo o dimensioni dei file, usare il comando az network watcher packet-capture stop .
# Manually stop a packet capture session.
az network watcher packet-capture stop --location 'eastus' --name 'myVM_1'
Nota
Il comando non restituisce una risposta se eseguita in una sessione di acquisizione attualmente in esecuzione o in una sessione già arrestata.
Visualizzare lo stato di acquisizione pacchetti
Passare alla pagina Acquisizione pacchetti di Network Watcher per elencare le acquisizioni di pacchetti esistenti indipendentemente dal relativo stato.
Usare il cmdlet Get-AzNetworkWatcherPacketCapture per recuperare lo stato di un'acquisizione di pacchetti (in esecuzione o completata).
# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
L'output seguente è un esempio dell'output del Get-AzNetworkWatcherPacketCapture
cmdlet . L'esempio seguente mostra il risultato ottenuto al completamento dell'acquisizione di pacchetti. Il valore PacketCaptureStatus è Stopped, mentre il valore StopReason corrisponde a TimeExceeded. Questo valore indica che l'acquisizione di pacchetti ha avuto esito positivo ed è stata eseguita per il tempo necessario.
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
Nota
Per ottenere altri dettagli nell'output, aggiungere | Format-List
alla fine del comando.
Usare il comando az network watcher packet-capture show-status per recuperare lo stato di un'acquisizione di pacchetti (in esecuzione o completata).
# Get information, properties, and status of a packet capture.
az network watcher packet-capture show-status --location 'eastus' --name 'myVM_1'
L'esempio seguente è l'output del az network watcher packet-capture show-status
comando . È possibile notare che il valore packetCaptureStatus è Stopped, con un valore StopReason di 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"
}
Scaricare un'acquisizione di pacchetti
Al termine della sessione di acquisizione pacchetti, il file di acquisizione risultante viene salvato in Archiviazione di Azure, un file locale nella macchina virtuale di destinazione o entrambi. La destinazione di archiviazione per l'acquisizione di pacchetti viene specificata durante la creazione. Per altre informazioni, vedere La sezione Avviare un'acquisizione di pacchetti.
Per scaricare un file di acquisizione pacchetti salvato in Archiviazione di Azure, seguire questa procedura:
Nella pagina Acquisizione pacchetti selezionare l'acquisizione di pacchetti da scaricare.
Nella sezione Dettagli selezionare il collegamento al file di acquisizione pacchetti.
Nella pagina BLOB selezionare Scarica.
È anche possibile scaricare i file di acquisizione passando direttamente al contenitore dell'account di archiviazione nel percorso seguente:
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 viene specificato un account di archiviazione, i file di acquisizione vengono salvati nell'account di archiviazione nel percorso seguente:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Per scaricare un'acquisizione di pacchetti da Archiviazione di Azure nel disco locale, usare il 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 viene specificato un account di archiviazione, i file di acquisizione vengono salvati nell'account di archiviazione nel percorso seguente:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Per scaricare un'acquisizione di pacchetti da Archiviazione di Azure nel disco locale, usare il 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'
Nota
È possibile usare Archiviazione di Azure Explorer per scaricare i file di acquisizione dal contenitore dell'account di archiviazione. Storage Explorer è un'app autonoma che è possibile usare facilmente per accedere e usare i dati Archiviazione di Azure. Per altre informazioni, vedere Informazioni di base su Storage Explorer.
Importante
Durante la sessione di acquisizione pacchetti, il file di acquisizione potrebbe non essere visualizzato immediatamente nel contenitore dell'account di archiviazione perché inizialmente viene salvato in una posizione temporanea. Il file viene trasferito al percorso finale dopo il completamento della sessione di acquisizione.
Per scaricare un file di acquisizione pacchetti salvato nella macchina virtuale (VM), connettersi alla macchina virtuale e scaricare il file dal percorso locale specificato durante la creazione dell'acquisizione pacchetti.
Eliminare un'acquisizione di pacchetti
Nella pagina Acquisizione pacchetti selezionare ... sul lato destro dell'acquisizione di pacchetti da eliminare oppure fare clic con il pulsante destro del mouse su di esso, quindi scegliere Elimina.
Selezionare Sì.
Usare Remove-AzNetworkWatcherPacketCapture per eliminare una risorsa di acquisizione pacchetti.
# Delete a packet capture resource.
Remove-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Usare az network watcher packet-capture delete per eliminare una risorsa di acquisizione pacchetti.
# Delete a packet capture resource.
az network watcher packet-capture delete --location 'eastus' --name 'myVM_1'
Importante
L'eliminazione della risorsa di acquisizione pacchetti in Network Watcher non elimina il file di acquisizione dall'account di archiviazione o dalla macchina virtuale. Se non è più necessario il file di acquisizione, è necessario eliminarlo manualmente dall'account di archiviazione o dalla macchina virtuale.
Contenuto correlato