Freigeben über


Erstellen einer Transformation in Azure Monitor

Mit Transformationen in Azure Monitor können Sie eingehende Daten filtern oder modifizieren, bevor sie in einem Log Analytics-Arbeitsbereich gespeichert werden. Sie werden als KQL-Anweisung (Kusto Query Language, Kusto-Abfragesprache) in einer Datensammlungsregel (Data Collection Rule, DCR) implementiert. Dieser Artikel enthält Anleitungen zum Erstellen und Testen einer Transformationsabfrage und zu ihrem Hinzufügen zu einer DCR.

Hinweis

Wenn Sie mit KQL nicht vertraut sind oder Protokollabfragen für Azure Monitor-Daten erstellen, beginnen Sie mit der Übersicht über Log Analytics in Azure Monitor und Protokollabfragen in Azure Monitor.

Grundlegende Abfragestruktur

Alle Transformationsabfragen beginnen mit source, einer virtuellen Tabelle, die den Eingabestream darstellt. Anschließend können Sie alle unterstützten KQL-Operatoren zum Filtern, Ändern oder Hinzufügen von Spalten zu den Daten wie bei jeder anderen Tabelle verwenden. Die Abfrage wird einzeln auf jeden von der Datenquelle gesendeten Eintrag angewendet.

Die Ausgabe der Abfrage muss mit dem Schema der Zieltabelle mit den folgenden Überlegungen übereinstimmen:

  • Sie können Spalten weglassen, die nicht aufgefüllt werden sollen. Die Spalte ist für den Datensatz in der Zieltabelle leer.
  • Stellen Sie sicher, dass Sie alle Spalten ausschließen, die nicht in der Ausgabetabelle enthalten sind. Die Daten werden ohne Fehler akzeptiert, aber die Erfassung der zusätzlichen Daten wird Ihnen in Rechnung gestellt, obwohl sie nicht gespeichert werden.
  • Die Ausgabe jeder Transformation muss einen gültigen Zeitstempel in einer Spalte mit dem Namen TimeGenerated vom Typ datetimeenthalten. Wenn Ihre Datenquelle diese Eigenschaft nicht enthält, können Sie sie in der Transformation mit extend oder project hinzufügen.

Nachfolgend sehen Sie ein Beispiel für eine Transformation, die mehrere Funktionen erfüllt:

  • Filtert die eingehenden Daten mit einer where-Anweisung
  • Fügt mithilfe des extend-Operators eine neue Spalte hinzu
  • Formatiert die Ausgabe mithilfe des project-Operators, sodass sie mit den Spalten der Zieltabelle übereinstimmt
source  
| where severity == "Critical" 
| extend Properties = parse_json(properties)
| project
    TimeGenerated = todatetime(["time"]),
    Category = category,
    StatusDescription = StatusDescription,
    EventName = name,
    EventId = tostring(Properties.EventId)

Hinweis

Beispiele und Szenarien für Datensammlungsregeln (Data Collection Rule, DCR) finden Sie in Azure Monitor mit verschiedenen Beispielen für unterschiedliche Szenarien.

Erstellen der Transformationsabfrage

Bevor Sie den DCR erstellen oder bearbeiten, der Ihre Transformation enthält, müssen Sie die Transformationsabfrage erstellen und testen. Dazu führen Sie in der Regel Testabfragen für vorhandene Daten oder Testdaten aus. Wenn Sie die gewünschten Ergebnisse erhalten, können Sie den Tabellennamen durch source ersetzen und ihn in Ihre DCR einfügen, wie unten in Transformation zu DCR hinzufügen erläutert.

Wichtig

Transformationen unterstützen nicht alle KQL-Features. Siehe unterstützte KQL-Features in Azure Monitor-Transformationen für unterstützte Features und Einschränkungen.

Wenn Sie beispielsweise eine Transformation zum Filtern von Syslog-Ereignissen erstellen, können Sie mit der folgenden Abfrage beginnen, die Sie in Log Analytics ausführen können.

Syslog | where SeverityLevel != 'info'

Sie können diese Abfrage in Ihren DCR einfügen und dann den Tabellennamen durch source ersetzen.

source | where SeverityLevel != 'info'

Verwenden Sie eine der folgenden Strategien für Daten, um Ihre Abfrage zu testen.

  • Wenn Sie bereits die Daten sammeln, die Sie transformieren möchten, können Sie Log Analytics verwenden, um eine Abfrage zu schreiben, welche die Daten nach Bedarf filtert oder ändert. Kopieren Sie den Abfragetext und fügen Sie ihn in Ihre DCR ein.
  • Verwenden Sie Log Analytics, um Ihre Abfrage mithilfe des datatable-Operators zu schreiben, um einen Beispieldatensatz zu erstellen, der Ihre eingehenden Daten darstellt. Kopieren Sie den Abfragetext ohne den datatable-Operator und fügen Sie ihn in Ihre DCR ein.
  • Verwenden Sie den Prozess, um eine neue Tabelle im Azure-Portal zu erstellen und Beispieldaten bereitzustellen. Verwenden Sie die enthaltene Schnittstelle, um Ihre Transformationsabfrage zu erstellen und zu testen. Kopieren Sie entweder den Abfragetext, fügen Sie ihn in Ihren DCR ein, oder schließen Sie den Vorgang ab, und bearbeiten Sie dann den DCR, um die Transformationsabfrage zu kopieren. Sie können die neue Tabelle dann löschen, wenn Sie sie nicht benötigen.

