Tutorial: Ersetzen von benutzerdefinierten Feldern im Log Analytics-Arbeitsbereich mit KQL-basierten benutzerdefinierte Spalten
Benutzerdefinierte Felder sind ein Feature von Azure Monitor, mit dem Sie Daten aus einer anderen Textspalte derselben Tabelle in eine separate Spalte extrahieren können. Die Erstellung neuer benutzerdefinierter Felder wird ab dem 31. März 2023 deaktiviert. Die Funktionalität benutzerdefinierter Felder wird veraltet, und vorhandene benutzerdefinierte Felder funktionieren ab dem 31. März 2026 nicht mehr.
Die Verwendung DCR-basierter Erfassungszeittransformationen bietet mehrere Vorteile, um dasselbe Ergebnis zu erzielen:
- Sie können einen vollständigen Satz von Zeichenfolgenfunktionen anwenden, um Ihre benutzerdefinierten Spalten zu formen.
- Sie können mehrere Vorgänge auf dieselben Daten anwenden. Extrahieren Sie beispielsweise einen Teil eines Werts in eine separate Spalte, und entfernen Sie die ursprüngliche Spalte.
- Sie können Erfassungszeittransformationen in Ihren ARM-Vorlagen verwenden, um benutzerdefinierte Spalten im großen Stil bereitzustellen.
Mit der Einführung von Datensammlungsregeln (Data Collection Rules, DCR) sind KQL-basierte Transformationen die Standardmethode der Tabellenanpassung und ersetzen ältere benutzerdefinierte Felder.
In diesem Tutorial lernen Sie, wie die folgenden Aufgaben ausgeführt werden:
- Suchen nach benutzerdefinierten Feldern, die ersetzt werden müssen
- Verstehen des Inhalts der benutzerdefinierten Felder
- Einrichten der Erfassungszeittransformation zum Ersetzen benutzerdefinierter Felder innerhalb der Tabelle
Voraussetzungen
- Log Analytics-Arbeitsbereich mit einer Tabelle, die benutzerdefinierte Felder enthält
- Ausreichende Kontoberechtigungen zum Erstellen und Ändern von Datensammlungsregeln (Data Collection Rules, DCRs)
Suchen nach benutzerdefinierten Feldern zum Ersetzen
Suchen Sie zunächst nach benutzerdefinierten Feldern, die ersetzt werden sollen. Wenn Sie die benutzerdefinierten Felder bereits kennen, die Sie ersetzen wollen, fahren Sie mit dem nächsten Schritt fort.
Navigieren Sie zum Log Analytics-Arbeitsbereich, in dem sich die Tabelle mit benutzerdefinierten Feldern befindet.
Wählen Sie im Seitenmenü Tabellen aus. Wählen Sie im Kontextmenü für die Tabelle die Option Tabelle verwalten aus.
Beachten Sie, ob der angegebenen Tabelle Datensammlungsregeln (Data Collection Rules, DCRs) zugeordnet sind.
- Wenn DCRs im entsprechenden Abschnitt vorhanden sind, bedeutet dies, dass alle bereits vorhandenen benutzerdefinierten Felder entweder bereits innerhalb dieser DCRs implementiert oder bei der DCR-Erstellung aufgegeben wurden. Sie werden den Inhalt benutzerdefinierter Felder im nächsten Schritt dieses Tutorials untersuchen und ermitteln, ob weitere Aktualisierungen für DCRs erforderlich sind.
- Wenn der Tabelle keine Datensammlungsregeln zugeordnet sind, werden alle Spalten in der angegebenen Tabelle, deren Namen auf „_CF“ enden, benutzerdefinierte Felder sein, die ersetzt werden müssen.
Schließen Sie das Dialogfeld „Tabelleneigenschaften“, und wählen Sie im Tabellenkontextmenü Schema bearbeiten aus. Scrollen Sie zum Ende der Seite, auf der benutzerdefinierte Spalten aufgeführt sind. Diese Spalten enden mit _CF.
Notieren Sie sich die Namen dieser Spalten, da Sie deren Inhalt im nächsten Schritt ermitteln.
Verstehen des Inhalts benutzerdefinierter Felder
Da es keine Möglichkeit gibt, die Definition benutzerdefinierter Felder direkt zu untersuchen, müssen Sie die Tabelle abfragen, um die Formel für die benutzerdefinierten Felder zu bestimmen.
Wählen Sie im Seitenmenü Protokolle aus, und führen Sie eine Abfrage aus, um eine Stichprobe von Daten aus der Tabelle zu erhalten.
Suchen Sie die im vorherigen Schritt notierten Spalten, und untersuchen Sie deren Inhalt.
- Wenn die Spalte nicht leer ist und der Tabelle DCRs zugeordnet sind, wurde die Logik der benutzerdefinierten Felder bereits mit der Transformation implementiert. Es ist keine Aktion erforderlich
- Wenn die Spalte leer ist (oder in Abfrageergebnissen nicht vorhanden ist) und der Tabelle DCRs zugeordnet sind, wurde die Logik der benutzerdefinierten Felder nicht mit der DCR implementiert. Fügen Sie dem Dataflow in der vorhandenen DCR eine Transformation hinzu.
- Wenn die Spalte nicht leer ist und der Tabelle keine DCRs zugeordnet sind, muss die Logik der benutzerdefinierten Felder als Transformation in der Arbeitsbereichs-DCR implementiert werden.
Untersuchen Sie den Inhalt des benutzerdefinierten Felds, und bestimmen Sie die Logik, wie es berechnet wird. Benutzerdefinierte Felder berechnen in der Regel Teilzeichenfolgen anderer Spalten in derselben Tabelle. Stellen Sie fest, aus welcher Spalte die Daten stammen, und den Teil der Zeichenfolge, die extrahiert wird.
Erstellen einer Transformation
Sie sind jetzt bereit, den erforderlichen KQL-Codeschnipsel zu erstellen und einer DCR hinzufügen. Diese Logik wird auf jeden Datensatz angewendet, wenn er im Arbeitsbereich erfasst wird.
Ändern Sie die Abfrage für die Tabelle mithilfe von KQL, um die Logik benutzerdefinierter Felder zu replizieren. Wenn Sie mehrere benutzerdefinierte Felder ersetzen müssen, können Sie deren Berechnungslogik in einer einzelnen Anweisung kombinieren.
- Verwenden Sie den Parsen.-Operator für die auf Mustern basierte Suche einer Teilzeichenfolge innerhalb einer Zeichenfolge.
- Verwenden Sie die Funktion extract() für die RegEx-basierte Teilzeichenfolgesuche.
- Zeichenfolgenfunktionen wie split(), substring() und viele andere können ebenfalls nützlich sein.
Bestimmen Sie, wo Ihre neue KQL-Definition der benutzerdefinierten Spalte platziert werden muss.
- Für Protokolle, die mit dem Azure Monitor-Agent (AMA) gesammelt wurden, bearbeiten Sie die DCR, die Daten für die Tabelle sammelt, und fügen Sie eine Transformation hinzu. Ein Beispiel finden Sie unter Bewährte Methoden und Beispiele für Transformationen in Azure Monitor. Die Transformationsabfrage ist im
transformKql
-Element definiert. - Für Ressourcenprotokolle, die mit Diagnoseeinstellungen gesammelt werden, fügen Sie die Transformation der Standard-DCR des Arbeitsbereichs hinzu. Die Tabelle muss Transformationen unterstützen.
- Für Protokolle, die mit dem Azure Monitor-Agent (AMA) gesammelt wurden, bearbeiten Sie die DCR, die Daten für die Tabelle sammelt, und fügen Sie eine Transformation hinzu. Ein Beispiel finden Sie unter Bewährte Methoden und Beispiele für Transformationen in Azure Monitor. Die Transformationsabfrage ist im
Häufig gestellte Fragen
Wie migriere ich benutzerdefinierte Felder für ein Textprotokoll, das mit dem Legacy-Log Analytics-Agent (MMA) gesammelt wurde?
Erwägen Sie die Migration zum Azure Monitor-Agent (AMA). Der Log Analytics-Agent nähert sich dem Ende des Supports, und Sie sollten zum Azure Monitor-Agent (AMA) migrieren. Textprotokolle, die mit AMA gesammelt werden, verwenden Protokollanalyselogik, die von Anfang an in Form von KQL-Transformationen definiert wurde. Benutzerdefinierte Felder sind nicht erforderlich und sind in Textprotokollen, die vom Azure Monitor-Agent erfasst werden, nicht unterstützt.
Ist die Migration von benutzerdefinierten Feldern zu KQL obligatorisch?
Nein, Sie müssen Ihre benutzerdefinierten Felder nur migrieren, wenn Sie wollen, dass Ihre benutzerdefinierten Spalten weiterhin aufgefüllt werden. Wenn Sie Ihre benutzerdefinierten Felder nicht migrieren, werden die entsprechenden Spalten nicht mehr aufgefüllt, wenn die Unterstützung benutzerdefinierter Felder beendet wird. Daten, die bereits verarbeitet und in der Tabelle gespeichert wurden, werden nicht betroffen sein und können weiterhin verwendet werden.
Werde ich meine vorhandenen Daten in den entsprechenden Spalten verlieren, wenn ich meine benutzerdefinierten Felder nicht rechtzeitig migrieren?
Nein, benutzerdefinierte Felder werden zum Zeitpunkt der Datenerfassung berechnet. Wenn Sie die Felddefinition löschen oder nicht rechtzeitig migrieren, hat dies keine Auswirkungen auf die zuvor erfassten Daten.