Aktualisieren der Azure Network Watcher-Erweiterung auf die neueste Version

Azure Network Watcher ist ein Dienst zur Überwachung, Diagnose und Analyse der Netzwerkleistung für Azure-Netzwerke. Die VM-Erweiterung des Network Watcher-Agents ist eine Voraussetzung für die bedarfsgesteuerte Erfassung von Netzwerkdatenverkehr und die Verwendung anderer erweiterter Funktionen auf virtuellen Azure-Computern. Es wird von Verbindungsmonitor, Verbindungsproblembehandlung und Paketerfassung verwendet.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Sollten Sie keines besitzen, können Sie einkostenloses Konto erstellen.
  • Ein virtueller Azure-Computer (VM), auf dem die Network Watcher-Erweiterung installiert ist.

Aktuelle Version

Die aktuelle Version der Network Watcher-Erweiterung ist 1.4.3422.1.

Identifizieren der neuesten Version

Verwenden Sie den Befehl az vm extension image list, um die neueste Version der Network Watcher-Erweiterung für das Betriebssystem Ihres virtuellen Computers zu identifizieren.

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

Aktualisieren Ihrer Erweiterung mit einem PowerShell-Skript

Wenn Sie über große Bereitstellungen verfügen, verwenden Sie ein PowerShell-Skript, um mehrere VMs zugleich zu aktualisieren. Das folgende PowerShell-Skript aktualisiert die Network Watcher-Erweiterung aller Windows-VMs in einem Abonnement:

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

Manuelles Aktualisieren der Erweiterung

Um die Erweiterung aktualisieren zu können, müssen Sie Ihre Erweiterungsversion kennen.

Überprüfen der Erweiterungsversion

Die Erweiterungsversion kann über das Azure-Portal, mithilfe der Azure-Befehlszeilenschnittstelle oder per PowerShell überprüft werden.

Verwenden des Azure-Portals

  1. Navigieren Sie im Azure-Portal zum Bereich Erweiterungen für Ihren virtuellen Computer.
  2. Wählen Sie die Erweiterung AzureNetworkWatcher aus, um den Detailbereich anzuzeigen.
  3. Die Versionsnummer wird im Feld Version angezeigt.  

Verwenden der Azure CLI

Führen Sie an einer Azure CLI-Eingabeaufforderung den folgenden Befehl aus:

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

Suchen Sie in der Ausgabe nach AzureNetworkWatcherExtension. Die Versionsnummer befindet sich im Feld TypeHandlerVersion der Ausgabe. 

Die JSON-Ausgabe enthält mehrmals Informationen zur Erweiterung. Die vollständige Versionsnummer der Erweiterung ist im Block „extensions“ angegeben.

Das sieht in etwa wie folgt aus: Screenshot: Azure-Befehlszeilenschnittstelle

Verwenden von PowerShell

Führen Sie an einer PowerShell-Eingabeaufforderung die folgenden Befehle aus:

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

Suchen Sie in der Ausgabe nach der Azure Network Watcher-Erweiterung. Die Versionsnummer befindet sich im Feld TypeHandlerVersion der Ausgabe.  

Das sieht in etwa wie folgt aus: Screenshot: PowerShell

Aktualisieren der Erweiterung

Ist Ihre Version niedriger als die oben genannte, derzeit aktuelle Version, aktualisieren Sie Ihre Erweiterung mithilfe einer der folgenden Optionen.

Option 1: Verwenden von PowerShell

Führen Sie die folgenden Befehle aus:

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

Falls dies nicht funktioniert, Entfernen und installieren Sie die Erweiterung erneut, indem Sie die folgenden Schritte ausführen, um die aktuelle Version zu installieren.

Entfernen der Erweiterung

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

Neuinstallieren der Erweiterung

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

Option 2: Verwenden der Azure-CLI

Erzwingen Sie ein Upgrade:

#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

Sollte das nicht funktionieren, entfernen Sie die Erweiterung, installieren Sie sie erneut, und führen Sie die folgenden Schritte aus, um automatisch die neueste Version hinzuzufügen:

Entfernen Sie die Erweiterung:

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

Installieren Sie die Erweiterung erneut:

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

Option 3: Neu starten Ihrer VMs

Wenn Sie für die Network Watcher-Erweiterung das automatische Upgrade aktiviert haben, starten Sie Ihre VM-Installation neu, um die aktuelle Erweiterung zu erhalten.

Support

Sollten Sie im Rahmen dieses Artikels weitere Hilfe benötigen, lesen Sie die Dokumentation zur Network Watcher-Erweiterung für Linux oder Windows. Über das MSDN Azure-Forum oder über das Stack Overflow-Forum können Sie sich auch mit den Azure-Experten in Verbindung setzen. Alternativ dazu können Sie eine Azure-Supportanfrage erstellen. Rufen Sie die Azure-Support-Website auf, und wählen Sie die Option Support erhalten. Informationen zur Nutzung von Azure-Support finden Sie unter Microsoft Azure-Support-FAQ.