Atualizar a extensão do Observador de Rede para a versão mais recente

O Observador de Rede do Azure é um serviço de monitoramento de desempenho, diagnóstico e análise de rede que monitora as redes do Azure. A extensão da máquina virtual (VM) do agente do Observador de Rede é um requisito para capturar o tráfego de rede sob demanda e usar outras funcionalidades avançadas em VMs do Azure. É usado pelo monitor de conexão, solução de problemas de conexão e captura de pacotes.

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuita se ainda não tiver a sua.
  • Uma máquina virtual (VM) do Azure que tem a extensão Observador de Rede instalada.

Última versão

A versão mais recente da extensão do Observador de Rede é atualmente 1.4.3422.1.

Identificar a versão mais recente

Use o comando az vm extension image list para identificar a versão mais recente da extensão Observador de Rede para o sistema operacional da VM.

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

Atualizar sua extensão usando um script do PowerShell

Se você tiver implantações grandes, use um script do PowerShell para atualizar várias VMs ao mesmo tempo. O script do PowerShell a seguir atualiza a extensão do Observador de Rede de todas as VMs do Windows em uma assinatura:

<# 
    .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" 
}

Atualizar sua extensão manualmente

Para atualizar sua extensão, você precisa saber a versão da extensão.

Verificar sua versão de extensão

É possível verificar a versão da extensão usando o portal do Azure, a CLI do Azure ou o PowerShell.

Use o Portal do Azure

  1. Vá para o painel Extensões de sua VM no portal do Azure.
  2. Selecione a extensão AzureNetworkWatcher para ver o painel de detalhes.
  3. Localize o número de versão no campo Versão.  

Usar a CLI do Azure

Execute o seguinte comando em um prompt de CLI do Azure:

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

Localize "AzureNetworkWatcherExtension" na saída e identifique o número de versão do campo "TypeHandlerVersion" na saída. 

As informações sobre a extensão aparecem várias vezes na saída JSON. O número de versão completo da extensão está disponível no bloco Extensões.

Você verá algo semelhante ao seguinte: Captura de tela da CLI do Azure

Usar o PowerShell

Em um prompt do PowerShell, execute os seguintes comandos:

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

Localize a extensão do Observador de Rede do Azure na saída e identifique o número de versão do campo "TypeHandlerVersion" na saída.  

Você verá algo semelhante ao seguinte: Captura de tela do PowerShell

Atualizar sua extensão

Se a versão estiver abaixo da versão mais recente mencionada acima, atualize sua extensão usando qualquer uma das opções a seguir.

Opção 1: usar o PowerShell

Execute os seguintes comandos:

#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"

Se isso não funcionar. Remova e instale a extensão novamente, usando as etapas abaixo, para instalar a versão mais recente.

Remover a extensão

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

Instalar a extensão novamente

#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"

Opção 2: usar a CLI do Azure

Force uma atualização.

#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

Se isso não funcionar, remova e instale a extensão novamente e siga estas etapas para adicionar automaticamente a versão mais recente.

Remova a extensão.

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

Instale a extensão novamente.

#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"

Opção 3: reinicializar suas VMs

Se você tiver a atualização automática definida como true para a extensão do Observador de Rede, reinicie a instalação da VM para a extensão mais recente.

Suporte

Se você precisar de mais ajuda a qualquer momento neste artigo, consulte a documentação da extensão do Observador de Rede para Linux ou Windows. Você pode também contatar os especialistas do Azure nos fóruns do MSDN do Azure e nos fóruns do Stack Overflow. Como alternativa, você pode registrar um incidente no Suporte do Azure. Vá para o site de suporte do Azure e selecione Obter suporte. Para saber mais sobre como usar o suporte do Azure, leia as Perguntas frequentes sobre o suporte do Microsoft Azure.