Aggiornare l'estensione Azure Network Watcher alla versione più recente

Azure Network Watcher è un servizio di monitoraggio, diagnostica e analisi delle prestazioni di rete che monitora le reti di Azure. L'estensione macchina virtuale 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. Viene usato dal monitoraggio delle connessioni, dalla risoluzione dei problemi di connessione e dall'acquisizione di pacchetti.

Prerequisiti

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

Ultima versione

La versione più recente dell'estensione Network Watcher è 1.4.3206.1.

Identificare la versione più recente

Usare il comando az vm extension image list per 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ù macchine virtuali contemporaneamente. Lo script di PowerShell seguente aggiorna l'estensione Network Watcher di tutte le macchine virtuali 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 conoscere la versione dell'estensione.

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 macchina virtuale nel portale di Azure.
  2. Selezionare l'estensione AzureNetworkWatcher per visualizzare il riquadro dei dettagli.
  3. Individuare il numero di versione nel campo Versione .  

Usare l'interfaccia della riga di comando di Azure

Eseguire il comando seguente da un prompt dell'interfaccia della riga di comando di Azure:

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 di versione completo dell'estensione è disponibile nel blocco Estensioni.

Verrà visualizzato un aspetto simile al seguente: Screenshot dell'interfaccia della riga di comando di Azure

Utilizzare PowerShell

Eseguire i comandi seguenti da un 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.  

Verrà visualizzato un aspetto simile al seguente: PowerShell Screenshot

Aggiornare l'estensione

Se la versione è sotto la versione più recente 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 la versione più recente.

Rimozione dell'estensione

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

Installazione dell'estensione di nuovo

#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 ciò non funziona, rimuovere e installare nuovamente l'estensione e seguire questa procedura per aggiungere automaticamente la versione più recente.

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 macchine virtuali

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

Supporto tecnico

Per altre informazioni in qualsiasi punto di questo articolo, vedere la documentazione dell'estensione Network Watcher per Linux o Windows. È anche possibile contattare gli esperti di Azure nei forum MSDN azure e Stack Overflow. In alternativa, inviare un evento imprevisto supporto tecnico 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.