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.3206.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

  1. Przejdź do okienka Rozszerzenia maszyny wirtualnej w witrynie Azure Portal.
  2. Wybierz rozszerzenie AzureNetworkWatcher, aby wyświetlić okienko szczegółów.
  3. 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: Zrzut ekranu interfejsu wiersza polecenia platformy Azure

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: Zrzut ekranu programu PowerShell

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.