Sammeln von Textprotokollen mit dem Log Analytics-Agent in Azure Monitor

Mithilfe der Datenquelle „Benutzerdefinierte Protokolle“ für den Log Analytics-Agent in Azure Monitor können Ereignisse aus Textdateien auf Windows- und Linux-Computern erfasst werden. Viele Anwendungen protokollieren Informationen nicht in standardmäßigen Protokollierungsdiensten wie Windows-Ereignisprotokoll oder Syslog, sondern in Textdateien. Nachdem die Daten gesammelt wurden, können Sie sie entweder in Ihren Abfragen in einzelne Felder parsen oder sie während der Sammlung in einzelne Felder extrahieren.

Wichtig

In diesem Artikel wird beschrieben, wie Sie mit dem Log Analytics-Agent ein Textprotokoll erfassen. Wenn Sie den Azure Monitor-Agent verwenden, finden Sie weitere Informationen unter Sammeln von Textprotokollen mit dem Azure Monitor-Agent.

Wichtig

Der bisherige Protokollanalyse-Agentwird ab August 2024 veraltet sein. Nach diesem Datum bietet Microsoft keine Unterstützung mehr für den Log Analytics-Agent. Migrieren Sie vor August 2024 zum Azure Monitor-Agent, um weiterhin Daten erfassen zu können.

Diagram that shows custom log collection.

Die zu sammelnden Protokolldateien müssen folgende Kriterien erfüllen:

  • Das Protokoll muss entweder pro Zeile einen einzelnen Eintrag enthalten, oder die Einträge müssen jeweils mit einem Zeitstempel in einem der folgenden Formate beginnen:

    JJJJ-MM-TT HH:MM:SS
    M/T/JJJJ HH:MM:SS AM/PM
    Mon TT, JJJJ HH:MM:SS
    jjMMtt HH:mm:ss
    ttMMjj HH:mm:ss
    MMM t hh:mm:ss
    tt/MMM/jjjj:HH:mm:ss zzz
    jjjj-MM-ttTHH:mm:ssK

  • Die Protokolldatei darf keine Umlaufprotokollierung zulassen. Dieses Verhalten sieht eine Protokollrotation vor, bei der die Datei mit neuen Einträgen überschrieben wird. Alternativ wird die Datei umbenannt, und der gleiche Dateiname wird zum Fortsetzen der Protokollierung wiederverwendet.

  • Die Protokolldatei muss ASCII- oder UTF-8-Codierung verwenden. Andere Formate wie UTF-16 werden nicht unterstützt.

  • Für Linux wird die Zeitzonenkonvertierung für Zeitstempel in den Protokollen nicht unterstützt.

  • Als bewährte Methode sollte die Protokolldatei Datum und Uhrzeit der Erstellung enthalten, um zu verhindern, dass sie durch Protokollrotation überschrieben oder umbenannt wird.

Hinweis

Azure Monitor erfasst doppelte Einträge in der Protokolldatei. Die generierten Abfrageergebnisse sind inkonsistent. Die Filterergebnisse enthalten mehr Ereignisse als die Anzahl der Ergebnisse. Sie müssen das Protokoll überprüfen, um festzustellen, ob die Anwendung, die es erstellt, dieses Verhalten verursacht. Beheben Sie das Problem nach Möglichkeit, ehe Sie die Definition der benutzerdefinierten Protokollsammlung erstellen.

Für einen Log Analytics-Arbeitsbereich gelten die folgenden Einschränkungen:

  • Es können nur 500 benutzerdefinierte Protokolle erstellt werden.
  • Eine Tabelle unterstützt nur maximal 500 Spalten.
  • Die maximale Anzahl von Zeichen für den Spaltennamen ist 500.

Wichtig

Die benutzerdefinierte Protokollsammlung erfordert, dass die Anwendung, die die Protokolldatei schreibt, den Protokollinhalt regelmäßig auf den Datenträger leert. Der Grund dafür ist, dass die benutzerdefinierte Protokollsammlung darauf basiert, dass Benachrichtigungen über Änderungen am Dateisystem für die Protokolldatei nachverfolgt werden.

Definieren einer benutzerdefinierten Protokolltabelle

Gehen Sie zum Definieren einer benutzerdefinierten Protokolltabelle wie folgt vor. Am Ende dieses Artikels finden Sie eine exemplarische Vorgehensweise für das Hinzufügen eines benutzerdefinierten Protokolls.

