Обновление расширения Azure Наблюдатель за сетями до последней версии

Наблюдатель за сетями Azure — это служба мониторинга производительности, диагностики и анализа сети, которая отслеживает сети Azure. Расширение виртуальной машины для агента Наблюдателя за сетями необходимо для записи трафика по запросу и использования других дополнительных функций виртуальных машин Azure. Он используется монитором подключений, устранением неполадок подключения и записью пакетов.

Необходимые компоненты

  • Учетная запись Azure с активной подпиской. Если ее нет, создайте бесплатную учетную запись.
  • Виртуальная машина Azure с установленным расширением Наблюдатель за сетями.

Последняя версия

Последняя версия расширения 1.4.3422.1Наблюдатель за сетями .

Определение последней версии

Используйте команду az vm extension image list, чтобы определить последнюю версию расширения Наблюдатель за сетями для операционной системы виртуальной машины.

# 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 обновляет Наблюдатель за сетями расширение всех виртуальных машин 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.

Использование портала 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

Найдите расширение Наблюдателя за сетями Azure в выходных данных и определите номер версии в поле 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

Выполните принудительное обновление.

#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, перезагрузите виртуальную машину, чтобы установить последнюю версию расширения.

Поддержка

Если вам нужна дополнительная помощь по какому-либо вопросу в этой статье, ознакомьтесь с документацией по расширению Наблюдателя за сетями для Linux или Windows. Вы можете также обратиться к экспертам по Azure на форумах MSDN Azure и Stack Overflow. Кроме того, вы можете зарегистрировать инцидент в службе поддержки Azure. Перейдите на сайт поддержки Azure и выберите Получить поддержку. Дополнительные сведения об использовании службы поддержки Azure см. в статье Часто задаваемые вопросы о поддержке Microsoft Azure.