Actualización de la extensión Azure Network Watcher a la versión más reciente

Azure Network Watcher es un servicio de supervisión, diagnóstico y análisis del rendimiento de red que supervisa las redes de Azure. La extensión de máquina virtual (VM) del agente de Network Watcher es un requisito para capturar el tráfico de red a petición y usar otras funcionalidades avanzadas en máquinas virtuales de Azure. Lo usa el monitor de conexión, la solución de problemas de conexión y la captura de paquetes.

Requisitos previos

  • Una cuenta de Azure con una suscripción activa. En caso de no tener ninguna, cree una cuenta gratuita.
  • Una máquina virtual (VM) de Azure que tenga instalada la extensión Network Watcher.

La versión más reciente

La versión más reciente de la extensión Network Watcher es 1.4.3206.1.

Identificación de la versión más reciente

Use el comando az vm extension image list para identificar la versión más reciente de la extensión de Network Watcher para el sistema operativo de la máquina virtual.

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

Actualización de la extensión mediante un script de PowerShell

Si tiene implementaciones de gran tamaño, use un script de PowerShell para actualizar varias VM a la vez. El siguiente script de PowerShell actualiza la extensión Network Watcher de todas las VM Windows de una suscripción:

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

Actualización manual de la extensión

Para actualizar la extensión, debe conocer su versión.

Comprobación de la versión de la extensión

Puede comprobar la versión de la extensión mediante Azure Portal, la CLI de Azure o PowerShell.

Uso de Azure Portal

  1. Vaya al panel Extensiones de la máquina virtual en Azure Portal.
  2. Seleccione la extensión AzureNetworkWatcher para ver el panel de detalles.
  3. Busque el número de versión en el campo Versión.  

Uso de la CLI de Azure

Ejecute el comando siguiente desde un símbolo del sistema de la CLI de Azure:

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

Busque "AzureNetworkWatcherExtension" en la salida e identifique el número de versión en el campo "TypeHandlerVersion". 

La información sobre la extensión aparece varias veces en la salida JSON. El número de versión completo de la extensión está disponible en el bloque Extensiones.

Debería ver algo parecido a lo siguiente: Captura de pantalla de la CLI de Azure

Uso de PowerShell

Ejecute los comandos siguientes en un símbolo del sistema de PowerShell:

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

Busque la extensión Azure Network Watcher en la salida e identifique el número de versión en el campo "TypeHandlerVersion".  

Debería ver algo parecido a lo siguiente: Captura de pantalla de PowerShell

Actualización de la extensión

Si la versión es inferior a la versión más reciente mencionada anteriormente, actualice la extensión con cualquiera de las siguientes opciones.

Opción 1: Uso de PowerShell

Ejecute los comandos siguientes:

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

Si esto no funciona. Quite e instale la extensión de nuevo, siguiendo los pasos que se indican a continuación, para instalar la versión más reciente.

Eliminación de la extensión

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

Nueva instalación de la extensión

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

Opción 2: Uso de la CLI de Azure

Aplique una actualización.

#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

Si eso no funciona, quite e instale de nuevo la extensión, y siga estos pasos para agregar automáticamente la versión más reciente.

Quite la extensión.

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

Instale de nuevo la extensión.

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

Opción 3: Reinicio de las máquinas virtuales

Si tiene la actualización automática establecida en verdadero para la extensión Network Watcher, reinicie la instalación de la máquina virtual con la extensión más reciente.

Soporte técnico

Si necesita más ayuda en cualquier punto de este artículo, consulte la documentación de la extensión Network Watcher para Linux o Windows. También puede ponerse en contacto con los expertos de Azure en los foros de MSDN Azure y Stack Overflow. Como alternativa, puede registrar un incidente de soporte técnico de Azure. Vaya al sitio de soporte técnico de Azure y seleccione Obtener soporte técnico. Para obtener información sobre el uso del soporte técnico, lea las Preguntas más frecuentes de soporte técnico de Microsoft Azure.