PowerShell kullanarak Azure Ağ İzleyicisi ile sanal makineler için paket yakalamalarını yönetme
Ağ İzleyicisi paket yakalama aracı, Azure sanal makinesine (VM) gelen ve bu makineden gelen ağ trafiğini kaydetmek için yakalama oturumları oluşturmanıza olanak tanır. Yalnızca istediğiniz trafiği yakalamanızı sağlamak için yakalama oturumu için filtreler sağlanır. Paket yakalama, ağ anomalilerini hem reaktif hem de proaktif olarak tanılamaya yardımcı olur. Uygulamaları, anomali algılamanın ötesine geçerek ağ istatistikleri toplamayı, ağ yetkisiz girişleriyle ilgili içgörüler elde etme, istemci-sunucu iletişiminde hata ayıklama ve diğer çeşitli ağ sorunlarını gidermeyi içerir. Ağ İzleyicisi paket yakalama, belirli bir sanal makinede el ile yürütme gereksinimini ortadan kaldırın ve paket yakalamalarını uzaktan başlatmanızı sağlar.
Bu makalede, Azure PowerShell kullanarak bir sanal makine paket yakalamasını uzaktan yapılandırmayı, başlatmayı, durdurmayı, indirmeyi ve silmeyi öğreneceksiniz. Azure portalını veya Azure CLI'yı kullanarak paket yakalamalarını yönetmeyi öğrenmek için bkz . Azure portalını kullanarak sanal makineler için paket yakalamalarını yönetme veya Azure CLI kullanarak sanal makineler için paket yakalamalarını yönetme.
Önkoşullar
Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
Azure Cloud Shell veya Azure PowerShell.
Bu makaledeki adımlar Azure Cloud Shell'de Azure PowerShell cmdlet'lerini etkileşimli olarak çalıştırır. Komutları Cloud Shell'de çalıştırmak için kod bloğunun sağ üst köşesindeki Cloud Shell'i Aç'ı seçin. Kodu kopyalamak için Kopyala'yı seçin ve çalıştırmak için Cloud Shell'e yapıştırın. Cloud Shell'i Azure portalından da çalıştırabilirsiniz.
Cmdlet'leri çalıştırmak için Azure PowerShell'i yerel olarak da yükleyebilirsiniz. Bu makale, Az PowerShell modülünü gerektirir. Daha fazla bilgi için bkz . Azure PowerShell'i yükleme. Yüklü sürümü bulmak için
Get-InstalledModule -Name Az
komutunu çalıştırın. PowerShell'i yerel olarak çalıştırıyorsanız Bağlan-AzAccount cmdlet'ini kullanarak Azure'da oturum açın.Aşağıdaki giden TCP bağlantısına sahip bir sanal makine:
- 443 numaralı bağlantı noktası üzerinden depolama hesabına
- 80 numaralı bağlantı noktası üzerinden 169.254.169.254'e
- 8037 numaralı bağlantı noktası üzerinden 168.63.129.16'ya
Not
- Azure, Ağ İzleyicisi bu bölge için etkinleştirilmediyse sanal makinenin bölgesinde bir Ağ İzleyicisi örneği oluşturur. Daha fazla bilgi için bkz. Azure Ağ İzleyicisi etkinleştirme veya devre dışı bırakma.
- Ağ İzleyicisi paket yakalama, hedef sanal makineye Ağ İzleyicisi aracı VM uzantısının yüklenmesini gerektirir. Daha fazla bilgi için bkz. Ağ İzleyicisi aracısını yükleme.
- Önkoşullar bölümünde listelenen son iki IP adresi ve bağlantı noktası, Ağ İzleyicisi aracısını kullanan ve zaman zaman değişebilen tüm Ağ İzleyicisi araçlarda yaygındır.
Bir ağ güvenlik grubu ağ arabirimiyle veya ağ arabiriminin bulunduğu alt ağ ile ilişkiliyse, önceki bağlantı noktaları üzerinden giden bağlantıya izin vermek için kuralların mevcut olduğundan emin olun. Benzer şekilde, ağınıza kullanıcı tanımlı yollar eklerken önceki bağlantı noktaları üzerinden giden bağlantı olduğundan emin olun.
Ağ İzleyicisi aracıyı yükleme
Paket yakalamayı kullanmak için Ağ İzleyicisi aracısı sanal makine uzantısının sanal makineye yüklenmesi gerekir.
Uzantının sanal makinede yüklü olup olmadığını denetlemek için Get-AzVMExtension cmdlet'ini kullanın:
# List the installed extensions on the virtual machine.
Get-AzVMExtension -VMName 'myVM' -ResourceGroupName 'myResourceGroup' | format-table Name, Publisher, ExtensionType, EnableAutomaticUpgrade
Uzantı sanal makinede yüklüyse, önceki komutun çıkışında listelendiğini görebilirsiniz:
Name Publisher ExtensionType EnableAutomaticUpgrade
---- --------- ------------- ----------------------
AzureNetworkWatcherExtension Microsoft.Azure.NetworkWatcher NetworkWatcherAgentLinux True
Uzantı yüklü değilse, yüklemek için Set-AzVMExtension cmdlet'ini kullanın:
# 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
Uzantı başarıyla yüklendikten sonra aşağıdaki çıkışı görürsünüz:
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK
Paket yakalamayı başlatma
Yakalama oturumu başlatmak için New-AzNetworkWatcherPacketCapture cmdlet'ini kullanın:
# 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
Yakalama oturumu başlatıldıktan sonra aşağıdaki çıkışı görürsünüz:
ProvisioningState Name BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ----------------------- -------------------- ------------------
Succeeded myVM_1 0 1073741824 18000
Aşağıdaki tabloda, cmdlet'iyle New-AzNetworkWatcherPacketCapture
kullanabileceğiniz isteğe bağlı parametreler açıklanmaktadır:
Parametre | açıklama |
---|---|
-Filter |
Yalnızca istediğiniz trafiği yakalamak için filtre ekleyin. Örneğin, belirli bir IP adresinden belirli bir bağlantı noktasına yalnızca TCP trafiğini yakalayabilirsiniz. |
-TimeLimitInSeconds |
Yakalama oturumunun en uzun süresini ayarlayın. Varsayılan değer 18000 saniyedir (5 saat). |
-BytesToCapturePerPacket |
Her paket için yakalanacak en fazla bayt sayısını ayarlayın. Kullanılmadıysa veya 0 girilirse tüm baytlar yakalanır. |
-TotalBytesPerSession |
Yakalanan toplam bayt sayısını ayarlayın. Değere ulaşıldıktan sonra paket yakalama durdurulur. Kullanılmıyorsa en fazla 1 GB (1.073.741.824 bayt) yakalanır. |
-LocalFilePath |
Yakalamanın hedef sanal makineye kaydedilmesini istiyorsanız geçerli bir yerel dosya yolu girin (örneğin, C:\Capture\myVM_1.cap). Linux makinesi kullanıyorsanız yolun /var/captures ile başlaması gerekir. |
Paket yakalamayı durdurma
Çalışan paket yakalama oturumlarını el ile durdurmak için Stop-AzNetworkWatcherPacketCapture cmdlet'ini kullanın.
# Manually stop a packet capture session.
Stop-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Not
Cmdlet, çalışmakta olan bir yakalama oturumunda veya zaten durdurulmuş bir oturumda çalıştırılan bir yanıt döndürmez.
Paket yakalama alma
Paket yakalama durumunu almak için Get-AzNetworkWatcherPacketCapture cmdlet'ini kullanın (çalışıyor veya tamamlandı).
# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Aşağıdaki çıkış, cmdlet'in çıktısının Get-AzNetworkWatcherPacketCapture
bir örneğidir. Aşağıdaki örnek, yakalama tamamlandıktan sonradır. PacketCaptureStatus değeri, StopReason of TimeExceeded değeriyle Durduruldu değeridir. Bu değer, paket yakalama işleminin başarılı olduğunu ve zamanını çalıştırdığını gösterir.
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
Not
Çıktıda daha fazla ayrıntı almak için komutun sonuna ekleyin | Format-List
.
Paket yakalamayı indirme
Paket yakalama oturumunuzu tamamladıktan sonra elde edilen yakalama dosyası Azure depolamaya, hedef sanal makinedeki yerel bir dosyaya veya her ikisine de kaydedilir. Paket yakalama için depolama hedefi, oluşturma sırasında belirtilir. Daha fazla bilgi için bkz . Paket yakalamayı başlatma.
Bir depolama hesabı belirtilirse, yakalama dosyaları aşağıdaki yolda depolama hesabına kaydedilir:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Azure depolama alanına kaydedilmiş bir paket yakalama dosyasını indirmek için Get-Az Depolama BlobContent cmdlet'ini kullanın:
# 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'
Not
Yakalama dosyasını Azure Depolama Gezgini kullanarak depolama hesabı kapsayıcısından da indirebilirsiniz. Depolama Gezgini, Azure Depolama verilerine erişmek ve bunlarla çalışmak için kolayca kullanabileceğiniz tek başına bir uygulamadır. Daha fazla bilgi için bkz. Depolama Explorer'ı kullanmaya başlama.
Paket yakalamayı silme
# Remove a packet capture resource.
Remove-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Önemli
Ağ İzleyicisi'de paket yakalama silindiğinde, yakalama dosyası depolama hesabından veya sanal makineden silinmez. Yakalama dosyasına artık ihtiyacınız yoksa, depolama maliyetlerinin oluşmasını önlemek için dosyayı depolama hesabından el ile silmeniz gerekir.
İlgili içerik
- Sanal makine uyarılarıyla paket yakalamalarını otomatikleştirmeyi öğrenmek için bkz . Uyarıyla tetiklenen paket yakalama oluşturma.
- Wireshark kullanarak bir Ağ İzleyicisi paket yakalama dosyasını analiz etmeyi öğrenmek için bkz. Paket yakalama dosyalarını Ağ İzleyicisi inceleme ve analiz etme.