Mettre à jour l’extension Azure Network Watcher vers la version la plus récente

Azure Network Watcher est un service d’analyse, de diagnostic et d’analytique des performances réseau surveillant les réseaux Azure. L’extension de machine virtuelle Agent Network Watcher est obligatoire pour capturer le trafic réseau à la demande et pour assurer la prise en charge d’autres fonctionnalités avancées sur les machines virtuelles Azure. Il est utilisé par le moniteur de connexion, la résolution des problèmes de connexion et la capture de paquets.

Prérequis

  • Compte Azure avec un abonnement actif. Si vous n’en avez pas, créez un compte gratuit.
  • Une machine virtuelle Azure sur laquelle l’extension Network Watcher est installée.

Version la plus récente

La version la plus récente de l’extension Network Watcher est 1.4.3206.1.

Identifier la dernière version

Utilisez la commande az vm extension image list pour identifier la dernière version de l’extension Network Watcher pour le système d’exploitation de votre machine virtuelle.

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

Mettre à jour votre extension à l’aide d’un script PowerShell

Si vous avez des déploiements volumineux, utilisez un script PowerShell pour mettre à jour plusieurs machines virtuelles à la fois. Le script PowerShell suivant met à jour l’extension Network Watcher de toutes les machines virtuelles Windows d’un 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" 
}

Mettre à jour votre extension manuellement

Pour mettre à jour votre extension, vous devez connaître la version de votre extension.

Vérifier la version de votre extension

Vous pouvez vérifier la version de votre extension à l’aide du portail Azure, d’Azure CLI ou de PowerShell.

Utilisation du portail Azure

  1. Accédez au volet Extensions de votre machine virtuelle dans le portail Azure.
  2. Sélectionnez l’extension AzureNetworkWatcher pour afficher le volet d’informations.
  3. Recherchez le numéro de version dans le champ Version.  

Utiliser Azure CLI

Exécutez la commande suivante à partir d’une invite de commandes Azure CLI :

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

Localisez « AzureNetworkWatcherExtension » dans la sortie et identifiez le numéro de version mentionné dans le champ « TypeHandlerVersion » dans la sortie. 

Les informations sur l’extension apparaissent plusieurs fois dans la sortie JSON. Le numéro de version complet de l’extension est disponible sous le bloc Extensions.

Vous devez voir quelque chose semblable à ce qui est présenté ci-dessous : Capture d’écran d’Azure CLI

Utiliser PowerShell

À partir d’une invite de commande PowerShell, exécutez les commandes suivantes :

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

Localisez l’extension Azure Network Watcher dans la sortie et identifiez le numéro de version mentionné dans le champ « TypeHandlerVersion » dans la sortie.  

Vous devez voir quelque chose semblable à ce qui est présenté ci-dessous : Capture d’écran de PowerShell

Mettre à jour votre extension

Si votre version est antérieure à la dernière version mentionnée ci-dessus, mettez à jour votre extension en utilisant l’une des options suivantes.

Option 1 : Utiliser PowerShell

Exécutez les commandes suivantes :

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

Si cela ne fonctionne pas, Supprimez et réinstallez l’extension, en suivant les étapes ci-dessous, pour installer la dernière version.

Suppression de l’extension

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

Réinstallation de l’extension

#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 n°2 : Utilisation de l’interface de ligne de commande Microsoft Azure

Forcez une mise à niveau.

#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

Si cela ne fonctionne pas, supprimez et réinstallez l’extension, puis procédez comme suit pour ajouter automatiquement la dernière version.

Supprimez l’extension.

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

Installez l’extension à nouveau.

#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 : Redémarrer vos machines virtuelles

Si la mise à niveau automatique est définie sur true pour l’extension Network Watcher, redémarrez l’installation de votre machine virtuelle sur la dernière extension.

Support

Si vous avez besoin d’une aide supplémentaire à un moment quelconque de cet article, consultez la documentation de l’extension Network Watcher pour Linux ou Windows. Vous pouvez également contacter les experts Azure sur les forums MSDN Azure et Stack Overflow. Vous pouvez également signaler un incident au support Azure. Accédez au Site du support Azure, puis cliquez sur Obtenir un support. Pour plus d’informations sur l’utilisation du support Azure, lisez le FAQ du support Microsoft Azure.