Aktualizowanie rozszerzenia usługi Azure Network Watcher do najnowszej wersji
Azure Network Watcher to usługa monitorowania wydajności sieci, diagnostyki i analizy, która monitoruje sieci platformy Azure. Rozszerzenie maszyny wirtualnej agenta usługi Network Watcher jest wymagane do przechwytywania ruchu sieciowego na żądanie i używania innych zaawansowanych funkcji na maszynach wirtualnych platformy Azure. Jest on używany przez monitor połączeń, rozwiązywanie problemów z połączeniem i przechwytywanie pakietów.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Jeśli jej nie masz, utwórz bezpłatne konto.
- Maszyna wirtualna platformy Azure z zainstalowanym rozszerzeniem usługi Network Watcher.
Najnowsza wersja
Najnowszą wersją rozszerzenia usługi Network Watcher jest 1.4.3422.1
.
Identyfikowanie najnowszej wersji
Użyj polecenia az vm extension image list , aby zidentyfikować najnowszą wersję rozszerzenia usługi Network Watcher dla systemu operacyjnego maszyny wirtualnej.
# Identify latest version of Network Watcher extension for Linux.
az vm extension image list --name 'NetworkWatcherAgentLinux' --publisher 'Microsoft.Azure.NetworkWatcher' --latest --location 'eastus'
Aktualizowanie rozszerzenia przy użyciu skryptu programu PowerShell
Jeśli masz duże wdrożenia, użyj skryptu programu PowerShell, aby jednocześnie zaktualizować wiele maszyn wirtualnych. Poniższy skrypt programu PowerShell aktualizuje rozszerzenie usługi Network Watcher wszystkich maszyn wirtualnych z systemem Windows w subskrypcji:
<#
.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"
}
Ręczne aktualizowanie rozszerzenia
Aby zaktualizować rozszerzenie, musisz znać wersję rozszerzenia.
Sprawdzanie wersji rozszerzenia
Możesz sprawdzić wersję rozszerzenia przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu PowerShell.
Korzystanie z witryny Azure Portal
- Przejdź do okienka Rozszerzenia maszyny wirtualnej w witrynie Azure Portal.
- Wybierz rozszerzenie AzureNetworkWatcher, aby wyświetlić okienko szczegółów.
- Znajdź numer wersji w polu Wersja .
Korzystanie z interfejsu wiersza polecenia platformy Azure
Uruchom następujące polecenie z poziomu wiersza polecenia platformy Azure:
az vm get-instance-view --resource-group "SampleRG" --name "Sample-VM"
Znajdź ciąg "AzureNetworkWatcherExtension" w danych wyjściowych i zidentyfikuj numer wersji z pola "TypeHandlerVersion" w danych wyjściowych.
Informacje o rozszerzeniu są wyświetlane wiele razy w danych wyjściowych JSON. Pełny numer wersji rozszerzenia jest dostępny w bloku Rozszerzenia.
Powinna zostać wyświetlona zawartość podobna do poniższej:
Użyj PowerShell
Uruchom następujące polecenia w wierszu polecenia programu PowerShell:
Get-AzVM -ResourceGroupName "SampleRG" -Name "Sample-VM" -Status
Znajdź rozszerzenie usługi Azure Network Watcher w danych wyjściowych i zidentyfikuj numer wersji z pola "TypeHandlerVersion" w danych wyjściowych.
Powinna zostać wyświetlona zawartość podobna do poniższej:
Aktualizowanie rozszerzenia
Jeśli twoja wersja jest poniżej najnowszej wymienionej powyżej wersji, zaktualizuj rozszerzenie, używając dowolnej z poniższych opcji.
Opcja 1. Korzystanie z programu PowerShell
Uruchom następujące polecenia:
#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"
Jeśli to nie zadziała. Usuń i ponownie zainstaluj rozszerzenie, wykonując poniższe kroki, aby zainstalować najnowszą wersję.
Usuwanie rozszerzenia
#Same command for Linux and Windows
Remove-AzVMExtension -ResourceGroupName "SampleRG" -VMName "Sample-VM" -Name "AzureNetworkWatcherExtension"
Ponowne instalowanie rozszerzenia
#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"
Opcja 2. Korzystanie z interfejsu wiersza polecenia platformy Azure
Wymuś uaktualnienie.
#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
Jeśli to nie zadziała, usuń i zainstaluj rozszerzenie ponownie, a następnie wykonaj następujące kroki, aby automatycznie dodać najnowszą wersję.
Usuń rozszerzenie.
#Same for Linux and Windows
az vm extension delete --resource-group "myResourceGroup1" --vm-name "myVM1" -n "AzureNetworkWatcherExtension"
Ponownie zainstaluj rozszerzenie.
#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"
Opcja 3. Ponowne uruchamianie maszyn wirtualnych
Jeśli dla rozszerzenia usługi Network Watcher ustawiono ustawienie automatycznego uaktualniania na wartość true, uruchom ponownie instalację maszyny wirtualnej do najnowszego rozszerzenia.
Pomoc techniczna
Jeśli potrzebujesz więcej pomocy w dowolnym momencie tego artykułu, zapoznaj się z dokumentacją rozszerzenia usługi Network Watcher dla systemu Linux lub Windows. Możesz również skontaktować się z ekspertami platformy Azure na forach MSDN Azure i Stack Overflow. Alternatywnie utwórz zdarzenie pomoc techniczna platformy Azure. Przejdź do witryny pomoc techniczna platformy Azure i wybierz pozycję Uzyskaj pomoc techniczną. Aby uzyskać informacje na temat korzystania z pomocy technicznej platformy Azure, zapoznaj się z często zadawanymi pytaniami dotyczącymi usługi Microsoft pomoc techniczna platformy Azure.