Mengelola pengambilan paket untuk komputer virtual dengan Azure Network Watcher menggunakan PowerShell
Alat penangkapan paket Network Watcher memungkinkan Anda membuat sesi pengambilan untuk merekam lalu lintas jaringan ke dan dari komputer virtual (VM) Azure. Filter disediakan untuk sesi pengambilan untuk memastikan Anda hanya mengambil lalu lintas yang Anda inginkan. Pengambilan paket membantu dalam mendiagnosis anomali jaringan baik secara reaktif maupun proaktif. Aplikasinya melampaui deteksi anomali untuk mencakup pengumpulan statistik jaringan, memperoleh wawasan tentang penyusupan jaringan, men-debug komunikasi server klien, dan mengatasi berbagai tantangan jaringan lainnya. Pengambilan paket Network Watcher memungkinkan Anda memulai pengambilan paket dari jarak jauh, mengurangi kebutuhan akan eksekusi manual pada komputer virtual tertentu.
Dalam artikel ini, Anda mempelajari cara mengonfigurasi, memulai, menghentikan, mengunduh, dan menghapus pengambilan paket komputer virtual dari jarak jauh menggunakan Azure PowerShell. Untuk mempelajari cara mengelola pengambilan paket menggunakan portal Azure atau Azure CLI, lihat Mengelola pengambilan paket untuk komputer virtual menggunakan portal Azure atau Mengelola pengambilan paket untuk komputer virtual menggunakan Azure CLI.
Prasyarat
Akun Azure dengan langganan aktif. Buat akun secara gratis.
Azure Cloud Shell atau Azure PowerShell.
Langkah-langkah dalam artikel ini menjalankan cmdlet Azure PowerShell secara interaktif di Azure Cloud Shell. Untuk menjalankan perintah di Cloud Shell, pilih Buka Cloud Shell di sudut kanan atas blok kode. Pilih Salin untuk menyalin kode lalu tempelkan ke Cloud Shell untuk menjalankannya. Anda juga dapat menjalankan Cloud Shell dari dalam portal Azure.
Anda juga dapat menginstal Azure PowerShell secara lokal untuk menjalankan cmdlet. Artikel ini memerlukan modul Az PowerShell. Untuk informasi selengkapnya, lihat Cara menginstal Azure PowerShell. Untuk menemukan versi yang terinstal, jalankan
Get-InstalledModule -Name Az
. Jika Anda menjalankan PowerShell secara lokal, masuk ke Azure menggunakan cmdlet Koneksi-AzAccount.Komputer virtual dengan konektivitas TCP keluar berikut:
- ke akun penyimpanan melalui port 443
- ke 169.254.169.254 melalui port 80
- ke 168.63.129.16 melalui port 8037
Catatan
- Azure membuat instans Network Watcher di wilayah komputer virtual jika Network Watcher tidak diaktifkan untuk wilayah tersebut. Untuk informasi selengkapnya, lihat Mengaktifkan atau menonaktifkan Azure Network Watcher.
- Pengambilan paket Network Watcher mengharuskan ekstensi VM agen Network Watcher diinstal pada komputer virtual target. Untuk informasi selengkapnya, lihat Menginstal agen Network Watcher.
- Dua alamat IP dan port terakhir yang tercantum dalam Prasyarat umum di semua alat Network Watcher yang menggunakan agen Network Watcher dan terkadang berubah.
Jika grup keamanan jaringan dikaitkan dengan antarmuka jaringan, atau subnet tempat antarmuka jaringan berada, pastikan bahwa aturan ada untuk mengizinkan konektivitas keluar melalui port sebelumnya. Demikian pula, pastikan konektivitas keluar melalui port sebelumnya saat menambahkan rute yang ditentukan pengguna ke jaringan Anda.
Menginstal agen Network Watcher
Untuk menggunakan pengambilan paket, ekstensi komputer virtual agen Network Watcher harus diinstal pada komputer virtual.
Gunakan cmdlet Get-AzVMExtension untuk memeriksa apakah ekstensi diinstal pada komputer virtual:
# List the installed extensions on the virtual machine.
Get-AzVMExtension -VMName 'myVM' -ResourceGroupName 'myResourceGroup' | format-table Name, Publisher, ExtensionType, EnableAutomaticUpgrade
Jika ekstensi diinstal pada komputer virtual, maka Anda dapat melihatnya tercantum dalam output perintah sebelumnya:
Name Publisher ExtensionType EnableAutomaticUpgrade
---- --------- ------------- ----------------------
AzureNetworkWatcherExtension Microsoft.Azure.NetworkWatcher NetworkWatcherAgentLinux True
Jika ekstensi tidak diinstal, gunakan cmdlet Set-AzVMExtension untuk menginstalnya:
# 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
Setelah penginstalan ekstensi berhasil, Anda akan melihat output berikut:
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK
Mulai pengambilan paket
Untuk memulai sesi pengambilan, gunakan cmdlet New-AzNetworkWatcherPacketCapture :
# 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
Setelah sesi pengambilan dimulai, Anda akan melihat output berikut:
ProvisioningState Name BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ----------------------- -------------------- ------------------
Succeeded myVM_1 0 1073741824 18000
Tabel berikut ini menjelaskan parameter opsional yang bisa Anda gunakan dengan New-AzNetworkWatcherPacketCapture
cmdlet:
Parameter | description |
---|---|
-Filter |
Tambahkan filter untuk mengambil hanya lalu lintas yang Anda inginkan. Misalnya, Anda hanya dapat menangkap lalu lintas TCP dari alamat IP tertentu ke port tertentu. |
-TimeLimitInSeconds |
Atur durasi maksimum sesi pengambilan. Nilai defaultnya adalah 18000 detik (5 jam). |
-BytesToCapturePerPacket |
Atur jumlah maksimum byte yang akan diambil per setiap paket. Semua byte diambil jika tidak digunakan atau 0 dimasukkan. |
-TotalBytesPerSession |
Atur jumlah total byte yang diambil. Setelah nilai tercapai, penangkapan paket berhenti. Hingga 1 GB (1.073.741.824 byte) ditangkap jika tidak digunakan. |
-LocalFilePath |
Masukkan jalur file lokal yang valid jika Anda ingin pengambilan disimpan di komputer virtual target (Misalnya, C:\Capture\myVM_1.cap). Jika Anda menggunakan komputer Linux, jalur harus dimulai dengan /var/captures. |
Hentikan pengambilan paket
Gunakan cmdlet Stop-AzNetworkWatcherPacketCapture untuk menghentikan sesi pengambilan paket yang sedang berjalan secara manual.
# Manually stop a packet capture session.
Stop-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Catatan
Cmdlet tidak mengembalikan respons apakah dijalankan pada sesi pengambilan yang sedang berjalan atau sesi yang telah berhenti.
Mendapatkan pengambilan paket
Gunakan cmdlet Get-AzNetworkWatcherPacketCapture untuk mengambil status pengambilan paket (berjalan atau selesai).
# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Output berikut adalah contoh output dari Get-AzNetworkWatcherPacketCapture
cmdlet. Contoh berikut adalah setelah pengambilan selesai. Nilai PacketCaptureStatus Dihentikan, dengan StopReason dari TimeExceeded. Nilai ini menunjukkan bahwa pengambilan paket berhasil dan menjalankan waktunya.
ProvisioningState Name Target BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ------ ----------------------- -------------------- ------------------
Succeeded myVM_1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM 0 1073741824 18000
Catatan
Untuk mendapatkan detail selengkapnya dalam output, tambahkan | Format-List
ke akhir perintah.
Unduh pengambilan paket
Setelah menyimpulkan sesi pengambilan paket Anda, file pengambilan yang dihasilkan disimpan ke penyimpanan Azure, file lokal pada komputer virtual target atau keduanya. Tujuan penyimpanan untuk pengambilan paket ditentukan selama pembuatannya. Untuk informasi selengkapnya, lihat Memulai pengambilan paket.
Jika akun penyimpanan ditentukan, file pengambilan disimpan ke akun penyimpanan di jalur berikut:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Untuk mengunduh file pengambilan paket yang disimpan ke penyimpanan Azure, gunakan cmdlet Get-AzStorageBlobContent :
# Download the packet capture file from Azure storage container.
Get-AzStorageBlobContent -Container 'network-watcher-logs' -Blob 'subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm/2024/01/25/packetcapture_22_44_54_342.cap' -Destination 'C:\Capture\myVM_1.cap'
Catatan
Anda juga dapat mengunduh file pengambilan dari kontainer akun penyimpanan menggunakan Azure Storage Explorer. Storage Explorer adalah aplikasi mandiri yang dapat Anda gunakan dengan mudah untuk mengakses dan bekerja dengan data Azure Storage. Untuk informasi selengkapnya, lihat Mulai menggunakan Storage Explorer.
Hapus pengambilan paket
# Remove a packet capture resource.
Remove-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Penting
Menghapus pengambilan paket di Network Watcher tidak menghapus file pengambilan dari akun penyimpanan atau komputer virtual. Jika Anda tidak memerlukan file pengambilan lagi, Anda harus menghapusnya secara manual dari akun penyimpanan untuk menghindari timbulnya biaya penyimpanan.
Konten terkait
- Untuk mempelajari cara mengotomatiskan pengambilan paket dengan peringatan komputer virtual, lihat Membuat penangkapan paket yang dipicu peringatan.
- Untuk mempelajari cara menganalisis file pengambilan paket Network Watcher menggunakan Wireshark, lihat Memeriksa dan menganalisis file pengambilan paket Network Watcher.