Freigeben über


Beispieltransformationen in Azure Monitor

Transformationen in Azure Monitor ermöglichen es Ihnen, eingehende Daten zu filtern oder zu ändern, bevor sie an einen Log Analytics-Arbeitsbereich gesendet werden. Dieser Artikel enthält Beispielabfragen für häufige Anwendungsfälle, die Sie nutzen können, um mit der Erstellung Ihrer eigenen Transformation loszulegen. Weitere Informationen zum Testen dieser Transformationen und dem Hinzufügen zu einer Datensammlungsregel (DCR) finden Sie unter Erstellen einer Transformation in Azure Monitor.

Reduzieren der Datenkosten

Da Ihnen für alle Daten, die an einen Log Analytics-Arbeitsbereich gesendet werden, Erfassungskosten in Rechnung gestellt werden, möchten Sie alle Daten herausfiltern, die Sie nicht benötigen, um Ihre Kosten zu senken.

Filtern von Datenzeilen

Verwenden Sie eine where-Anweisung, um eingehende Daten zu filtern, die bestimmten Anforderungen entsprechen. Wenn der eingehende Datensatz die Anweisung nicht erfüllt, wird der Datensatz nicht an das Ziel gesendet. Im folgenden Beispiel werden nur Datensätze mit einem Schweregrad von Critical erfasst.

source | where severity == "Critical" 

Filtern von Datenspalten

Entfernen Sie Spalten aus der Datenquelle, die nicht erforderlich sind, um Kosten bei der Datenerfassung einzusparen. Verwenden Sie eine project-Anweisung, um die Spalten in der Ausgabe anzugeben, oder verwenden Sie project-away, um nur zu entfernende Spalten anzugeben. Im folgenden Beispiel wird die Spalte RawData aus der Ausgabe entfernt.

source | project-away RawData

Parsen wichtiger Daten einer Spalte

Möglicherweise haben Sie eine Spalte mit wichtigen Daten, die von übermäßigem Text überladen wird. Behalten Sie nur die wertvollen Daten, und entfernen Sie den nicht benötigten Text. Verwenden Sie Zeichenfolgenfunktionen wie substring und extract, um die gewünschten Daten zu parsen. Sie können die Daten auch mithilfe von parse oder split parsen, um eine einzelne Spalte in mehrere Werte aufzuteilen und die gewünschte zu markieren. Verwenden Sie dann extend, um eine neue Spalte mit den analysierten Daten zu erstellen und project-away, um die ursprüngliche Spalte zu entfernen.

Warnung

Tipps zur Verwendung komplexer Parse-Befehle finden Sie unter Aufteilen großer Parse-Befehle.

Im folgenden Beispiel enthält die Spalte RequestContext JSON mit dem Arbeitsbereich ResourceId. Die Funktionen parse_json und split werden verwendet, um den einfachen Namen des Arbeitsbereichs zu extrahieren. Für diesen Wert wird eine neue Spalte erstellt, und die anderen Spalten werden entfernt.

source
| extend Context = parse_json(RequestContext)
| extend Workspace_CF = tostring(Context['workspaces'][0])
| extend WorkspaceName_CF = split(Workspace_CF,"/")[8]
| project-away RequestContext, Context, Workspace_CF

Senden von Zeilen an Basisprotokolle

Senden Sie Zeilen in Ihren Daten, die grundlegende Abfragefunktionen erfordern, an Basisprotokolltabellen, um die Erfassungskosten zu senken. Details zum Senden von Daten an mehrere Tabellen finden Sie unter Senden von Daten an mehrere Tabellen.

Erstellen vertraulicher Daten

Möglicherweise haben Sie eine Datenquelle, die Informationen sendet, die Sie aus Datenschutz- oder Compliance-Gründen nicht speichern möchten.

Filtern vertraulicher Informationen

Verwenden Sie die unter Reduzieren von Datenkosten beschriebenen Strategien, um ganze Zeilen oder bestimmte Spalten, die vertrauliche Informationen enthalten, herauszufiltern. Im folgenden Beispiel wird die Spalte ClientIP aus der Ausgabe entfernt.

source | project-away ClientIP

Verschleiern sensibler Informationen

Verwenden Sie Zeichenfolgenfunktionen, um Informationen wie Ziffern in einer IP-Adresse oder Telefonnummern durch ein allgemeines Zeichen zu ersetzen. Im folgenden Beispiel wird der Benutzername in einer E-Mail-Adresse durch "*****" ersetzt.

source | extend Email = replace_string(Email,substring(Email,0,indexof(Email,"@")),"*****")

Senden an alternative Tabelle

Senden Sie vertrauliche Datensätze an eine alternative Tabelle mit einer anderen rollenbasierten Zugriffssteuerungskonfiguration (RBAC). Details zum Senden von Daten an mehrere Tabellen finden Sie unter Senden von Daten an mehrere Tabellen.

Daten anreichern

Verwenden Sie eine Umwandlung, um Informationen zu Daten hinzuzufügen, die den Geschäftskontext bereitstellen oder die spätere Abfrage der Daten vereinfachen. Verwenden Sie Zeichenfolgenfunktionen, um wichtige Informationen aus einer Spalte zu extrahieren. Verwenden Sie dann die extend-Anweisung, um der Datenquelle eine neue Spalte hinzuzufügen. Im folgenden Beispiel wird eine Spalte hinzugefügt, die angibt, ob eine IP-Adresse in einer anderen Spalte intern oder extern ist.

source | extend IpLocation = iff(split(ClientIp,".")[0] in ("10","192"), "Internal", "External")

Formatieren von Daten für das Ziel

Sie haben möglicherweise eine Datenquelle, die Daten in einem Format sendet, das nicht mit der Struktur der Zieltabelle übereinstimmt. Verwenden Sie eine Transformation, um die Daten in das gewünschte Schema umzuformatieren.

Ändern des Schemas

Verwenden Sie Befehle wie extend und project, um das Schema der eingehenden Daten so zu ändern, dass sie der Zieltabelle entsprechen. Im folgenden Beispiel wird eine neue Spalte namens TimeGenerated den ausgehenden Daten mithilfe einer KQL-Funktion hinzugefügt, um die aktuelle Zeit zurückzugeben.

source | extend TimeGenerated = now()

Parsen von Daten

Verwenden Sie den Operator split oder parse, um Daten in mehrere Spalten in der Zieltabelle zu parsen. Im folgenden Beispiel weisen die eingehenden Daten eine durch Trennzeichen getrennte Spalte mit dem Namen RawData auf, die in einzelne Spalten für die Zieltabelle aufgeteilt ist.

source 
| project d = split(RawData,",") 
| project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])

Warnung

Tipps zur Verwendung komplexer Parse-Befehle finden Sie unter Aufteilen großer Parse-Befehle.

Nächste Schritte