Überwachen geplanter Ereignisse für Ihre virtuellen Azure-Computer

Gilt für: VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen

Updates werden täglich auf verschiedene Teile von Azure angewendet, damit die Dienste, die auf ihnen ausgeführt werden, sicher und auf dem neuesten Stand bleiben. Zusätzlich zu geplanten Updates können auch ungeplante Ereignisse auftreten. Wenn beispielsweise eine Hardwarebeeinträchtigung oder ein Hardwarefehler erkannt wird, müssen die Azure-Dienste möglicherweise nicht geplante Wartung ausführen. Durch Verwenden von Livemigration und speichererhaltende Updates sowie grundsätzliches Beachten einer strengen Begrenzung der Auswirkungen von Updates sind diese Ereignisse in den meisten Fällen für Kunden weitestgehend transparent, und die Ereignisse haben entweder keine Auswirkung oder verursachen höchstens für einige Sekunden ein Einfrieren des virtuellen Computers. Es gibt jedoch Anwendungen, bei denen sich bereits wenige Sekunden eines Einfrierens des virtuellen Computers negativ auswirken. Es ist wichtig, im Voraus über eine bevorstehende Azure-Wartung informiert zu sein, um das beste Betriebsverhalten für solche Anwendungen sicherzustellen. Der Scheduled Events-Dienst stellt Ihnen eine befehlsorientierte Benutzerschnittstelle zur Verfügung, um über bevorstehende Wartung benachrichtigt zu werden, und ermöglicht es Ihnen, die Wartung reibungslos abzuwickeln.

In diesem Artikel erfahren Sie, wie Sie geplante Ereignisse verwenden können, um über Wartungsereignisse benachrichtigt zu werden, die sich auf ihre virtuellen Computer auswirken könnten, und wie Sie eine grundlegende Automatisierung erstellen können, die bei der Überwachung und Analyse unterstützen kann.

Weiterleiten von geplanten Ereignissen an Log Analytics

Scheduled Events ist als Teil des Azure Instance Metadata Service verfügbar, der auf jedem virtuellen Azure-Computer verfügbar ist. Kunden können eine Automatisierung schreiben, um den Endpunkt ihrer virtuellen Computer abzufragen, nach Benachrichtigungen über geplante Wartung zu suchen sowie Risikominderungen durchzuführen, etwa Speichern des Zustands und Außerbetriebnahme des virtuellen Computers. Es empfiehlt sich, Automatisierung zu erstellen, um geplante Ereignisse aufzuzeichnen, damit Sie ein Überwachungsprotokoll zu Azure-Wartungsereignissen erhalten.

In diesem Artikel sind die Schritte erläutert, mit denen Sie das Erfassen von geplanten Wartungsereignissen in Log Analytics einrichten. Anschließend werden einige einfache Benachrichtigungsaktionen ausgelöst, z. B. Senden einer E-Mail an Ihr Team und Abrufen einer Verlaufsansicht aller Ereignisse, die sich auf Ihre virtuellen Computer ausgewirkt haben. Für die Ereignisaggregation und -automatisierung wird Log Analytics verwendet, Sie können jedoch jede beliebige Überwachungslösung verwenden, um diese Protokolle zu erfassen und Automatisierung auszulösen.

Diagramm, in dem der Ereignislebenszyklus dargestellt ist

Voraussetzungen

Für dieses Beispiel müssen Sie einen virtuellen Windows-Computer in einer Verfügbarkeitsgruppe erstellen. Scheduled Events stellt Benachrichtigungen über Änderungen bereit, die sich auf jeden der virtuellen Computer in ihrer Verfügbarkeitsgruppe, in Ihrem Clouddienst oder in Ihrer VM-Skalierungsgruppe oder auf eigenständige virtuelle Computer auswirken können. Es wird ein Dienst ausgeführt, der ständig auf geplante Ereignisse auf einem der virtuellen Computer abfragt, der als Collector fungiert, um Ereignisse für alle anderen virtuellen Computer in der Verfügbarkeitsgruppe abzurufen.

Löschen Sie die Ressourcengruppe nicht am Ende des Tutorials.

Außerdem müssen Sie einen Log Analytics-Arbeitsbereich erstellen, der dazu verwendet wird, die Informationen von den virtuellen Computern der Verfügbarkeitsgruppe zu aggregieren.

Einrichten der Umgebung

Sie sollten jetzt zwei erste virtuelle Computer in einer Verfügbarkeitsgruppe haben. Nun muss in der gleichen Verfügbarkeitsgruppe ein dritter virtueller Computer mit dem Namen myCollectorVM erstellt werden.