Öffnen des Assistenten für benutzerdefinierte Protokolle

Mit dem im Azure-Portal ausgeführten Assistenten für benutzerdefinierte Protokolle können Sie ein neues benutzerdefiniertes Protokoll für die Sammlung definieren.

  1. Wählen Sie im Azure-Portal Log Analytics-Arbeitsbereiche> Ihr Arbeitsbereich >Tabellen aus.

  2. Wählen Sie Erstellen und dann Neues benutzerdefiniertes Protokoll (MMA-basiert) aus.

    Standardmäßig werden alle Konfigurationsänderungen automatisch per Push an alle Agents weitergegeben. Bei Linux-Agents wird eine Konfigurationsdatei an den Fluentd-Datensammler gesendet.

Hochladen und Analysieren eines Beispielprotokolls

Laden Sie als Erstes ein Beispiel des benutzerdefinierten Protokolls hoch. Der Assistent überprüft die Einträge in dieser Datei und zeigt sie zur Überprüfung an. Azure Monitor verwendet bei der Identifizierung der einzelnen Datensätze das von Ihnen angegebene Trennzeichen.

Das Standardtrennzeichen Neue Zeile wird für Protokolldateien verwendet, die pro Zeile jeweils einen einzelnen Eintrag enthalten. Falls die Zeile mit einer Datums- und Uhrzeitangabe in einem kompatiblen Format beginnt, können Sie als Trennzeichen einen Zeitstempel angeben. Diese Option unterstützt Einträge, die sich über mehrere Zeilen erstrecken.

Bei Verwendung eines Zeitstempels als Trennzeichen wird die TimeGenerated-Eigenschaft der einzelnen, in Azure Monitor gespeicherten Datensätze in der Protokolldatei mit der Datums-/Uhrzeitangabe des jeweiligen Eintrags aufgefüllt. Bei Verwendung eines Trennzeichens des Typs „Neue Zeile“ wird die TimeGenerated-Eigenschaft mit dem Zeitpunkt (Datum und Uhrzeit) aufgefüllt, zu dem Azure Monitor den Eintrag gesammelt hat.

  1. Wählen Sie Durchsuchen aus, und navigieren Sie zu einer Beispieldatei. In einigen Browsern ist diese Schaltfläche u. U. mit Datei auswählen beschriftet.

  2. Klicken Sie auf Weiter.

    Der Assistent für benutzerdefinierte Protokolle lädt die Datei hoch und führt die ermittelten Datensätze auf.

  3. Ändern Sie das Trennzeichen, das zum Identifizieren eines neuen Datensatzes verwendet wird. Wählen Sie das Trennzeichen aus, das die Datensätze in Ihrer Protokolldatei am besten identifiziert.

  4. Klicken Sie auf Weiter.

Hinzufügen von Protokollsammlungspfaden

Definieren Sie für den Agent mindestens einen Pfad, an dem sich das benutzerdefinierte Protokoll befindet. Sie können entweder einen bestimmten Pfad und Namen für die Protokolldatei angeben oder einen Pfad mit einem Platzhalter für den Namen verwenden. Dadurch werden Anwendungen unterstützt, die täglich oder bei Erreichen einer bestimmten Dateigröße eine neue Datei erstellen. Sie können auch mehrere Pfade für eine einzelne Protokolldatei angeben.

Ein Beispiel: Angenommen, eine Anwendung erstellt jeden Tag eine Protokolldatei, und das Datum ist jeweils Teil des Dateinamens (etwa „log20100316.txt“). Ein Muster für ein solches Protokoll ist beispielsweise log*.txt, das für jede Protokolldatei gilt, die das Namensschema der Anwendung befolgt.

Die folgende Tabelle enthält Musterbeispiele für die Angabe verschiedener Protokolldateien:

