Pakketopnamen beheren in virtuele-machineschaalset met Azure Network Watcher met behulp van PowerShell
Met Network Watcher-pakketverzameling kunt u capturesessies inschakelen om het verkeer van en naar een of meerdere instanties van een virtuele-machineschaalset te monitoren. 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 starten, vereenvoudigt dit de moeite van het handmatig uitvoeren van een pakketopname op een gewenst exemplaar van een schaalset voor virtuele machines, 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 pakketcapturing is een extensie voor een virtuele machineschaalset vereist AzureNetworkWatcherExtension
. Als u de extensie op een Windows-VM wilt installeren, gaat u naar azure Network Watcher Agent-extensie voor virtuele machines voor Windows en voor Linux-VM gaat u naar azure Network Watcher Agent-extensie voor virtuele Linux-.
Extensie voor virtuele machine schaalset installeren
Stap 1
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Stap 2
NetwerkWatcherAgent installeren op een virtuele-machineschaalset of een instantie(s) van een virtuele-machineschaalset.
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 cmdlet New-AzNetworkWatcherPacketCapture
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 pakketopnameproces 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, haalt u de status van een momenteel uitgevoerde of voltooide pakketopname op.
Get-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Het volgende voorbeeld is de uitvoer van cmdlet Get-AzNetworkWatcherPacketCapture
. Het volgende voorbeeld is nadat de opname is voltooid. De waarde van PacketCaptureStatus is gestopt, omdat de StopReason TimeExceeded is. Deze waarde laat zien dat de pakketopname is geslaagd en zijn looptijd heeft voltooid.
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
Door de cmdlet Stop-AzNetworkWatcherPacketCapture
uit te voeren, wordt deze gestopt als er een opnamesessie 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 een enkel 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
Controleer of bepaald verkeer is toegestaan in of uit uw VIRTUELE machine door naar Controleer de IP-stroom