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
- Navigieren Sie im Azure-Portal zum Bereich Erweiterungen für Ihren virtuellen Computer.
- Wählen Sie die Erweiterung AzureNetworkWatcher aus, um den Detailbereich anzuzeigen.
- 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:
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:
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.