BESCHREIBUNG `Path`
Alle Dateien im Windows-Agent im Verzeichnis C:\Logs mit der Erweiterung „.txt“ C:\Logs\*.txt
Alle Dateien im Windows-Agent im Verzeichnis C:\Logs mit einem Namen, der mit „log“ beginnt und die Erweiterung „.txt“ hat C:\Logs\log*.txt
Alle Dateien im Linux-Agent im Verzeichnis /var/log/audit mit der Erweiterung „.txt“ /var/log/audit/*.txt
Alle Dateien im Linux-Agent im Verzeichnis /var/log/audit mit einem Namen, der mit „log“ beginnt und die Erweiterung „.txt“ hat /var/log/audit/log*.txt
  1. Wählen Sie „Windows“ oder „Linux“ aus, um anzugeben, welches Pfadformat Sie hinzufügen.
  2. Geben Sie den Pfad ein, und wählen Sie die Schaltfläche + aus.
  3. Wiederholen Sie den Vorgang für weitere Pfade.

Angeben eines Namens und einer Beschreibung für das Protokoll

Der angegebene Name wird für den beschriebenen Protokolltyp verwendet. Er endet immer mit „_CL“, um ihn als benutzerdefiniertes Protokoll zu kennzeichnen.

  1. Geben Sie einen Namen für das Protokoll ein. Das Suffix _CL wird automatisch bereitgestellt.
  2. Geben Sie ggf. eine Beschreibung ein.
  3. Wählen Sie Weiter aus, um die Definition des benutzerdefiniertes Protokolls zu speichern.

Überprüfen, ob die benutzerdefinierten Protokolle gesammelt werden

Es kann bis zu einer Stunde dauern, bis die ersten Daten aus einem neuen benutzerdefinierten Protokoll in Azure Monitor angezeigt werden. Azure Monitor beginnt ab dem Zeitpunkt, an dem Sie das benutzerdefinierte Protokoll definiert haben, Einträge aus den Protokollen zu sammeln, die sich in dem von Ihnen angegebenen Pfad befinden. Die Einträge, die Sie bei der Erstellung des benutzerdefinierten Protokolls hochgeladen haben, werden nicht beibehalten. Die bereits vorhandenen Einträge in den gefundenen Protokolldateien werden gesammelt.

Nachdem Azure Monitor mit der Erfassung von Einträgen aus dem benutzerdefinierten Protokoll begonnen hat, stehen die entsprechenden Datensätze über eine Protokollabfrage zur Verfügung. Geben Sie in Ihrer Abfrage den Namen, mit dem Sie das benutzerdefinierte Protokoll benannt haben, als Typ an.

Hinweis

Wenn die RawData-Eigenschaft in der Abfrage nicht vorhanden sein sollte, müssen Sie u. U. Ihren Browser schließen und wieder öffnen.

Analysieren der Einträge des benutzerdefinierten Protokolls

Der gesamte Protokolleintrag wird in einer einzelnen Eigenschaft namens RawDatagespeichert. Wahrscheinlich möchten Sie die verschiedenen Einzelinformationen der jeweiligen Einträge auf einzelne Eigenschaften für jeden Datensatz aufteilen. Optionen zum Parsen von RawData in mehrere Eigenschaften finden Sie unter Parten von Textdaten in Azure Monitor.

Löschen einer benutzerdefinierten Protokolltabelle

Siehe Löschen einer Tabelle.

Datensammlung

Azure Monitor erfasst etwa alle fünf Minuten neue Einträge aus den einzelnen benutzerdefinierten Protokollen. Der Agent protokolliert für jede Protokolldatei, aus der er Daten sammelt, seine Position. Wenn der Agent für einen bestimmten Zeitraum offline geht, sammelt Azure Monitor Einträge ab dem Zeitpunkt der letzten Erfassung – unabhängig davon, ob die Einträge erstellt wurden, während der Agent offline war.

Sämtliche Inhalte des Protokolleintrags werden in eine einzelne Eigenschaft namens RawData geschrieben. Methoden zum Parsen der einzelnen importierten Protokolleinträge in mehrere Eigenschaften finden Sie unter Parsen von Textdaten in Azure Monitor.

Eigenschaften benutzerdefinierter Protokolldatensätze

Benutzerdefinierte Protokolldatensätze besitzen einen Typ mit dem von Ihnen angegebenen Protokollnamen sowie die Eigenschaften aus der folgenden Tabelle:

Eigenschaft BESCHREIBUNG
TimeGenerated Der Zeitpunkt (Datum und Uhrzeit), zu dem der Datensatz von Azure Monitor erfasst wurde. Wenn das Protokoll ein zeitbasiertes Trennzeichen verwendet, handelt es sich hierbei um die Zeitangabe aus dem Eintrag.
SourceSystem Die Art des Agents, auf dem das Ereignis gesammelt wurde.
OpsManager: Windows-Agent (Direktverbindung oder System Center Operations Manager)
Linux: Alle Linux-Agents
RawData Der vollständige Text des gesammelten Eintrags. Wahrscheinlich möchten Sie diese Daten in einzelne Eigenschaften parsen.
ManagementGroupName Name der Verwaltungsgruppe für System Center Operations Manager-Agents. Bei anderen Agents lautet dieser Name AOI-<Arbeitsbereich-ID>.

Exemplarische Vorgehensweise zum Hinzufügen eines benutzerdefinierten Protokolls

Der folgende Abschnitt enthält ein Beispiel für die Erstellung eines benutzerdefinierten Protokolls. Das Beispielprotokoll enthält in jeder Zeile einen einzelnen Eintrag, der jeweils mit einer Datums- und Uhrzeitangabe beginnt, gefolgt von durch Trennzeichen getrennten Feldern für Code, Status und Meldung. Mehrere Beispieleinträge werden gezeigt.

2019-08-27 01:34:36 207,Success,Client 05a26a97-272a-4bc9-8f64-269d154b0e39 connected
2019-08-27 01:33:33 208,Warning,Client ec53d95c-1c88-41ae-8174-92104212de5d disconnected
2019-08-27 01:35:44 209,Success,Transaction 10d65890-b003-48f8-9cfc-9c74b51189c8 succeeded
2019-08-27 01:38:22 302,Error,Application could not connect to database
2019-08-27 01:31:34 303,Error,Application lost connection to database

Hochladen und Analysieren eines Beispielprotokolls

Wir stellen eine der Protokolldateien bereit und sehen die Ereignisse, die gesammelt werden. In diesem Fall kann als Trennzeichen die Option Neue Zeile verwendet werden. Wenn sich allerdings im Protokoll ein einzelner Eintrag über mehrere Zeilen erstrecken kann, muss ein Trennzeichen des Typs „Zeitstempel“ verwendet werden.

Screenshot that shows uploading and parsing a sample log.

Hinzufügen von Protokollsammlungspfaden

Die Protokolldateien befinden sich im Verzeichnis C:\MyApp\Logs. Jeden Tag wird eine neue Datei erstellt, deren Name jeweils das Datum enthält. Dabei wird in das Muster appJJJJMMTT.log verwendet. Ein ausreichendes Muster für dieses Protokoll wäre C:\MyApp\Logs\*.log.

Screenshot that shows adding a log collection path.

Angeben eines Namens und einer Beschreibung für das Protokoll

Wir verwenden den Namen MyApp_CL und geben eine Beschreibung ein.

Screenshot that shows adding a log name.

Überprüfen, ob die benutzerdefinierten Protokolle gesammelt werden

Wir verwenden die einfache Abfrage MyApp_CL, um alle Datensätze aus dem gesammelten Protokoll zurückzugeben.

Screenshot that shows a log query with no custom fields.

Alternativen zu benutzerdefinierten Protokollen

Während benutzerdefinierte Protokolle nützlich sind, solange Ihre Daten den aufgeführten Kriterien entsprechen, gibt es Fälle, in denen Sie eine andere Strategie benötigen:

  • Die Daten weisen nicht die erforderliche Struktur auf, z. B. hat der Zeitstempel ein anderes Format.
  • Die Protokolldatei erfüllt nicht die Anforderungen, z.B. Dateicodierung oder eine nicht unterstützte Ordnerstruktur.
  • Die Daten müssen vor der Erfassung vorverarbeitet oder gefiltert werden.

In Fällen, in denen Ihre Daten nicht mit benutzerdefinierten Protokollen gesammelt werden können, gibt es die folgenden alternativen Strategien:

  • Verwenden Sie ein benutzerdefiniertes Skript oder eine andere Methode zum Schreiben von Daten in Windows-Ereignisse oder Syslog, die von Azure Monitor gesammelt werden.
  • Senden Sie die Daten mithilfe der HTTP-Datensammler-API direkt an Azure Monitor.

Nächste Schritte

  • Methoden zum Aufschlüsseln der einzelnen importierten Protokolleinträge in mehrere Eigenschaften finden Sie unter Parse text data in Log Analytics (Analysieren von Textdaten in Log Analytics).
  • Erfahren Sie mehr über Protokollabfragen zum Analysieren der aus Datenquellen und Lösungen gesammelten Daten.