Azure: Mit LogAnalytics aus VMs Logdateien anzapfen

In einem Projekt kam die Anforderung auf, sich Logdateien zentral anschauen und analysieren zu können. Ich habe mich daraufhin mit dem Thema LogAnalytics und der Anbindung von Applikationen gehostet in VMs beschäftigt. Was in der Kombination LogAnalytics und VMs ganz gut geht ist die Auswertung von Einträgen aus dem EventLog. Sind die Infos in LogAnalytics vorhanden, kann man mit einer eigenen Filtersyntax Abfragen auf die EventLogeinträge schreiben, die Ergebnisse verschiedenst visualisieren und sich mit Triggern über Alert Rules benachrichtigen lassen. Die Analyse von Log-Dateien geht auch, ist aber im Moment nicht so einfach einzustellen, da Custom Logs (so der Name der Logdateianalyse) noch ein Preview-Feature ist. Ich möchte mit meinem Beitrag die Einrichtung und erste Schritte zeigen, damit Ihr nicht so viele Einstiegsschwierigkeiten habt wie ich.

Grundlage in Azure ist eine Ressource vom Typ LogAnalytics und eine einfache Windows VM. Das Anlegen und die Einrichtung zeige ich hier nicht. Ich gehe davon aus, beides ist bei Euch schon für EventLoganalyse vorhanden.

Ist alles vorhanden, muss man zum Aktivieren von CustomLogs auf die LogAnalytics Ressource gehen und dort in das neue OMS Portal wechseln:

1_LogAnalyticsVMMitLogdatei

In den Settings im OMS Portal (oben rechts das Rädchen anklicken) kann man im Bereich Preview Features den Haken für Custom Logs Enabled setzen.

2_LogAnalyticsVMMitLogdatei

Erst danach (das hat echt gedauert, das raus zu finden), kann man zurück in der OMS Ressource unter Advanced Settings im Bereich Data/Custom Logs über den jetzt sichtbaren „Add+“ Button ein Custom Log hinzufügen. Vorher war der Button einfach nicht sichtbar!!!

3_LogAnalyticsVMMitLogdatei

Klickt man auf „Add+“, kann man in 4 Schritten eine eigene Data Source für Log-Dateien hinzufügen.

1. Beispiel Logdatei hochladen

4_LogAnalyticsVMMitLogdatei

2. Zeilenbegrenzer auswählen. Kann entweder nur eine neue Zeile sein oder man filtert auf ein bestimmtes Timestamp Format mit der zweiten Option.

5_LogAnalyticsVMMitLogdatei

3. Verzeichnis bzw. Verzeichnisse auf den VMs angeben, in denen die Log Dateien liegen (Pfad und Filter eintragen und mit + zum Custom Log hinzufügen)

6_LogAnalyticsVMMitLogdatei

4. Namen für das Custom Log im OMS definieren. Dieser Name ist auch gleichzeitig der Name einer Tabelle im OMS, in der die Log-Informationen vom VM Machine Agent abgelegt werden.

7_LogAnalyticsVMMitLogdatei

In meinem Beispiel habe ich das Custom Log „C_temp_logs_CL“ auf einer Management VM angelegt. Als Verzeichnis habe ich in LogAnalytics „C:\Temp“ angegeben und zur Filterung „Log*.txt“ verwendet. Screenshot vom der VM und manuell eingetragenen Logzeilen:

8_LogAnalyticsVMMitLogdatei

Möchte man in die Informationen reinschauen, geht man in LogAnalytics auf „Log Search“ und kann dort im Query Feld einfach nur den Namen der Data Source angeben, um zu sehen, was dort an Informationen enthalten sind. In der Listenansicht unterhalb des Query Feldes seht ihr dann den Zeitpunkt, wann der Maschine Agent die Informationen geholt hat, von welchem Computer und was die enthaltenen Rohdaten sind.

9_LogAnalyticsVMMitLogdatei

Diese Rohdaten kann man mit Hilfe von Custom Fields weiter aufdröseln. Dazu muss man in der Tabellenansicht auf die drei Punkte links neben RawData klicken und dort Extract Fields auswählen. Im Custom Fields Editor kann man nun durch Markierung des Textes die Position bestimmen und dem neuen Feld bzw. der neuen Spalte in der Custom Logs LogAnalytics Tabelle einen Namen geben.

10_LogAnalyticsVMMitLogdatei

Beim Klick auf Extract wird gleich eine Ergebnisansicht dargestellt.

11_LogAnalyticsVMMitLogdatei

Jetzt kann man mit dem neuen Feld arbeiten. In der Tabellenansicht ist das neue Feld da, aber ohne Inhalt. Hier weiß ich immer nicht, ob ich einen Fehler gemacht habe oder ob es einfach nur dauert bis dort Daten drin stehen oder ob es ab jetzt nur für neue Einträge gilt. Tabellenansicht:

12_LogAnalyticsVMMitLogdatei

Chartansicht:

13_LogAnalyticsVMMitLogdatei

Ich habe mal von Hand weiter Einträge in der Log-Datei gemacht. Hier muss man aufpassen, wann man speichert, denn man sollte die Zeiten vorne nicht ändern. Das macht eine Software aber auch nicht.

14_LogAnalyticsVMMitLogdatei

Die neuen Einträge erscheinen dann auch in LogAnalytics. Das Custom Field wird wohl nur gefüllt, wenn neue Einträge verarbeitet werden. Hier ist die Spalte ApiSeverity_CF leer. In der Grafik links kann man filtern und sich den Verlauf anschauen.

15_LogAnalyticsVMMitLogdatei

Über den Menüpunkt „Export“ kann man sich die Ergebnisse als Excel runterladen, also quasi die Daten der Tabellenansicht. Geliefert wird dann: „TenantId,SourceSystem,MG,ManagementGroupName,TimeGenerated,Computer,RawData,“ApiSeverity_CF“,Type“.  Durch meine Experimente und das Ändern von Zeiten ist der Inhalt nicht ganz sauber.

Auf der VM ist der zuständige Service der „Microsoft Monitoring Agent“. Der stellt die Verbindung zu LogAnalytics her.

16_LogAnalyticsVMMitLogdatei

Der Service ist sehr mächtig. Ich habe nur an der Oberfläche gekratzt, aber ich denke mit entsprechenden Filtern, Alerts und Ansichten kann man hier gut einen Überblick über sein System bekommen.

Man muss sich aber mit dem Tool beschäftigen!

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s