New-AzVm `
   -ResourceGroupName "myResourceGroupAvailability" `
   -Name "myCollectorVM" `
   -Location "East US" `
   -VirtualNetworkName "myVnet" `
   -SubnetName "mySubnet" `
   -SecurityGroupName "myNetworkSecurityGroup" `
   -OpenPorts 3389 `
   -PublicIpAddressName "myPublicIpAddress3" `
   -AvailabilitySetName "myAvailabilitySet" `
   -Credential $cred

Laden Sie die Installations-ZIP-Datei des Projekts von GitHub herunter.

Stellen Sie eine Verbindung mit myCollectorVM her, kopieren Sie die ZIP-Datei auf den virtuellen Computer, und extrahieren Sie alle Dateien. Öffnen Sie auf dem virtuellen Computer eine PowerShell-Eingabeaufforderung. Wechseln Sie an der Eingabeaufforderung in den Ordner, der SchService.ps1 enthält (beispielsweise PS C:\Users\azureuser\AzureScheduledEventsService-master\AzureScheduledEventsService-master\Powershell>), und richten Sie den Dienst ein.

.\SchService.ps1 -Setup

Starten Sie den Dienst.

.\SchService.ps1 -Start

Der Dienst fragt nun alle 10 Sekunden auf alle geplanten Ereignisse ab und genehmigt die Ereignisse, um die Wartung zu beschleunigen. Einfrieren (Freeze), Neustarten (Reboot), erneutes Bereitstellen (Redeploy) und Preempt sind die Ereignisse, die von Scheduled Events erfasst werden. Sie können das Skript so erweitern, dass vor der Genehmigung des jeweiligen Ereignisses einige Risikominderungen auslöst werden.

Überprüfen Sie den Dienststatus, und vergewissern Sie sich, dass er „Running“ lautet.

.\SchService.ps1 -status  

Dieser Befehl sollte Running zurückgegeben.

Der Dienst fragt nun alle 10 Sekunden auf alle geplanten Ereignisse ab und genehmigt die Ereignisse, um die Wartung zu beschleunigen. Einfrieren (Freeze), Neustarten (Reboot), erneutes Bereitstellen (Redeploy) und Preempt sind die Ereignisse, die von Scheduled Events erfasst werden. Sie können das Skript so erweitern, dass vor der Genehmigung des jeweiligen Ereignisses einige Risikominderungen auslöst werden.

Wird eines der oben aufgeführte Ereignisse vom Scheduled Events-Dienst erfasst, wird es im Anwendungsereignisprotokoll in den Feldern für Ereignisstatus (EventStatus), Ereignistyp (EventType), Ressourcen (Resources, Name des virtuellen Computers) und Ausführungsdatum (NotBefore, Mindestbenachrichtigungsperiode) protokolliert. Sie können nach den Ereignissen mit der ID 1234 im Anwendungsereignisprotokoll suchen.

Nachdem der Dienst eingerichtet und gestartet wurde, protokolliert er Ereignisse in den Windows-Anwendungsprotokollen. Um dies zu überprüfen, starten Sie eine der VMs in der Verfügbarkeitsgruppe neu. Danach sollte in der Ereignisanzeige in „Windows-Protokolle“ > „Anwendungsprotokoll“ ein protokolliertes Ereignis angezeigt werden, das angibt, dass die VM neu gestartet wurde.

Screenshot der Ereignisanzeige

Werden Ereignisse vom Scheduled Events-Dienst erfasst, werden sie im Anwendungsereignisprotokoll in den Feldern für Ereignisstatus (EventStatus), Ereignistyp (EventType), Ressourcen (Resources, Name des virtuellen Computers) und Ausführungsdatum (NotBefore, Mindestbenachrichtigungsperiode) protokolliert. Sie können nach den Ereignissen mit der ID 1234 im Anwendungsereignisprotokoll suchen.

Hinweis

In diesem Beispiel befinden sich die virtuellen Computer in einer Verfügbarkeitsgruppe, wodurch es möglich ist, einen einzelnen virtuellen Computer als Collector festzulegen, der auf geplante Ereignisse lauscht und diese an den Log Analytics-Arbeitsbereich weiterleitet. Wenn Sie eigenständige virtuelle Computer haben, können Sie den Dienst auf jedem virtuellen Computer ausführen und diese dann einzeln mit Ihrem Log Analytics-Arbeitsbereich verbinden.

Für die vorliegende Einrichtung wurde Windows ausgewählt, Sie können aber eine ähnliche Lösung unter Linux entwickeln.

Zu jedem Zeitpunkt können Sie den Scheduled Events-Dienst anhalten oder entfernen, indem Sie den Parameter –stop oder –remove verwenden.

Herstellen einer Verbindung mit dem Arbeitsbereich

Es soll nun ein Log Analytics Arbeitsbereich mit dem virtuellen Collector-Computer verbunden werden. Der Log Analytics-Arbeitsbereich fungiert als Repository, und die Ereignisprotokollsammlung wird so konfiguriert, dass sie die Anwendungsprotokolle virtuellen Collector-Computer erfasst.

