Verwalten von Paketerfassungen für virtuelle Computer mit Azure Network Watcher über PowerShell
Mit dem Tool zum Erfassen von Netzwerküberwachungspaketen können Sie Aufzeichnungssitzungen erstellen, um Netzwerkdatenverkehr zu und von einem virtuellen Azure-Computer (VM) aufzuzeichnen. Für die Erfassungssitzung werden Filter bereitgestellt, um sicherzustellen, dass nur der gewünschte Datenverkehr erfasst wird. Mithilfe der Paketerfassung können Sie Netzwerkanomalien sowohl reaktiv als auch proaktiv diagnostizieren. Seine Anwendungen erweitern sich über die Anomalieerkennung hinaus, um Netzwerkstatistiken zu sammeln, Einblicke in Netzwerkangriffe zu erhalten, Clientserverkommunikation zu debuggen und verschiedene andere Netzwerkprobleme zu bewältigen. Mit der Network Watcher-Paketerfassung können Sie Paketerfassungen remote initiieren und die Notwendigkeit der manuellen Ausführung auf einem bestimmten virtuellen Computer lösen.
In diesem Artikel erfahren Sie, wie Sie mithilfe von Azure PowerShell eine VM-Paketerfassung remote konfigurieren, starten, beenden, herunterladen und löschen können. Informationen zum Verwalten von Paketerfassungen mithilfe vom Azure-Portal oder Azure CLI finden Sie unter Verwalten von Paketerfassungen für virtuelle Computer mithilfe des Azure-Portals oder Verwalten von Paketerfassungen für virtuelle Computer mithilfe der Azure CLI.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
Azure Cloud Shell oder Azure PowerShell.
Die Schritte in diesem Artikel führen die Azure PowerShell Cmdlets interaktiv in Azure Cloud Shell aus. Um die Befehle in Cloud Shell auszuführen, wählen Sie in der oberen rechten Ecke eines Codeblocks Cloud Shell öffnen aus. Wählen Sie Kopieren aus, um den Code zu kopieren und fügen Sie ihn in Cloud Shell ein, um ihn auszuführen. Sie können Azure Cloud Shell innerhalb des Azure-Portals starten.
Sie können Azure PowerShell auch lokal installieren, um die Cmdlets auszuführen. Für diesen Artikel ist das Az PowerShell-Modul erforderlich. Weitere Informationen finden Sie unter Installieren von Azure PowerShell. Führen Sie
Get-InstalledModule -Name Az
aus, um die installierte Version zu ermitteln. Melden Sie sich bei Azure mit dem Cmdlet Connect-AzAccount an, wenn Sie PowerShell lokal ausführen.Ein virtueller Computer mit der folgenden ausgehenden TCP-Verbindung:
- zum Speicherkonto über Port 443
- mit 169.254.169.254 über Port 80
- mit 168.63.129.16 über Port 8037
Hinweis
- Azure erstellt eine Network Watcher-Instanz in der Region des virtuellen Computers, wenn die Netzwerküberwachung für diese Region nicht aktiviert war. Weitere Informationen finden Sie unter Aktivieren oder Deaktivieren von Azure Network Watcher.
- Für die Netzwerküberwachungspaketerfassung muss die VM-Erweiterung des Network Watcher-Agents auf dem virtuellen Zielcomputer installiert werden. Weitere Informationen finden Sie unter Installieren des Network Watcher-Agents.
- Die letzten beiden IP-Adressen und Ports, die in den Voraussetzungen aufgeführt sind, sind in allen Netzwerküberwachungstools gemeinsam, die den Network Watcher-Agent verwenden und sich gelegentlich ändern können.
Wenn eine Netzwerksicherheitsgruppe der Netzwerkschnittstelle oder einem Subnetz, in dem sich die Netzwerkschnittstelle befindet, zugeordnet ist, stellen Sie sicher, dass Regeln definiert sind, um ausgehende Verbindungen über die oben genannten Ports zuzulassen. Stellen Sie ebenso die ausgehende Konnektivität über die vorherigen Ports sicher, wenn Sie Ihrem Netzwerk benutzerdefinierte Routen hinzufügen.
Installieren des Network Watcher-Agents
Um die Paketerfassung zu verwenden, muss die VM-Erweiterung für den Azure Network Watcher-Agent auf der VM installiert sein.
Verwenden Sie das Cmdlet Get-AzVMExtension, um zu überprüfen, ob die Erweiterung auf der VM installiert ist:
# List the installed extensions on the virtual machine.
Get-AzVMExtension -VMName 'myVM' -ResourceGroupName 'myResourceGroup' | format-table Name, Publisher, ExtensionType, EnableAutomaticUpgrade
Wenn die Erweiterung auf der VM installiert ist, ist sie in der Ausgabe des vorherigen Befehls aufgelistet:
Name Publisher ExtensionType EnableAutomaticUpgrade
---- --------- ------------- ----------------------
AzureNetworkWatcherExtension Microsoft.Azure.NetworkWatcher NetworkWatcherAgentLinux True
Wenn die Erweiterung nicht installiert ist, verwenden Sie das Cmdlet Set-AzVMExtension, um sie zu installieren:
# Install Network Watcher agent on a Linux virtual machine.
Set-AzVMExtension -Publisher 'Microsoft.Azure.NetworkWatcher' -ExtensionType 'NetworkWatcherAgentLinux' -Name 'AzureNetworkWatcherExtension' -VMName 'myVM' -ResourceGroupName 'myResourceGroup' -TypeHandlerVersion '1.4' -EnableAutomaticUpgrade 1
# Install Network Watcher agent on a Windows virtual machine.
Set-AzVMExtension -Publisher 'Microsoft.Azure.NetworkWatcher' -ExtensionType 'NetworkWatcherAgentWindows' -Name 'AzureNetworkWatcherExtension' -VMName 'myVM' -ResourceGroupName 'myResourceGroup' -TypeHandlerVersion '1.4' -EnableAutomaticUpgrade 1
Nach einer erfolgreichen Installation der Erweiterung wird die folgende Ausgabe angezeigt:
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK
Starten einer Paketerfassung
Verwenden Sie das Cmdlet New-AzNetworkWatcherPacketCapture, um eine Erfassungssitzung zu starten:
# 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
Nachdem die Erfassungssitzung gestartet wurde, wird die folgende Ausgabe angezeigt:
ProvisioningState Name BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ----------------------- -------------------- ------------------
Succeeded myVM_1 0 1073741824 18000
In der folgenden Tabelle sind die optionalen Parameter beschrieben, die mit dem Cmdlet New-AzNetworkWatcherPacketCapture
verwendet werden können:
Parameter | Beschreibung |
---|---|
-Filter |
Fügen Sie Filter hinzu, um nur den gewünschten Datenverkehr zu erfassen. Beispielsweise können Sie nur TCP-Datenverkehr von einer bestimmten IP-Adresse an einen bestimmten Port erfassen. |
-TimeLimitInSeconds |
Legen Sie die maximale Dauer der Erfassungssitzung fest. Der Standardwert ist 18 000 Sekunden (5 Stunden). |
-BytesToCapturePerPacket |
Legen Sie die maximale Anzahl von Bytes fest, die pro Paket erfasst werden sollen. Wenn kein Wert oder 0 eingegeben wird, werden alle Bytes erfasst. |
-TotalBytesPerSession |
Legen Sie die Gesamtzahl der erfassten Bytes fest. Wenn dieser Wert erreicht wird, wird die Paketerfassung beendet. Wenn kein Wert angegeben ist, werden bis zu 1 GB (1.073.741.824 Bytes) erfasst. |
-LocalFilePath |
Geben Sie einen gültigen lokalen Dateipfad ein, wenn die Erfassung auf dem virtuellen Zielcomputer gespeichert werden soll (z. B. C:\Capture\myVM_1.cap). Bei einem Linux-Computer muss der Pfad mit /var/captures beginnen. |
Beenden einer Paketerfassung
Verwenden Sie das Cmdlet Stop-AzNetworkWatcherPacketCapture, um eine ausgeführte Paketerfassungssitzung manuell zu beenden.
# Manually stop a packet capture session.
Stop-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Hinweis
Das Cmdlet gibt keine Antwort zurück, wenn es für eine aktuell ausgeführte Erfassungssitzung oder eine vorhandene Sitzung ausgeführt wird, die bereits beendet wurde.
Abrufen einer Paketerfassung
Verwenden Sie das Cmdlet Get-AzNetworkWatcherPacketCapture, um den Status einer Paketerfassung abzurufen (laufend oder abgeschlossen).
# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Die folgende Ausgabe ist ein Beispiel für die Ausgabe des Cmdlets Get-AzNetworkWatcherPacketCapture
. Im folgenden Beispiel ist die Erfassung abgeschlossen. Der PacketCaptureStatus-Wert lautet „Stopped“ mit dem StopReason „TimeExceeded“. Dieser Wert zeigt, dass die Paketerfassung erfolgreich war und über den dafür festgelegten Zeitraum ausgeführt wurde.
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
Hinweis
Um weitere Details in der Ausgabe zu erhalten, fügen Sie | Format-List
am Ende des Befehls hinzu.
Herunterladen einer Paketerfassung
Nach Abschluss der Paketerfassungssitzung wird die resultierende Aufnahmedatei im Azure-Speicher, als lokale Datei auf dem virtuellen Zielcomputer oder an beiden Orten gespeichert. Das Speicherziel für die Paketerfassung wird während der Erstellung angegeben. Weitere Informationen finden Sie unter Starten einer Paketerfassung.
Wenn ein Speicherkonto angegeben wird, werden Erfassungsdateien im Speicherkonto unter dem Pfad gespeichert:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Verwenden Sie das Cmdlet Get-AzStorageBlobContent, um eine Paketerfassungsdatei herunterzuladen, die in Azure Storage gespeichert ist:
# 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'
Hinweis
Mithilfe des Azure Storage-Explorers können Sie die Erfassungsdatei auch aus dem Speicherkontocontainer herunterladen. Storage-Explorer ist eine eigenständige App, mit der Sie bequem auf Azure Storage-Daten zugreifen und diese verwenden können. Weitere Informationen finden Sie unter Erste Schritte mit dem Storage-Explorer.
Löschen einer Paketerfassung
# Remove a packet capture resource.
Remove-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Wichtig
Das Löschen einer Paketerfassung in Network Watcher löscht die Aufnahmedatei nicht aus dem Speicherkonto oder dem virtuellen Computer. Wenn Sie die Aufnahmedatei nicht mehr benötigen, müssen Sie sie manuell aus dem Speicherkonto löschen, um Speicherkosten zu vermeiden.
Zugehöriger Inhalt
- Informationen zur Automatisierung von Paketerfassungen mit VM-Warnungen finden Sie unter Erstellen einer durch Warnungen ausgelösten Paketerfassung.
- Informationen zum Analysieren einer Network Watcher-Paketerfassungsdatei mithilfe von Wireshark finden Sie unter Untersuchen und Analysieren von Network Watcher-Paketerfassungsdateien.