Aggiornare l'estensione Network Watcher di Azure all’ultima versione

Network Watcher di Azure è un servizio di monitoraggio, diagnostica e analisi delle prestazioni di rete che monitora le reti di Azure. L'estensione macchina virtuale (VM) dell'agente Network Watcher è un requisito per l'acquisizione del traffico di rete su richiesta e l'uso di altre funzionalità avanzate nelle macchine virtuali di Azure. È usato da: monitoraggio connessione, risoluzione dei problemi di connessione e acquisizione pacchetti.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Se non se ne ha una, creare un account gratuito.
  • Macchina virtuale (VM) di Azure con estensione Network Watcher installata.

Versione più recente

L’ultima versione dell'estensione Network Watcher è 1.4.3320.1.

Identificare l’ultima versione

Usare il comando az vm extension image list e identificare la versione più recente dell'estensione Network Watcher per il sistema operativo della macchina virtuale.

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

Aggiornare l'estensione usando uno script di PowerShell

Se si hanno distribuzioni di grandi dimensioni, usare uno script di PowerShell per aggiornare più VM contemporaneamente. Lo script di PowerShell seguente aggiorna l'estensione Network Watcher di tutte le VM Windows in una sottoscrizione:

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

Aggiornare manualmente l'estensione

Per aggiornare l'estensione, è necessario conoscerne la versione.

Controllare la versione dell'estensione

È possibile controllare la versione dell'estensione usando il portale di Azure, l'interfaccia della riga di comando di Azure o PowerShell.

Usare il portale di Azure

  1. Passare al riquadro Estensioni della VM nel portale di Azure.
  2. Selezionare l'estensione AzureNetworkWatcher per visualizzare il riquadro dei dettagli.
  3. Individuare il numero della versione nel campo Versione.  

Usare l'interfaccia della riga di comando di Azure

Da un prompt dell'interfaccia della riga di comando di Azure eseguire il comando seguente:

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

Individuare "AzureNetworkWatcherExtension" nell'output e identificare il numero di versione dal campo "TypeHandlerVersion" nell'output. 

Le informazioni sull'estensione vengono visualizzate più volte nell'output JSON. Il numero della versione completa dell'estensione è disponibile nel blocco Estensioni.

Dovrebbe essere visualizzato un contenuto simile al seguente: Screenshot dell'interfaccia della riga di comando di Azure

Usare PowerShell

Eseguire i comandi seguenti dal prompt di PowerShell:

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

Individuare l'estensione Azure Network Watcher nell'output e identificare il numero di versione dal campo "TypeHandlerVersion" nell'output.  

Dovrebbe essere visualizzato un contenuto simile al seguente: Screenshot di PowerShell

Aggiornare l'estensione

Se la versione è inferiore all’ultima versione indicata in precedenza, aggiornare l'estensione usando una delle opzioni seguenti.

Opzione 1: Usare PowerShell

Eseguire i comandi seguenti:

#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 questo non funziona: rimuovere e installare di nuovo l'estensione, seguendo la procedura seguente, per installare l’ultima versione.

Rimozione dell'estensione

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

Nuova installazione dell'estensione

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

Opzione 2: Usare l'interfaccia della riga di comando di Azure

Forzare un aggiornamento.

#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 questo non funziona, rimuovere e installare nuovamente l'estensione e seguire questa procedura per aggiungere automaticamente l’ultima versione.

Rimuovere l'estensione.

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

Installare di nuovo l'estensione.

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

Opzione 3: Riavviare le VM

Se l'aggiornamento automatico per l'estensione Network Watcher è impostato su vero, riavviare l'installazione della VM all'estensione più recente.

Supporto tecnico

Se si desiderano altre informazioni per un qualsiasi punto di questo articolo, vedere la documentazione dell'estensione Network Watcher per Linux o Windows. Inoltre è possibile contattare gli esperti di Azure nei forum MSDN Azure e Stack Overflow. In alternativa, archiviare un evento di supporto di Azure. Accedere al sito del supporto di Azure e selezionare Richiesta di supporto. Per informazioni sull'uso del supporto di Azure, leggere le Domande frequenti sul supporto di Azure.