Funktionen in Azure Monitor-Protokollabfragen

Eine Funktion ist eine Protokollabfrage in Azure Monitor, die in anderen Protokollabfragen verwendet werden kann, als wäre sie ein Befehl. Sie können Funktionen verwenden, um Lösungen für verschiedene Kunden bereitzustellen und Abfragelogik in Ihrer eigenen Umgebung wiederzuverwenden. Dieser Artikel beschreibt die Verwendung von Funktionen und die Erstellung eigener Funktionen.

Erforderliche Berechtigungen

  • Um Funktionen anzeigen oder verwenden zu können, müssen Sie über Microsoft.OperationalInsights/workspaces/query/*/read-Berechtigungen für den Log Analytics-Arbeitsbereich verfügen, wie sie z. B. von der integrierten Rolle „Leser“ in Log Analytics bereitgestellt werden.

  • Um Funktionen erstellen oder bearbeiten zu können, müssen Sie über microsoft.operationalinsights/workspaces/savedSearches/write-Berechtigungen für den Log Analytics-Arbeitsbereich verfügen, wie sie z. B. von der integrierten Rolle „Leser“ in Log Analytics bereitgestellt werden.

Funktionstypen

In Azure Monitor gibt es zwei Typen von Funktionen:

  • Lösungsfunktion: Vordefinierte Funktionen, die in Azure Monitor enthalten sind. Diese Funktionen sind in allen Log Analytics-Arbeitsbereichen verfügbar und können nicht geändert werden.
  • Arbeitsbereichsfunktionen: Diese Funktionen werden in einem bestimmten Log Analytics-Arbeitsbereich installiert. Sie können vom Benutzer geändert und gesteuert werden.

view-Funktionen

Sie können Lösungsfunktionen und Arbeitsbereichsfunktionen im aktuellen Arbeitsbereich auf der Registerkarte Funktionen im linken Bereich eines Log Analytics-Arbeitsbereichs anzeigen. Verwenden Sie Filter, um die in der Liste enthaltenen Funktionen zu filtern. Verwenden Sie Gruppieren nach, um die Gruppierung zu ändern. Geben Sie eine Zeichenfolge in das Feld Suchen ein, um nach einer bestimmten Funktion zu suchen. Zeigen Sie auf eine Funktion, um Details dazu anzuzeigen, einschließlich einer Beschreibung und der Parameter.

Screenshot der Anzeige einer Funktion

Verwenden einer Funktion

Verwenden Sie eine Funktion in einer Abfrage, indem Sie ihren Namen mit Werten für alle Parameter eingeben, so wie Sie einen Befehl eingeben würden. Die Ausgabe der Funktion kann entweder als Ergebnisse zurückgegeben oder an einen anderen Befehl weitergesendet werden.

Fügen Sie der aktuellen Abfrage eine Funktion hinzu, indem Sie auf ihren Namen doppelklicken oder darauf zeigen und Im Editor verwenden auswählen. Funktionen im Arbeitsbereich werden auch in IntelliSense einbezogen, wenn Sie eine Abfrage eingeben.

Wenn eine Abfrage Parameter erfordert, geben Sie sie mit der Syntax function_name(param1,param2,...) an.

Screenshot der Verwendung einer Funktion

Erstellen einer Funktion

Um eine Funktion aus der aktuellen Abfrage im Editor zu erstellen, wählen Sie Speichern>Als Funktion speichern aus.

Screenshot der Erstellung einer Funktion

Erstellen Sie eine Funktion mit Log Analytics, indem Sie im Azure-Portal Speichern auswählen und dann die Informationen in der folgenden Tabelle angeben:

Einstellung BESCHREIBUNG
Funktionsname Name für die Funktion. Der Name darf kein Leerzeichen oder Sonderzeichen enthalten. Er darf auch nicht mit einem Unterstrich (_) beginnen, da dieses Zeichen für Lösungsfunktionen reserviert ist.
Legacykategorie Benutzerdefinierte Kategorie, um Filter- und Gruppierungsfunktionen zu unterstützen.
Als Computergruppe speichern Diese Abfrage als Computergruppe speichern.
Parameter Fügen Sie einen Parameter für jede Variable in der Funktion hinzu, die einen Wert erfordert, wenn sie verwendet wird. Weitere Informationen finden Sie unter Funktionsparameter.

Screenshot der Funktionsdetails

Funktionsparameter

Sie können einer Funktion Parameter hinzufügen, sodass Sie bei deren Aufruf Werte für bestimmte Variablen bereitstellen können. Dadurch kann dieselbe Funktion in verschiedenen Abfragen verwendet werden, die jeweils unterschiedliche Werte für die Parameter bereitstellen. Die Parameter werden durch folgende Eigenschaften definiert:

Einstellung BESCHREIBUNG
type Datentyp für den Wert.
Name Namen für den Parameter. Dieser Name muss in der Abfrage verwendet werden, um durch den Parameterwert ersetzt zu werden.
Standardwert Der Wert, der für den Parameter verwendet werden soll, wenn kein Wert angegeben wird.

Parameter werden beim Erstellen sortiert. Parameter, die keinen Standardwert haben, stehen vor Parametern, die einen Standardwert haben.

Hinweis

Klassische Application Insights-Ressourcen unterstützen keine parametrisierten Funktionen. Wenn Sie über eine arbeitsbereichsbasierte Application Insights-Ressource verfügen, können Sie parametrisierte Funktionen aus Ihrem Log Analytics-Arbeitsbereich erstellen. Informationen zum Migrieren Ihrer klassischen Application Insights-Ressource zu einer arbeitsbereichsbasierten Ressource finden Sie unter Migrieren zu arbeitsbereichsbasierten Application Insights-Ressourcen.

Arbeiten mit dem Funktionscode

Sie können den Code einer Funktion anzeigen, um einen Einblick in die Funktionsweise zu erhalten oder den Code für eine Arbeitsbereichsfunktion zu ändern. Wählen Sie Funktionscode laden aus, um den Funktionscode der aktuellen Abfrage im Editor hinzuzufügen.

Wenn Sie den Funktionscode einer leeren Abfrage oder der ersten Zeile einer vorhandenen Abfrage hinzufügen, wird der Funktionsname der Registerkarte hinzugefügt. Eine Arbeitsbereichsfunktion ermöglicht die Option zum Bearbeiten der Funktionsdetails.

Screenshot vom Laden des Funktionscodes

Bearbeiten einer Funktion

Bearbeiten Sie die Eigenschaften oder den Code einer Funktion, indem Sie eine neue Abfrage erstellen. Zeigen Sie auf den Namen der Funktion, und wählen Sie Funktionscode laden aus. Nehmen Sie alle Änderungen am Code vor, und wählen Sie Speichern aus. Wählen Sie dann Funktionsdetails bearbeiten aus. Nehmen Sie alle Änderungen an den Eigenschaften und Parametern der Funktion vor, und wählen Sie dann Speichern aus.

Screenshot der Bearbeitung einer Funktion

Beispiel

Die folgende Beispielfunktion gibt alle Ereignisse im Azure-Aktivitätsprotokoll seit einem bestimmten Datum zurück, die einer bestimmten Kategorie entsprechen.

Beginnen Sie mit der folgenden Abfrage, indem Sie hartcodierte Werte verwenden, um zu überprüfen, ob die Abfrage erwartungsgemäß funktioniert.

AzureActivity
| where CategoryValue == "Administrative"
| where TimeGenerated > todatetime("2021/04/05 5:40:01.032 PM")

Screenshot der ersten Abfrage

Ersetzen Sie als Nächstes die hartcodierten Werte durch Parameternamen. Speichern Sie dann die Funktion, indem Sie Speichern>Als Funktion speichern auswählen.

AzureActivity
| where CategoryValue == CategoryParam
| where TimeGenerated > DateParam

Screenshot der Speicherung der Funktion

Geben Sie die folgenden Werte für die Funktionseigenschaften ein:

Eigenschaft Wert
Funktionsname AzureActivityByCategory
Legacykategorie Demofunktionen

Definieren Sie die folgenden Parameter, bevor Sie die Funktion speichern:

type Name Standardwert
Zeichenfolge CategoryParam „Administrative“
datetime DateParam

Screenshot der Funktionseigenschaften

Erstellen Sie eine neue Abfrage, und zeigen Sie die neue Funktion an, indem Sie darauf zeigen. Sehen Sie sich die Reihenfolge der Parameter an. Sie müssen in dieser Reihenfolge angegeben werden, wenn Sie die Funktion verwenden.

Screenshot der Anzeige der Details

Wählen Sie Im Editor verwenden, um die neue Funktion einer Abfrage hinzuzufügen. Fügen Sie dann Werte für die Parameter hinzu. Sie müssen keinen Wert für CategoryParam angeben, da er über einen Standardwert verfügt.

Screenshot des Hinzufügens von Werten für Parameter

Nächste Schritte

Weitere Informationen zum Schreiben von Azure Monitor-Protokollabfragen finden Sie unter Zeichenfolgenvorgänge.