تحديث ملحق Azure Network Watcher إلى أحدث إصدار

Azure Network Watcher عبارة عن خدمة مراقبة وتشخيص وتحليلات لأداء الشبكة تعمل على مراقبة شبكات Azure. يُعد ملحق الجهاز الظاهري عامل Network Watcher شرطاً لالتقاط حركة انتقال البيانات عبر الشبكة عند الطلب، والوظائف المتقدمة الأخرى على Azure Virtual Machines. يتم استخدامه من قبل مراقبة الاتصال واستكشاف أخطاء الاتصال وإصلاحها والتقاط الحزمة.

المتطلبات الأساسية

  • حساب Azure مع اشتراك نشط. في حال لم يكن لديك اشتراك Azure، أنشئ حسابًا مجّانيًّا.
  • جهاز ظاهري Azure (VM) مثبت عليه ملحق Network Watcher.

آخر إصدار

أحدث إصدار من ملحق Network Watcher هو 1.4.3206.1.

تحديد أحدث إصدار

استخدم الأمر az vm extension image list لتحديد أحدث إصدار من ملحق Network Watcher لنظام تشغيل الجهاز الظاهري.

# Identify latest version of Network Watcher extension for Linux.
az vm extension image list --name 'NetworkWatcherAgentLinux' --publisher 'Microsoft.Azure.NetworkWatcher' --latest --location 'eastus'

تحديث الملحق باستخدام برنامج PowerShell النصي

إذا كان لديك عمليات نشر كبيرة، فاستخدم برنامج PowerShell النصي لتحديث أجهزة ظاهرية متعددة في وقت واحد. يقوم البرنامج النصي PowerShell التالي بتحديث ملحق Network Watcher لجميع أجهزة Windows الظاهرية في اشتراك:

<# 
    .SYNOPSIS 
    This script will scan all VMs in the provided subscription and upgrade any out of date AzureNetworkWatcherExtensions  
    .DESCRIPTION 
    This script should be no-op if AzureNetworkWatcherExtensions are up to date 
    Requires Azure PowerShell 4.2 or higher to be installed (e.g. Install-Module AzureRM). 
    .EXAMPLE 
    .\UpdateVMAgentsInSub.ps1 -SubID F4BC4873-5DAB-491E-B713-1358EF4992F2 -NoUpdate 
#>
 
[CmdletBinding()] 
param( 
    [Parameter(Mandatory=$true)] 
    [string] $SubID, 
    [Parameter(Mandatory=$false)] 
    [Switch] $NoUpdate = $false, 
    [Parameter(Mandatory=$false)] 
    [string] $MinVersion = "1.4.2573.1" 
)  
function NeedsUpdate($version) 
{ 
    if ([Version]$version -lt [Version]$MinVersion)
	{ 
        $lessThan = $true 
    }else{ 
        $lessThan = $false 
    } 
    return $lessThan 
}   
Write-Host "Scanning all VMs in the subscription: $($SubID)" 
Set-AzContext -SubscriptionId $SubID
$vms = Get-AzVM 
$foundVMs = $false 
Write-Host "Starting VM search, this may take a while" 
foreach ($vmName in $vms) 
{ 
    # Get Detailed VM info 
    $vm = Get-AzVM -ResourceGroupName $vmName.ResourceGroupName -Name $vmName.name -Status 
    $isitWindows = $vm.OsName -like "*Windows*"
 
    foreach ($extension in $vm.Extensions) 
    { 
        if ($extension.Name -eq "AzureNetworkWatcherExtension") 
        { 
            if (NeedsUpdate($extension.TypeHandlerVersion)) 
            { 
                $foundVMs = $true 
                if (-not ($NoUpdate)) 
                { 
                    Write-Host "Found VM that needs to be updated: subscriptions/$($SubID)/resourceGroups/$($vm.ResourceGroupName)/providers/Microsoft.Compute/virtualMachines/$($vm.Name) -> Updating " -NoNewline 
                    Remove-AzVMExtension -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -Name "AzureNetworkWatcherExtension" -Force 
                    Write-Host "... " -NoNewline 
                    $type = if ($isitWindows) { "NetworkWatcherAgentWindows" } else { "NetworkWatcherAgentLinux" } 
                    Set-AzVMExtension -ResourceGroupName $vm.ResourceGroupName -Location $vmName.Location -VMName $vm.Name -Name "AzureNetworkWatcherExtension" -Publisher "Microsoft.Azure.NetworkWatcher" -Type $type -typeHandlerVersion $MinVersion
                    Write-Host "Done" 
                } 
                else 
                { 
                    Write-Host "Found $(if ($isitWindows) {"Windows"} else {"Linux"}) VM that needs to be updated: subscriptions/$($SubID)/resourceGroups/$($vm.ResourceGroupName)/providers/Microsoft.Compute/virtualMachines/$($vm.Name)" 
                } 
            } 
        } 
    } 
}
 
if ($foundVMs) 
{ 
    Write-Host "Finished $(if ($NoUpdate) {"searching"} else {"updating"}) out of date AzureNetworkWatcherExtension on VMs" 
} 
else 
{ 
    Write-Host "All AzureNetworkWatcherExtensions up to date" 
}

تحديث الملحق يدوياً

لتحديث الإضافة، عليك معرفة إصدار الملحق.

التحقق من إصدار الملحق

يمكنك التحقق من إصدار الملحق باستخدام مدخل Azure أو Azure CLI أو PowerShell.

