Verwalten von Paketerfassungen im Skalierungssatz virtueller Computer mit Azure Network Watcher mithilfe von PowerShell
Mit Network Watcher Paketaufzeichnung können Sie Aufzeichnungssitzungen erstellen, um den Datenverkehr zu und von Instanz(en) einer virtuellen Maschinenskalierungsgruppe zu verfolgen. Filter werden für die Aufnahmesitzung bereitgestellt, um sicherzustellen, dass nur der gewünschte Datenverkehr erfasst wird. Die Paketerfassung hilft, Netzwerkanomalien sowohl reaktiv als auch proaktiv zu diagnostizieren. Andere Verwendungen umfassen das Sammeln von Netzwerkstatistiken, das Abrufen von Informationen zu Netzwerkangriffen, zum Debuggen der Clientserverkommunikation und vieles mehr. Durch die Möglichkeit, Paketerfassungen remote auszulösen, erleichtert die Ausführung einer Paketerfassung manuell auf einer gewünschten VM-Skalierungsgruppe instanz/(n), was wertvolle Zeit spart.
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
Bevor Sie beginnen
In diesem Artikel wird davon ausgegangen, dass Sie über die folgenden Ressourcen verfügen:
- Eine Instanz der Netzwerküberwachung in der Region, in der Sie eine Paketerfassung erstellen möchten
Wichtig
Für die Paketerfassung ist eine Erweiterung für skalierungssätze für virtuelle Computer AzureNetworkWatcherExtension
erforderlich. Um die Erweiterung auf einer Windows-VM zu installieren, besuchen Sie Erweiterung des virtuellen Azure Network Watcher Agent für Windows und für Linux-VM besuchen Sie Azure Network Watcher Agent Virtual Machine Extension für Linux.
Installieren der Skalierungssatzerweiterung für virtuelle Computer
Schritt 1
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Schritt 2
Installieren des networkWatcherAgent auf einem virtuellen Maschinen-Skalierungsgruppen-Set/einer virtuellen Maschinen-Skalierungsgruppeninstanz/(-en)
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
Sobald die vorstehenden Schritte abgeschlossen sind, wird der Paketerfassungs-Agent auf dem Skalierungssatz des virtuellen Computers installiert.
Schritt 1
Der nächste Schritt besteht darin, die Network Watcher-Instanz abzurufen. Diese Variable wird in Schritt 4 an das Cmdlet New-AzNetworkWatcherPacketCapture
übergeben.
$networkWatcher = Get-AzNetworkWatcher | Where {$_.Location -eq "westcentralus" }
Schritt 2
Abrufen eines Speicherkontos. Dieses Speicherkonto wird verwendet, um die Paketerfassungsdatei zu speichern.
$storageAccount = Get-AzStorageAccount -ResourceGroupName testrg -Name testrgsa123
Schritt 3
Filter können verwendet werden, um die Daten einzuschränken, die von der Paketerfassung gespeichert werden. Im folgenden Beispiel werden zwei Filter eingerichtet. Ein Filter sammelt ausgehenden TCP-Datenverkehr nur von lokaler IP 10.0.0.3 zu Zielports 20, 80 und 443. Der zweite Filter sammelt nur UDP-Datenverkehr.
$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
Anmerkung
Für eine Paketerfassung können mehrere Filter definiert werden.
Schritt 4
Bereich für die Paketerfassung erstellen
$s1 = New-AzPacketCaptureScopeConfig -Include "0", "1"
Schritt 5
Führen Sie das Cmdlet New-AzNetworkWatcherPacketCaptureV2
aus, um den Paketerfassungsprozess zu starten, und übergeben Sie die erforderlichen Werte, die in den vorherigen Schritten abgerufen wurden.
New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkwatcher -PacketCaptureName $pcName -TargetId $vmss.Id -TargetType "azurevmss" -StorageAccountId $storageAccount.id -Filter $filter1, $filter2
Paketerfassung erhalten
Beim Ausführen des Cmdlets Get-AzNetworkWatcherPacketCapture
wird der Status einer derzeit ausgeführten oder abgeschlossenen Paketerfassung abgerufen.
Get-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Das folgende Beispiel ist die Ausgabe des Cmdlets Get-AzNetworkWatcherPacketCapture
. Das folgende Beispiel wird nach Abschluss der Erfassung angezeigt. Der PacketCaptureStatus-Wert ist gestoppt, mit einem Anhaltegrund von Zeitüberschreitung. Dieser Wert zeigt, dass die Paketerfassung erfolgreich war und die vorgesehene Zeit lief.
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
Führen Sie das Cmdlet Stop-AzNetworkWatcherPacketCapture
aus. Wenn eine Aufnahmesitzung läuft, wird sie gestoppt.
Stop-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Anmerkung
Das Cmdlet gibt keine Antwort zurück, wenn sie in einer aktuell ausgeführten Aufnahmesitzung oder einer vorhandenen Sitzung ausgeführt wird, die bereits beendet wurde.
Löschen einer Paketaufnahme
Remove-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Anmerkung
Durch das Löschen einer Paketerfassung wird die Datei im Speicherkonto nicht gelöscht.
Herunterladen einer Paketerfassung
Sobald die Paketerfassungssitzung abgeschlossen ist, kann die Aufnahmedatei in blob storage oder in eine lokale Datei in der Instanz/(n) hochgeladen werden. Der Speicherort der Paketerfassung wird beim Erstellen der Sitzung definiert. Ein bequemes Tool für den Zugriff auf diese Aufnahmedateien, die in einem Speicherkonto gespeichert sind, ist Microsoft Azure Storage Explorer, der hier heruntergeladen werden kann: https://storageexplorer.com/
Wenn ein Speicherkonto angegeben ist, werden Paketerfassungsdateien an folgendem Speicherort in einem Speicherkonto 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
Prüfen Sie, ob bestimmter Datenverkehr in oder aus Ihrem virtuellen Computer zulässig ist, indem Sie den IP-Fluss prüfen