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