استخدام مدخل Microsoft Azure

  1. انتقل إلى جزء الملحقات الخاص بالجهاز الظاهري في مدخل Azure.
  2. حدد ملحق AzureNetworkWatcher للاطلاع على جزء التفاصيل.
  3. حدد موقع رقم الإصدار في حقل الإصدار.  

استخدام Azure CLI

قم بتشغيل الأمر التالي من موجه Azure CLI:

az vm get-instance-view --resource-group  "SampleRG" --name "Sample-VM"

حدد موقع " AzureNetworkWatcherExtension " في الإخراج وحدد رقم الإصدار من الحقل " TypeHandlerVersion" في الإخراج. 

تظهر معلومات حول الملحق عدة مرات في إخراج JSON. يتوفر رقم الإصدار الكامل للملحق ضمن كتلة الملحقات.

يجب أن ترى شيئا مثل ما يلي: لقطة شاشة ل Azure CLI

استخدام PowerShell

من موجه PowerShell، قم بتشغيل الأمر التالي:

Get-AzVM -ResourceGroupName "SampleRG" -Name "Sample-VM" -Status

حدد موقع ملحق Network Watcher في الإخراج وحدد رقم الإصدار من الحقل "TypeHandlerVersion" في الإخراج.  

يجب أن ترى شيئا مثل ما يلي: لقطة شاشة PowerShell

تحديث الملحق

إذا كان الإصدار الخاص بك أقدم من أحدث إصدار مذكور أعلاه، فقم بتحديث الملحق باستخدام أي من الخيارات التالية.

الخيار 1: استخدام PowerShell

شغّل الأوامر التالية:

#Linux command
Set-AzVMExtension -ResourceGroupName "myResourceGroup1" -Location "WestUS" -VMName "myVM1" -Name "AzureNetworkWatcherExtension" -Publisher "Microsoft.Azure.NetworkWatcher" -Type "NetworkWatcherAgentLinux"

#Windows command
Set-AzVMExtension -ResourceGroupName "myResourceGroup1" -Location "WestUS" -VMName "myVM1" -Name " AzureNetworkWatcherExtension" -Publisher "Microsoft.Azure.NetworkWatcher" -Type "NetworkWatcherAgentWindows" -ForceRerun "True"

إذا لم يفلح هذا. قم بإزالة الملحق وتثبيته مرة أخرى، باستخدام الخطوات أدناه، لتثبيت أحدث إصدار.

إزالة الملحق

#Same command for Linux and Windows
Remove-AzVMExtension -ResourceGroupName "SampleRG" -VMName "Sample-VM" -Name "AzureNetworkWatcherExtension"

تثبيت الملحق مرة أخرى

#Linux command
Set-AzVMExtension -ResourceGroupName "SampleRG" -Location "centralus" -VMName "Sample-VM" -Name "AzureNetworkWatcherExtension" -Publisher "Microsoft.Azure.NetworkWatcher" -Type "NetworkWatcherAgentLinux" -typeHandlerVersion "1.4"

#Windows command
Set-AzVMExtension -ResourceGroupName "SampleRG" -Location "centralus" -VMName "Sample-VM" -Name "AzureNetworkWatcherExtension" -Publisher "Microsoft.Azure.NetworkWatcher" -Type "NetworkWatcherAgentWindows" -typeHandlerVersion "1.4"

الخيار 2: استخدام Azure CLI

فرض ترقية.

#Linux command
az vm extension set --resource-group "myResourceGroup1" --vm-name "myVM1" --name "NetworkWatcherAgentLinux" --publisher "Microsoft.Azure.NetworkWatcher" --force-update

#Windows command
az vm extension set --resource-group "myResourceGroup1" --vm-name "myVM1" --name "NetworkWatcherAgentWindows" --publisher "Microsoft.Azure.NetworkWatcher" --force-update

إذا لم ينجح ذلك، فقم بإزالة الملحق وتثبيته مرة أخرى، واتبع هذه الخطوات لإضافة أحدث إصدار تلقائياً.

أزل الملحق.

#Same for Linux and Windows
az vm extension delete --resource-group "myResourceGroup1" --vm-name "myVM1" -n "AzureNetworkWatcherExtension"

قم بتثبيت الملحق مرة أخرى.

#Linux command
az vm extension set --resource-group "DALANDEMO" --vm-name "Linux-01" --name "NetworkWatcherAgentLinux" --publisher "Microsoft.Azure.NetworkWatcher"

#Windows command
az vm extension set --resource-group "DALANDEMO" --vm-name "Linux-01" --name "NetworkWatcherAgentWindows" --publisher "Microsoft.Azure.NetworkWatcher"

الخيار 3: إعادة تشغيل الأجهزة الظاهرية

إذا تم تعيين الترقية التلقائية إلى true لملحق Network Watcher، فأعد تشغيل تثبيت الجهاز الظاهري إلى أحدث ملحق.

يدعم

إذا كنت بحاجة إلى مزيد من المساعدة في أي وقت من هذه المقالة، فراجع وثائق ملحق Network Watcher لنظام التشغيل Linux أو Windows. يمكنك أيضاً الاتصال بخبراء Azure في منتديات MSDN Azure وStack Overflow. بدلاً من ذلك، يمكن تقديم حدث دعم Azure. انتقل إلى Azure Support site (موقع دعم Azure)، وحدد Get Support (الحصول على الدعم). للحصول على معلومات حول استخدام Azure Support، اقرأ الأسئلة المتداولة حول دعم Microsoft Azure.