Um die geplanten Ereignisse an das Ereignisprotokoll weiterzuleiten, das vom Dienst als Anwendungsprotokoll gespeichert wird, müssen Sie Ihren virtuellen Computer mit Ihrem Log Analytics Arbeitsbereich verbinden.

  1. Öffnen Sie die Seite für den Arbeitsbereich, den Sie erstellt haben.

  2. Wählen Sie unter Mit einer Datenquelle verbinden die Option Virtuelle Azure-Computer aus.

    Herstellen einer Verbindung mit einem virtuellen Computer als Datenquelle

  3. Suchen Sie nach myCollectorVM, und wählen Sie diesen Eintrag aus.

  4. Wählen Sie auf der Seite für myCollectorVM die Option Verbinden aus.

Hiermit wird der Microsoft Monitoring Agent auf Ihrem virtuellen Computer installiert. Es dauert einige Minuten, bis Ihr virtueller Computer mit dem Arbeitsbereich verbunden und die Erweiterung installiert ist.

Konfigurieren des Arbeitsbereichs

  1. Öffnen Sie die Seite für Ihren Arbeitsbereich, und wählen Sie Erweiterte Einstellungen aus.

  2. Wählen Sie Daten im linken Menü aus, und wählen Sie dann Windows-Ereignisprotokolle aus.

  3. Beginnen Sie in Erfassen Sie Ereignisse aus den folgenden Ereignisprotokollen mit dem Eingeben von application, und wählen Sie dann Application in der Liste aus.

    Erweiterte Einstellungen auswählen

  4. Belassen Sie FEHLER, WARNUNG und INFORMATION ausgewählt, und wählen Sie dann Speichern aus, um die Einstellungen zu speichern.

Hinweis

Es tritt eine Verzögerung auf, und es kann bis zu 10 Minuten dauern, bis das Protokoll verfügbar ist.

Erstellen einer Warnungsregel mit Azure Monitor

Sobald die Ereignisse an Log Analytics übermittelt wurden, können Sie die folgende Abfrage ausführen, um nach den geplanten Ereignissen zu suchen.

  1. Wählen Sie oben auf der Seite die Option Protokolle aus, und fügen Sie Folgendes in das Textfeld ein:

    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
    
  2. Wählen Sie Speichern aus, geben Sie dann ogQuery für den Namen ein, belassen Sie Abfrage als Typ, geben Sie VMLogs als Kategorie ein, und wählen Sie dann Speichern aus.

    Speichern der Abfrage

  3. Wählen Sie Neue Warnungsregel aus.

  4. Belassen Sie auf der Seite Regel erstellen den Eintrag collectorworkspace als Wert für Ressource.

  5. Wählen Sie unter Bedingung den Eintrag Whenever the customer log search is <loin undefined> aus. Die Seite Signallogik konfigurieren wird geöffnet.

  6. Geben Sie unter Schwellenwert den Wert 0 ein, und wählen Sie dann Fertig aus.

  7. Wählen Sie unter Aktionen die Option Aktionsgruppe erstellen aus. Die Seite Aktionsgruppe hinzufügen wird geöffnet.

  8. Geben Sie in Name der Aktionsgruppe den Namen myActionGroup ein.

  9. Geben Sie in Kurzname den Namen myActionGroup ein.

  10. Wählen Sie unter Ressourcengruppe den Eintrag myResourceGroupAvailability aus.

  11. Geben Sie in AKTIONSNAME den Namen E-Mail ein, und wählen Sie dann E-Mail/SMS/Push/Sprache aus. Die Seite E-Mail/SMS/Push/Sprache wird geöffnet.

  12. Wählen Sie E-Mail aus, geben Sie Ihre E-Mail-Adresse ein, und wählen Sie dann OK aus.

  13. Wählen Sie auf der Seite Aktionsgruppe hinzufügen die Option OK aus.

  14. Geben Sie auf der Seite Regel erstellen unter WARNUNGSDETAILS den Namen myAlert für Name der Warnungsregel ein, und geben Sie dann Email alert rule für Beschreibung ein.

  15. Wählen Sie abschließend Warnungsregel erstellen aus.

  16. Starten Sie einen der virtuellen Computer in der Verfügbarkeitsgruppe neu. Innerhalb weniger Minuten sollten Sie eine E-Mail erhalten, in der mitgeteilt wird, dass die Warnung ausgelöst wurde.

Um Ihre Warnungsregeln zu verwalten, wechseln Sie zur Ressourcengruppe, wählen Sie Warnungen im linken Menü aus, und wählen Sie dann Warnungsregeln verwalten oben auf der Seite aus.

Nächste Schritte

Weitere Informationen finden Sie auf der Seite Azure Scheduled Events Service auf GitHub.