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.3422.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
- Passare al riquadro Estensioni della VM nel portale di Azure.
- Selezionare l'estensione AzureNetworkWatcher per visualizzare il riquadro dei dettagli.
- 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:
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:
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.