Hinzufügen einer Transformation zu der DCR

Sobald Sie ihre Transformationsabfrage haben, können Sie sie einer DCR hinzufügen. Verwenden Sie die Anleitungen zum Erstellen und Bearbeiten von Datensammlungsregeln (Data Collection Rules, DCRs) in Azure Monitor, um die DCR mithilfe der Informationen in diesem Abschnitt zu erstellen oder zu bearbeiten, um die Transformationsabfrage in die DCR-Definition einzubinden.

Hinweis

Einige Datenquellen stellen eine Methode mithilfe des Azure-Portals bereit, um eine Transformation zu einer DCR hinzuzufügen. Beispielsweise können Sie beim Erfassen eines Texts aus einem virtuellen Computer eine Transformationsabfrage im Azure-Portal angeben. Für die meisten Datensammlungsszenarien müssen Sie derzeit jedoch direkt mit der DCR-Definition arbeiten, um eine Transformation hinzuzufügen. Das ist der in diesem Abschnitt beschriebene Prozess.

Die Transformationsabfrage wird in der transformKql-Eigenschaft im Datenflussabschnitt der DCR angegeben. Dies ist der Abschnitt, der eine Datenquelle mit einem Ziel kombiniert. Die Transformation wird auf den eingehenden Datenstrom des Datenflusses angewendet, bevor er an das Ziel gesendet wird. Er gilt nur für diesen Datenfluss, auch wenn derselbe Datenstrom oder dasselbe Ziel in anderen Datenflüssen verwendet wird.

Wenn die transformKql-Eigenschaft ausgelassen wird oder der Wert einfach source ist, wird keine Transformation angewendet und die eingehenden Daten werden ohne Änderung an das Ziel gesendet.

Wichtig

Die Transformationsabfrage muss sich in einer einzelnen Zeile der DCR befinden. Wenn Sie die Transformation im Azure-Portal erstellen, können Sie mehrere Zeilen zur Lesbarkeit verwenden, und \n wird in die Abfrage für jede neue Zeile einbezogen.

Im folgenden Beispiel gibt es keine transformKql-Eigenschaft, sodass die eingehenden Daten ohne Änderung an das Ziel gesendet werden.

"dataFlows": [ 
    { 
        "streams": [ 
        "Microsoft-Syslog" 
        ], 
        "destinations": [ 
        "centralWorkspace" 
        ] 
    } 
] 

Im folgenden Beispiel hat transformKql eine einfache Abfrage von source, sodass die eingehenden Daten ohne Änderung an das Ziel gesendet werden. Die Funktionalität ist mit dem vorherigen Beispiel identisch.

"dataFlows": [ 
    { 
        "streams": [ 
        "Microsoft-Syslog" 
        ], 
        "transformKql": "source", 
        "destinations": [ 
        "centralWorkspace" 
        ] 
    } 
] 

Im folgenden Beispiel enthält transformKql eine Abfrage, die Daten filtert, sodass nur Fehlermeldungen an das Ziel gesendet werden.

"dataFlows": [ 
    { 
        "streams": [ 
        "Microsoft-Syslog" 
        ], 
        "transformKql": "source | where message has 'error'", 
        "destinations": [ 
        "centralWorkspace" 
        ] 
    } 
] 

Erstellen einer Arbeitsbereichstransformations-DCR

Die Datensammlungsregel (DCR) für die Arbeitsbereichstransformation ist eine spezielle DCR, die direkt auf einen Log Analytics-Arbeitsbereich angewendet wird. Für jeden Arbeitsbereich kann nur eine Arbeitsbereichstransformations-DCR vorhanden sein. Diese kann jedoch Transformationen für eine beliebige Anzahl von Tabellen enthalten.

Verwenden Sie eine der folgenden Methoden, um eine Arbeitsbereichstransformations-DCR für Ihren Arbeitsbereich zu erstellen und eine oder mehrere Transformationen hinzuzufügen.

