Überwachen geplanter Ereignisse für Windows-VMs
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 die Verwendung von Livemigrationen, speichererhaltende Updates und die Einhaltung strenger Grenzwerte für die Auswirkungen dieser Updates bleiben diese Ereignisse für Kunden nahezu transparent. Die VMs können höchstens einige Sekunden einfrieren. Es gibt jedoch Anwendungen, bei denen sich bereits wenige Sekunden eines Einfrierens der VMs 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 Ihnen, die Wartung reibungslos abzuwickeln.
In diesem Artikel erfahren Sie, wie Sie Scheduled Events verwenden können, um über Wartungsereignisse benachrichtigt zu werden, die sich auf Ihre VMs auswirken könnten, und wie Sie eine grundlegende Automatisierung einrichten können, die Sie 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 werden die Schritte erläutert, mit denen Sie das Erfassen von Wartungsereignissen von Scheduled Events in Log Analytics einrichten. Anschließend werden einige einfache Benachrichtigungsaktionen ausgelöst, z. B. das Senden einer E-Mail an Ihr Team und das Abrufen einer Verlaufsansicht aller Ereignisse, die sich auf Ihre virtuellen VMs 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 die Automatisierung auszulösen.
Voraussetzungen
Für dieses Beispiel müssen Sie eine Windows-VM 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 einer der VMs abfragt, der als Collector fungiert, um Ereignisse für alle anderen VMs 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, mit dem die Informationen von den VMs der Verfügbarkeitsgruppe aggregiert werden.
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 (beispielsweisePS C:\Users\azureuser\AzureScheduledEventsService-master\AzureScheduledEventsService-master\Powershell>
), und richten Sie den Dienst ein..\SchService.ps1 -Setup
Starten Sie den Dienst.
.\SchService.ps1 -Start
Überprüfen Sie den Dienststatus, und vergewissern Sie sich, dass er „Running“ lautet.
.\SchService.ps1 -status
Der Überprüfungsbefehl sollte
Running
zurückgeben.
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.
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 Log Analytics-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.
Für die Weiterleitung von Scheduled Events zum Ereignisprotokoll, das vom Dienst als Anwendungsprotokoll gespeichert wird, müssen Sie Ihre VM mit Ihrem Log Analytics-Arbeitsbereich verbinden.
Einrichten der Datensammlung
Öffnen Sie das Azure-Portal.
Geben Sie auf der Suchleiste oben Log Analytics-Arbeitsbereiche ein, und wählen Sie die Option aus den Suchergebnissen aus.
Wählen Sie den Arbeitsbereich aus, den Sie erstellt haben, um die zugehörige Seite zu öffnen.
Wählen Sie unter „Einstellungen“ zunächst Agents und dann Virtuelle Computer aus.
Wählen Sie auf der Registerkarte Windows-Server die Option Datensammlungsregeln aus.
Wechseln Sie zur Registerkarte Sammeln und übermitteln, und wählen Sie Datenquelle hinzufügen aus.
Wählen Sie auf der Registerkarte Datenquelle die Option Windows-Ereignisprotokolle aus der Dropdownliste aus.
Wählen Sie die Ereignisprotokolle aus, die Sie sammeln möchten. Stellen Sie sicher, dass FEHLER, WARNUNG und INFORMATIONEN ausgewählt sind.
Wählen Sie Weiter: Ziel > aus.
Wählen Sie auf der Registerkarte Ziel die Option Ziel hinzufügen aus.
Füllen Sie die Abschnitte Zieltyp, Abonnement und Zieldetails mit Ihrer Collector-VM und den Details des zugehörigen Abonnements aus.
Nachdem Sie die richtigen VM ausgewählt haben, wird der Microsoft Monitoring Agent automatisch auf Ihrer VM installiert. Es dauert einige Minuten, bis Ihr virtueller Computer mit dem Arbeitsbereich verbunden und die Erweiterung installiert ist.
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.
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
Wählen Sie Speichern aus, geben Sie dann
ogQuery
für den Namen ein, belassen Sie Abfrage als Typ, geben SieVMLogs
als Kategorie ein, und wählen Sie dann Speichern aus.Wählen Sie Neue Warnungsregel aus.
Belassen Sie auf der Seite Regel erstellen den Eintrag
collectorworkspace
als Wert für Ressource.Wählen Sie unter Bedingung den Eintrag Whenever the customer log search is <loin undefined> aus. Die Seite Signallogik konfigurieren wird geöffnet.
Geben Sie unter Schwellenwert den Wert 0 ein, und wählen Sie dann Fertig aus.
Wählen Sie unter Aktionen die Option Aktionsgruppe erstellen aus. Die Seite Aktionsgruppe hinzufügen wird geöffnet.
Geben Sie in Name der Aktionsgruppe den Namen myActionGroup ein.
Geben Sie in Kurzname den Namen myActionGroup ein.
Wählen Sie unter Ressourcengruppe den Eintrag myResourceGroupAvailability aus.
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.
Wählen Sie E-Mail aus, geben Sie Ihre E-Mail-Adresse ein, und wählen Sie dann OK aus.
Wählen Sie auf der Seite Aktionsgruppe hinzufügen die Option OK aus.
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.
Klicken Sie abschließend auf Warnungsregel erstellen.
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.