Pakketopnamen beheren in virtuele-machineschaalset met Azure Network Watcher met behulp van PowerShell
Met Network Watcher-pakketopname kunt u capturesessies maken om verkeer van en naar een exemplaar van een virtuele-machineschaalset te volgen. Er worden filters opgegeven voor de opnamesessie om ervoor te zorgen dat u alleen het gewenste verkeer vastlegt. Pakketopname helpt bij het diagnosticeren van netwerkafwijkingen, zowel reactief als proactief. Andere toepassingen zijn het verzamelen van netwerkstatistieken, het verkrijgen van informatie over netwerkinbraak, het opsporen van fouten in client-servercommunicatie en nog veel meer. Als u pakketopnamen op afstand kunt activeren, vereenvoudigt u de belasting van het handmatig uitvoeren van een pakketopname op een gewenst exemplaar van een virtuele-machineschaalset/(s), wat kostbare tijd bespaart.
Dit artikel leidt u door de verschillende beheertaken die momenteel beschikbaar zijn voor pakketopname.
- Een pakketopname starten
- Een pakketopname stoppen
- Een pakketopname verwijderen
- Een pakketopname downloaden
Voordat u begint
In dit artikel wordt ervan uitgegaan dat u de volgende bronnen hebt:
- Een exemplaar van Network Watcher in de regio waarin u een pakketopname wilt maken
Belangrijk
Voor pakketopname is een extensie AzureNetworkWatcherExtension
voor een virtuele-machineschaalset vereist. Als u de extensie op een Windows-VM wilt installeren, gaat u naar de azure Network Watcher Agent-extensie voor virtuele machines voor Windows en voor Linux-VM naar de virtuele-machineextensie van Azure Network Watcher Agent voor Linux.
Extensie voor virtuele-machineschaalset installeren
Stap 1
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Stap 2
NetworkWatcherAgent installeren op een virtuele-machineschaalset/instantie van virtuele-machineschaalset/(s)
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.
Stap 3
Volg stap 1 om ervoor te zorgen dat de agent is geïnstalleerd
Get-AzVMss -ResourceGroupName $vmss.ResourceGroupName -VMNScaleSetName $vmss.Name
Een pakketopname starten
Zodra de voorgaande stappen zijn voltooid, wordt de pakketopnameagent geïnstalleerd op de virtuele-machineschaalset.
Stap 1
De volgende stap is het ophalen van het Network Watcher-exemplaar. Deze variabele wordt doorgegeven aan de New-AzNetworkWatcherPacketCapture
cmdlet in stap 4.
$networkWatcher = Get-AzNetworkWatcher | Where {$_.Location -eq "westcentralus" }
Stap 2
Haal een opslagaccount op. Dit opslagaccount wordt gebruikt voor het opslaan van het pakketopnamebestand.
$storageAccount = Get-AzStorageAccount -ResourceGroupName testrg -Name testrgsa123
Stap 3
Filters kunnen worden gebruikt om de gegevens te beperken die worden opgeslagen door de pakketopname. In het volgende voorbeeld worden twee filters ingesteld. Eén filter verzamelt alleen uitgaand TCP-verkeer van lokaal IP 10.0.0.3 naar doelpoorten 20, 80 en 443. Het tweede filter verzamelt alleen UDP-verkeer.
$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
Notitie
Er kunnen meerdere filters worden gedefinieerd voor een pakketopname.
Stap 4
Bereik maken voor pakketopname
$s1 = New-AzPacketCaptureScopeConfig -Include "0", "1"
Stap 5
Voer de New-AzNetworkWatcherPacketCaptureV2
cmdlet uit om het proces voor pakketopname te starten, waarbij de vereiste waarden worden doorgegeven die in de voorgaande stappen zijn opgehaald.
New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkwatcher -PacketCaptureName $pcName -TargetId $vmss.Id -TargetType "azurevmss" -StorageAccountId $storageAccount.id -Filter $filter1, $filter2
Een pakketopname ophalen
Als u de Get-AzNetworkWatcherPacketCapture
cmdlet uitvoert, wordt de status van een momenteel uitgevoerde of voltooide pakketopname opgehaald.
Get-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Het volgende voorbeeld is de uitvoer van de Get-AzNetworkWatcherPacketCapture
cmdlet. Het volgende voorbeeld is nadat de opname is voltooid. De waarde PacketCaptureStatus is gestopt, met een StopReason of TimeExceeded. Deze waarde laat zien dat de pakketopname is geslaagd en de tijd heeft uitgevoerd.
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 : []
Een pakketopname stoppen
Als de Stop-AzNetworkWatcherPacketCapture
cmdlet wordt uitgevoerd, wordt deze gestopt als er een capture-sessie wordt uitgevoerd.
Stop-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Notitie
De cmdlet retourneert geen antwoord wanneer deze wordt uitgevoerd op een opnamesessie die momenteel wordt uitgevoerd of een bestaande sessie die al is gestopt.
Een pakketopname verwijderen
Remove-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Notitie
Als u een pakketopname verwijdert, wordt het bestand in het opslagaccount niet verwijderd.
Een pakketopname downloaden
Zodra de pakketopnamesessie is voltooid, kan het opnamebestand worden geüpload naar blobopslag of naar een lokaal bestand op de instantie/(s). De opslaglocatie van de pakketopname wordt gedefinieerd bij het maken van de sessie. Een handig hulpprogramma voor toegang tot deze opnamebestanden die zijn opgeslagen in een opslagaccount, is Microsoft Azure Storage Explorer, die hier kan worden gedownload: https://storageexplorer.com/
Als er een opslagaccount is opgegeven, worden pakketopnamebestanden opgeslagen in een opslagaccount op de volgende locatie:
Als er meerdere exemplaren zijn geselecteerd
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachinescalesets/{VMSSName}/{year}/{month}/{day}/packetCapture_{creationTime}
Als er één exemplaar is geselecteerd
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
Volgende stappen
Controleren of bepaald verkeer is toegestaan in of uit uw virtuele machine door naar Ip-stroom controleren te gaan