Sie können eine Arbeitsbereichstransformations-DCR im Azure-Portal erstellen, indem Sie eine Transformation zu einer unterstützten Tabelle hinzufügen.

  1. Wählen Sie im Azure-Portal im Menü Log Analytics-Arbeitsbereiche die Option Tabellen aus. Klicken Sie rechts neben der Tabelle, an der Sie interessiert sind, und wählen Sie „Transformation erstellen“ aus.

    Screenshot der Option zum Erstellen einer Transformation für eine Tabelle im Azure-Portal.

  2. Wenn die Arbeitsbereichstransformations-DCR noch nicht für diesen Arbeitsbereich erstellt wurde, wählen Sie die Option aus, um eine zu erstellen. Wenn sie bereits erstellt wurde, ist diese DCR bereits ausgewählt. Für jeden Arbeitsbereich kann nur eine Arbeitsbereichstransformations-DCR vorhanden sein.

    Screenshot: Erstellen einer neuen Datenerfassungsregel

  3. Wählen Sie Weiter aus, um Beispieldaten aus der Tabelle anzuzeigen. Klicken Sie auf Transformations-Editor, um die Transformationsabfrage zu definieren.

    Screenshot: Beispieldaten aus der Protokolltabelle

  4. Anschließend können Sie die Transformationsabfrage bearbeiten und ausführen, um die Ergebnisse anhand der tatsächlichen Daten aus der Tabelle anzuzeigen. Ändern Sie die Abfrage, und testen Sie sie, bis Sie die gewünschten Ergebnisse erhalten.

  5. Wenn Sie mit der Abfrage zufrieden sind, klicken Sie auf Anwenden und dann Weiter und Erstellen, um die DCR mit der neuen Transformation zu speichern.

    Screenshot: Speichern der Transformation

Optimieren und Überwachen von Transformationen

Transformationen führen eine KQL-Abfrage für jeden Datensatz aus, der mit der DCR gesammelt wird, daher ist es wichtig, dass sie effizient ausgeführt werden. Die Ausführungszeit der Transformation trägt zur Gesamtzeit der Datenerfassungslatenz bei, und Transformationen, die zu viel Zeit in Anspruch nehmen, können sich auf die Leistung der Datensammlungspipeline auswirken und zu Datenverlust führen. Optimale Transformationen sollten nicht mehr als 1 Sekunde dauern, um ausgeführt zu werden. Eine Anleitung zum Testen Ihrer Abfrage finden Sie unter Optimieren von Protokollabfragen in Azure Monitor, bevor Sie sie als Transformation implementieren und Empfehlungen zum Optimieren von Abfragen anzeigen, die nicht effizient ausgeführt werden.

Wichtig

Möglicherweise treten Datenverluste auf, wenn eine Transformation mehr als 20 Sekunden dauert.

Da Transformationen nicht interaktiv ausgeführt werden, ist es wichtig, sie kontinuierlich zu überwachen, um sicherzustellen, dass sie ordnungsgemäß ausgeführt werden und bei der Datenverarbeitung keine übermäßige Zeit in Anspruch nehmen. Weitere Informationen zu Protokollen und Metriken, welche die Integrität und Leistung von Transformationen überwachen, finden Sie unter Überwachen und Problembehandlung bei der DCR-Datensammlung in Azure Monitor. Dies umfasst das Identifizieren von Fehlern, die in der KQL auftreten, und Metriken, um ihre Ausführungsdauer nachzuverfolgen.

Die folgenden Metriken werden automatisch für Transformationen gesammelt und sollten regelmäßig überprüft werden, um sicherzustellen, dass Ihre Transformationen weiterhin wie erwartet ausgeführt werden. Erstellen Sie metrischen Warnungsregeln, die automatisch benachrichtigt werden sollen, wenn eine dieser Metriken einen Schwellenwert überschreitet.

  • Protokolltransformationsdauer pro Min
  • Protokolltransformationsfehler pro Min

Aktivieren Sie DCR-Fehlerprotokolle, um Fehler zu nachzuverfolgen, die in Ihren Transformationen oder anderen Abfragen auftreten. Erstellen Sie eine Protokollbenachrichtigungsregel, die automatisch benachrichtigt werden soll, wenn ein Eintrag in diese Tabelle geschrieben wird.

Leitfaden

Abhängig von der Datenerfassungsmethode gibt es mehrere Methoden zum Erstellen von Transformationen. In der folgenden Tabelle sind Anleitungen für verschiedene Methoden zum Erstellen von Transformationen aufgeführt.

Datensammlung Verweis
Protokollerfassungs-API Senden von Daten an Azure Monitor-Protokolle mithilfe der REST-API (Azure-Portal)
Tutorial: Senden von Daten an Azure Monitor-Protokolle mithilfe der REST-API (Azure Resource Manager-Vorlagen)
Virtueller Computer mit dem Azure Monitor-Agent Hinzufügen einer Transformation zum Azure Monitor-Protokoll
Kubernetes-Cluster mit Containererkenntnisse Datentransformationen in Container Insights
Azure Event Hubs Tutorial: Erfassen von Ereignissen aus Azure Event Hubs in Azure Monitor-Protokollen (Public Preview)

Nächste Schritte