Tutorial: Transformieren von Textprotokollen während der Erfassung in Azure Monitor-Protokolle

Transformationen zur Erfassungszeit bieten die Möglichkeit, eingehende Daten zu filtern oder zu ändern, bevor sie in einem Log Analytics-Arbeitsbereich gespeichert werden. In diesem Artikel wird erläutert, wie Sie eine KQL-Abfrage schreiben, die Textprotokolldaten transformiert, und die Transformation einer Datensammlungsregel hinzufügen.

Bei den hier beschriebenen Schritten wird davon ausgegangen, dass Sie bereits einige Daten aus einer Textdatei erfasst haben, wie unter Sammeln von Textprotokollen mit dem Azure Monitor-Agent beschrieben. In diesem Tutorial gehen Sie wie folgt vor:

  1. Schreiben Sie eine KQL-Abfrage, um erfasste Daten zu transformieren.
  2. Ändern Sie das Schema der Zieltabelle.
  3. Fügen Sie der Datensammlungsregel die Transformation hinzu.
  4. Vergewissern Sie sich, dass die Transformation ordnungsgemäß funktioniert.

Voraussetzungen

Um dieses Verfahren abschließen zu können, benötigen Sie Folgendes:

  • Log Analytics-Arbeitsbereich, in dem Sie mindestens über die Berechtigung „Mitwirkender“ verfügen.
  • Datensammlungsregel, Datensammlungsendpunkt und benutzerdefinierte Tabelle, wie unter Sammeln von Textprotokollen mit dem Azure Monitor-Agent beschrieben.
  • Virtueller Computer, VM-Skalierungsgruppe oder lokaler Server mit Arc-Unterstützung, der Protokolle in eine Textdatei schreibt. Anforderungen an die Textdatei:
    • Die Datei muss auf dem lokalen Laufwerk des Computers gespeichert sein, auf dem der Azure Monitor-Agent ausgeführt wird.
    • Sie muss Zeilenendezeichen enthalten.
    • Es muss die ASCII- oder UTF-8-Codierung verwendet werden. Andere Formate wie UTF-16 werden nicht unterstützt.
    • Sie darf weder die Umlaufprotokollierung noch die Protokollrotation, bei der die Datei mit neuen Einträgen überschrieben wird, noch Umbenennung zulassen, bei der eine Datei verschoben und eine neue Datei desselben Namens geöffnet wird.

Schreiben Sie eine KQL-Abfrage, um erfasste Daten zu transformieren.

  1. Zeigen Sie die Daten in der benutzerdefinierten Zieltabelle in Log Analytics an:

    1. Wählen Sie im Azure-Portal Log Analytics-Arbeitsbereiche> Ihren Log Analytics-Arbeitsbereich >Protokolle aus.
    2. Führen Sie eine Basisabfrage für die benutzerdefinierte Protokolltabelle aus, um die Tabellendaten anzuzeigen.
  2. Verwenden Sie das Abfragefenster, um eine Abfrage zu schreiben und zu testen, durch die die Rohdaten in Ihrer Tabelle transformiert werden.

    Informationen zu den KQL-Operatoren, die von Transformationen unterstützt werden, finden Sie unter Struktur von Transformationen in Azure Monitor.

    Hinweis

    Die einzigen Spalten, für die Transformationen angewandt werden können, sind TimeGenerated und RawData. Andere Spalten werden der Tabelle erst nach der Transformation automatisch hinzugefügt und sind zum Zeitpunkt der Transformation nicht verfügbar. Die Spalte „_ResourceId“ kann in der Transformation nicht verwendet werden.

    Beispiel

    Im Beispiel werden grundlegende KQL-Operatoren verwendet, um die Daten in der RawData-Spalte in den drei neuen Spalten Time Ingested, RecordNumber und RandomContent zu parsen:

    • Der extend-Operator fügt neue Spalten hinzu.
    • Der project-Operator formatiert die Ausgabe so, dass sie den Spalten des Zieltabellenschemas entspricht:
    MyTable_CL
    | extend d=todynamic(RawData)  
    | project TimeGenerated,TimeIngested=tostring(d.Time), 
    RecordNumber=tostring(d.RecordNumber), 
    RandomContent=tostring(d.RandomContent), 
    RawData 
    

    Hinweis

    Das Abfragen von Tabellendaten auf diese Weise ändert die Daten in der Tabelle nicht tatsächlich. Azure Monitor wendet die Transformation in der Datenerfassungspipeline an, nachdem Sie Ihre Transformationsabfrage der Datensammlungsregel hinzugefügt haben.

  3. Formatieren Sie die Abfrage als einzelne Zeile, und ersetzen Sie den Tabellennamen in der ersten Zeile der Abfrage durch das Wort source.

    Beispiel:

    source | extend d=todynamic(RawData) | project TimeGenerated,TimeIngested=tostring(d.Time),RecordNumber=tostring(d.RecordNumber), RandomContent=tostring(d.RandomContent), RawData 
    
  4. Kopieren Sie die formatierte Abfrage, damit Sie sie in die Konfiguration der Datensammlungsregel einfügen können.

Ändern der benutzerdefinierten Tabelle, um die neuen Spalten einzuschließen

Fügen Sie Spalten in Ihrer benutzerdefinierten Tabelle basierend auf Ihrer Transformationsabfrage hinzu oder löschen Sie diese.

Im oben aufgeführten Beispiel für eine Transformationsabfrage werden drei neue Spalten vom Typ string hinzugefügt:

  • TimeIngested
  • RecordNumber
  • RandomContent

Um diese Transformation zu unterstützen, fügen Sie Ihrer benutzerdefinierten Tabelle diese drei neuen Spalten hinzu.

Screenshot: Bereich „Schema-Editor“ mit den definierten Spalten „TimeIngested“, „RecordNumber“ und „RandomContent“

Anwenden der Transformation auf Ihre Datensammlungsregel

  1. Wählen Sie im Menü Überwachen die Option Datensammlungsregeln und dann Ihre Datensammlungsregel aus.

  2. Wählen Sie Datenquellen und dann Ihre Datenquelle aus.

  3. Fügen Sie die formatierte Transformationsabfrage auf der Registerkarte Datenquelle im Bildschirm Datenquelle hinzufügen in das Feld Transformieren ein.

  4. Wählen Sie Speichern aus.

    Screenshot: Bereich „Datenquellen hinzufügen“ mit hervorgehobenem Feld „Transformieren“

Überprüfen, ob die Transformation funktioniert

Zeigen Sie die Daten in der benutzerdefinierten Zieltabelle an, und überprüfen Sie, ob die Daten ordnungsgemäß in der geänderten Tabelle erfasst werden:

  1. Wählen Sie im Azure-Portal Log Analytics-Arbeitsbereiche> Ihren Log Analytics-Arbeitsbereich >Protokolle aus.
  2. Führen Sie eine Basisabfrage für die benutzerdefinierte Protokolltabelle aus, um die Tabellendaten anzuzeigen.

Nächste Schritte

Weitere Informationen: