Surveiller les événements planifiés pour vos machines virtuelles Windows
S’applique à : Machines virtuelles ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles ✔️ Groupes identiques uniformes
Des mises à jour sont appliquées à différentes parties d’Azure tous les jours, pour assurer la sécurité des services et les mettre à jour. En plus des mises à jour planifiées, des événements non planifiés peuvent également se produire. Par exemple, en cas de dégradation ou de panne du matériel, les services Azure peuvent avoir besoin d’effectuer une maintenance non planifiée. L’utilisation de la migration dynamique, des mises à jour préservant la mémoire et de la limitation stricte de l’impact des mises à jour permettent à ces événements d’être presque transparents pour les clients. Au pire, ils peuvent provoquer un arrêt de quelques de la machine virtuelle. Cependant, pour certaines applications, même quelques secondes d’arrêt d’une machine virtuelle peuvent avoir un impact. Il est important d’être informé à l’avance des opérations de maintenance Azure à venir pour garantir une expérience optimale pour ces applications. Le service Scheduled Events fournit une interface de programmation qui vous informe des opérations de maintenance à venir et vous permet de les gérer de façon appropriée.
Cet article vous montre comment vous pouvez utiliser des événements planifiés pour être informé des événements de maintenance susceptibles d’affecter vos machines virtuelles, et comment créer une automatisation simple qui peut faciliter la surveillance et l’analyse.
Routage des événements planifiés vers Log Analytics
Scheduled Events est disponible dans le cadre d’Azure Instance Metadata Service, qui est disponible sur chaque machine virtuelle Azure. Les clients peuvent écrire l’automatisation pour interroger le point de terminaison de leurs machines virtuelles afin de rechercher les notifications de maintenance planifiées et d’appliquer des mesures d’atténuation comme l’enregistrement de l’état et la mise hors connexion de la machine virtuelle. Nous vous conseillons de créer une automatisation pour enregistrer les événements planifiés afin de disposer d’un journal d’audit des événements de maintenance Azure.
Dans cet article, nous vous guidons tout au long de la capture des événements de maintenance planifiés dans Log Analytics. Ensuite, nous déclenchons des actions de notification de base, comme envoyer un e-mail à votre équipe et obtenir une vue historique de tous les événements qui ont affecté vos machines virtuelles. Pour l’agrégation et l’automatisation des événements, nous utilisons Log Analytics, mais vous pouvez utiliser n’importe quelle solution de surveillance pour collecter ces journaux et déclencher l’automatisation.
Prérequis
Pour cet exemple, vous devez créer une machine virtuelle Windows dans un groupe à haute disponibilité. Scheduled Events fournit des notifications sur les modifications qui peuvent affecter les machines virtuelles de votre groupe à haute disponibilité, le service Cloud, le groupe de machines virtuelles identiques ou les machines virtuelles autonomes. Un service est exécuté, qui interroge les événements planifiés sur une des machines virtuelles qui agit comme collecteur, afin de récupérer les événements pour toutes les autres machines virtuelles du groupe à haute disponibilité.
Ne supprimez pas le groupe de ressources à la fin du tutoriel.
Vous devez aussi créer un espace de travail Log Analytics que nous utilisons pour agréger les informations provenant des machines virtuelles du groupe à haute disponibilité.
Configurer l’environnement
Vous devez maintenant avoir 2 machines virtuelles initiales dans un groupe à haute disponibilité. Maintenant, nous avons besoin de créer une troisième machine virtuelle, nommée myCollectorVM
, dans le même groupe à haute disponibilité.
New-AzVm `
-ResourceGroupName "myResourceGroupAvailability" `
-Name "myCollectorVM" `
-Location "East US" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-SecurityGroupName "myNetworkSecurityGroup" `
-OpenPorts 3389 `
-PublicIpAddressName "myPublicIpAddress3" `
-AvailabilitySetName "myAvailabilitySet" `
-Credential $cred
Téléchargez le fichier .zip d’installation du projet sur GitHub.
Connectez-vous à myCollectorVM et copiez le fichier .zip sur la machine virtuelle et décompressez tous les fichiers. Sur votre machine virtuelle, ouvrez une invite PowerShell. Déplacez votre invite dans le dossier contenant
SchService.ps1
, par exemple :PS C:\Users\azureuser\AzureScheduledEventsService-master\AzureScheduledEventsService-master\Powershell>
et configurez le service..\SchService.ps1 -Setup
Démarrez le service.
.\SchService.ps1 -Start
Validez l’état du service et assurez-vous qu’il est en cours d’exécution.
.\SchService.ps1 -status
La commande de validation doit retourner
Running
.
Le service commence à interroger toutes les 10 secondes tous les événements planifiés et approuve les événements pour accélérer la maintenance. Freeze, Reboot, Redeploy et Preempt sont les événements capturés par Scheduled Events. Vous pouvez étendre le script pour déclencher des atténuations avant d’approuver l’événement.
Lorsqu’un des événements ci-dessus est capturé par le service Scheduled Events, il est enregistré dans le journal des événements de l’application, dans Event Status, Event Type, Resources (nom des machines virtuelles) et NotBefore (période de préavis minimale). Vous pouvez retrouver les événements avec l’ID 1234 dans le journal des événements de l’application.
Une fois le service configuré et démarré, les événements sont consignés dans les journaux des applications Windows. Pour vérifier que tout fonctionne, redémarrez une des machines virtuelles dans le groupe à haute disponibilité. Vous devez voir un événement enregistré dans l’observateur d’événements dans Journaux Windows > Journal des applications, qui indique que la machine virtuelle a redémarré.
Lorsque des événements sont capturés par le service Scheduled Events, ils sont enregistrés dans le journal des événements de l’application, avec Event Status, Event Type, Resources (nom de la machine virtuelle) et NotBefore (période de préavis minimale). Vous pouvez retrouver les événements avec l’ID 1234 dans le journal des événements de l’application.
Notes
Dans cet exemple, les machines virtuelles étaient dans un groupe à haute disponibilité, ce qui nous permettait de désigner une seule machine virtuelle comme collecteur pour écouter et acheminer les événements planifiés vers notre espace de travail Log Analytics. Si vous avez des machines virtuelles autonomes, vous pouvez exécuter le service sur chaque machine virtuelle, puis les connecter individuellement à votre espace de travail Log Analytics.
Dans notre configuration, nous avons choisi Windows, mais vous pouvez concevoir la même solution sur Linux.
À tout moment, vous pouvez arrêter/supprimer le service Scheduled Events à l’aide des commutateurs –stop
et –remove
.
Se connecter à l’espace de travail Log Analytics
Nous souhaitons maintenant connecter un espace de travail Log Analytics à la machine virtuelle qui joue le rôle de collecteur. L’espace de travail Log Analytics fonctionne comme un référentiel et nous allons configurer la collecte des journaux des événements pour capturer les journaux des applications à partir de la machine virtuelle collecteur.
Pour router les événements planifiés vers le journal des événements, qui est enregistré en tant que journal des applications par notre service, vous devrez connecter votre machine virtuelle à votre espace de travail Log Analytics.
Configurer la collecte de données
Ouvrez le portail Azure.
Dans la barre de recherche en haut, tapez Espaces de travail Log Analytics, puis sélectionnez-le dans les résultats de la recherche.
Choisissez l’espace de travail que vous avez créé pour ouvrez sa page.
Sous Paramètres, sélectionnez Agents, puis cliquez sur Machines virtuelles.
Sous l’onglet Serveurs Windows, cliquez sur Règles de collecte de données.
Sélectionnez l’onglet Collecter et livrer, puis cliquez sur Ajouter une source de données
Sous l’onglet Source de données, sélectionnez Journaux des événements Windows dans la liste déroulante.
Sélectionnez les journaux d’événements que vous souhaitez collecter. Vérifiez que ERREUR, AVERTISSEMENT et INFORMATIONS sont sélectionnés.
Cliquez sur Suivant : Destination>.
Sous l’onglet Destination, cliquez sur Ajouter une destination.
Renseignez les sections Type de destination, Abonnement et Détails de la destination avec les détails de votre machine virtuelle collectrice et de son abonnement.
Une fois que vous avez sélectionné la machine virtuelle appropriée, l’agent Microsoft Monitoring Agent sera installé automatiquement sur votre machine virtuelle. La connexion de votre machine virtuelle à l’espace de travail et l’installation de l’extension peuvent prendre quelques minutes.
Remarque
Il y a un certain délai, et il peut s’écouler jusqu’à 10 minutes avant que le journal ne soit disponible.
Création d’une règle d’alerte avec Azure Monitor
Une fois les événements envoyés à Log Analytics, vous pouvez exécuter la requête suivante pour rechercher les événements planifiés.
En haut de la page, sélectionnez Journaux et collez le code suivant dans la zone de texte :
Event | where EventLog == "Application" and Source contains "AzureScheduledEvents" and RenderedDescription contains "Scheduled" and RenderedDescription contains "EventStatus" | project TimeGenerated, RenderedDescription | extend ReqJson= parse_json(RenderedDescription) | extend EventId = ReqJson["EventId"] ,EventStatus = ReqJson["EventStatus"] ,EventType = ReqJson["EventType"] ,NotBefore = ReqJson["NotBefore"] ,ResourceType = ReqJson["ResourceType"] ,Resources = ReqJson["Resources"] | project-away RenderedDescription,ReqJson
Sélectionnez Enregistrer, puis tapez le nom
ogQuery
, laissez le type Requête, tapez la catégorieVMLogs
, puis sélectionnez Enregistrer.Sélectionnez Nouvelle règle d’alerte.
Dans la page Créer une règle, laissez
collectorworkspace
comme Ressource.Sous Condition, sélectionnez l’entrée Chaque fois que la recherche dans les journaux du client est <connexion non définie>. La page Configurer la logique du signal s’ouvre.
Sous Valeur de seuil, entrez 0, puis sélectionnez Terminé.
Sous Actions, sélectionnez Créer un groupe d’actions. La page Ajouter un groupe d’actions s’ouvre.
Dans Nom du groupe d’actions, tapez myActionGroup.
Dans Nom court, tapez myActionGroup.
Dans Groupe de ressources, sélectionnez myResourceGroupAvailability.
Sous actions, dans NOM DE L’ACTION, tapez E-mail, puis sélectionnez E-mail/SMS/Push/Voix. La page E-mail/SMS/Push/Voix s’ouvre.
Sélectionnez E-mail, tapez votre adresse de courrier, puis cliquez sur OK.
Dans la page Ajouter un groupe d’actions, sélectionnez OK.
Dans la page Créer une règle, sous DÉTAILS DE L’ALERTE, tapez myAlert comme nom de la règle d’alerte, puis tapez Règle d’alerte e-mail dans Description.
Lorsque vous avez terminé, cliquez sur Créer une règle d’alerte.
Redémarrez une des machines virtuelles du groupe à haute disponibilité. Au bout de quelques minutes, vous devez recevoir un courrier électronique indiquant que l’alerte a été déclenchée.
Pour gérer vos règles d’alerte, accédez au groupe de ressources, sélectionnez Alertes dans le menu de gauche, puis sélectionnez Gérer les règles d’alerte en haut de la page.
Étapes suivantes
Pour plus d’informations, consultez la page Service Scheduled Events sur GitHub.