Verwalten von Paketerfassungen in VM-Skalierungsgruppen mit Azure Network Watcher mithilfe von PowerShell
Mithilfe der Paketerfassung von Network Watcher können Sie Sitzungen erfassen, um den eingehenden und ausgehenden Datenverkehr von VM-Skalierungsgruppen nachzuverfolgen. 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. Weitere Verwendungszwecke sind das Erfassen von Netzwerkstatistiken, das Gewinnen von Informationen zu Netzwerkangriffen, das Debuggen der Kommunikation zwischen Client und Server und vieles mehr. Durch die Möglichkeit zur Remoteauslösung von Paketerfassungen wird die manuelle Ausführung einer Paketerfassung in einer gewünschten VM-Skalierungsgruppe erleichtert. So lässt sich wertvolle Zeit sparen.
Dieser Artikel führt Sie durch die verschiedenen Verwaltungsaufgaben, die derzeit für die Paketerfassung verfügbar sind.
- Starten einer Paketerfassung
- Beenden einer Paketerfassung
- Löschen einer Paketerfassung
- Herunterladen einer Paketerfassung
Voraussetzungen
In diesem Artikel wird davon ausgegangen, dass Sie über die folgenden Ressourcen verfügen:
- Eine Instanz von Network Watcher in der Region, in der Sie eine Paketerfassung erstellen möchten
Wichtig
Für die Paketerfassung ist die VM-Skalierungsgruppenerweiterung AzureNetworkWatcherExtension
erforderlich. Informationen zur Installation der Erweiterung finden Sie für einen virtuellen Windows-Computer unter VM-Erweiterung für den Network Watcher-Agent für Windows und für einen virtuellen Linux-Computer unter VM-Erweiterung für den Network Watcher-Agent für Linux.
Installieren einer VM-Skalierungsgruppenerweiterung
Schritt 1
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Schritt 2
Installieren von networkWatcherAgent in VM-Skalierungsgruppen bzw. auf VM-Skalierungsgruppeninstanzen
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.
Schritt 3
Um sicherzustellen, dass der Agent installiert ist, befolgen Sie Schritt 1
Get-AzVMss -ResourceGroupName $vmss.ResourceGroupName -VMNScaleSetName $vmss.Name
Starten einer Paketerfassung
Nachdem Sie die vorherigen Schritte abgeschlossen haben, wird der Paketerfassungs-Agent in der VM-Skalierungsgruppe installiert.
Schritt 1
Der nächste Schritt besteht im Abrufen der Network Watcher-Instanz. Diese Variable wird in Schritt 4 an das Cmdlet New-AzNetworkWatcherPacketCapture
übergeben.
$networkWatcher = Get-AzNetworkWatcher | Where {$_.Location -eq "westcentralus" }
Schritt 2
Erstellen Sie ein Speicherkonto. Dieses Speicherkonto wird verwendet, um die Paketerfassungsdatei zu speichern.
$storageAccount = Get-AzStorageAccount -ResourceGroupName testrg -Name testrgsa123
Schritt 3
Mithilfe von Filtern können die von der Paketerfassung gespeicherten Daten eingeschränkt werden. Im folgende Beispiel werden zwei Filter eingerichtet. Ein Filter erfasst nur ausgehenden TCP-Datenverkehr von der lokalen IP-Adresse 10.0.0.3 an die Zielports 20, 80 und 443. Mit dem zweiten Filter wird nur UDP-Datenverkehr erfasst.
$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
Hinweis
Für eine Paketerfassung können mehrere Filter definiert werden.
Schritt 4
Erstellen eines Bereichs für die Paketerfassung
$s1 = New-AzPacketCaptureScopeConfig -Include "0", "1"
Schritt 5
Führen Sie das Cmdlet New-AzNetworkWatcherPacketCaptureV2
zum Starten der Paketerfassung aus, und übergeben Sie dabei die erforderlichen Werte, die Sie in den vorherigen Schritten abgerufen haben.
New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkwatcher -PacketCaptureName $pcName -TargetId $vmss.Id -TargetType "azurevmss" -StorageAccountId $storageAccount.id -Filter $filter1, $filter2
Abrufen einer Paketerfassung
Durch Ausführen des Cmdlets Get-AzNetworkWatcherPacketCapture
wird der Status einer zurzeit durchgeführten oder abgeschlossenen Paketerfassung abgerufen.
Get-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Das folgende Beispiel zeigt 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.
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 : []
Beenden einer Paketerfassung
Durch Ausführen des Cmdlets Stop-AzNetworkWatcherPacketCapture
wird eine ggf. gerade ausgeführte Erfassungssitzung beendet.
Stop-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
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.
Löschen einer Paketerfassung
Remove-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Hinweis
Durch das Löschen einer Paketerfassung wird die Datei im Speicherkonto nicht gelöscht.
Herunterladen einer Paketerfassung
Nachdem die Paketerfassungssitzung abgeschlossen wurde, kann die Erfassungsdatei in den Blobspeicher oder in eine lokale Datei in die VM-Skalierungsgruppe hochgeladen werden. Der Speicherort der Paketerfassung wird beim Erstellen der Sitzung definiert. Ein nützliches Tool für den Zugriff auf diese in einem Speicherkonto gespeicherten Erfassungsdateien ist der Microsoft Azure Storage-Explorer, der hier heruntergeladen werden kann: https://storageexplorer.com/
Wenn ein Speicherkonto angegeben wird, werden Paketerfassungsdateien in einem Speicherkonto am folgenden Speicherort gespeichert:
Wenn mehrere Instanzen ausgewählt sind
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachinescalesets/{VMSSName}/{year}/{month}/{day}/packetCapture_{creationTime}
Wenn eine einzelne Instanz ausgewählt ist
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
Nächste Schritte
Lesen Sie den Artikel zur IP-Datenflussüberprüfung, um herauszufinden, ob bestimmter eingehender oder ausgehender Datenverkehr für Ihren virtuellen Computer zulässig ist.