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 „Mitwirkender“ 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.
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.
Erstellen einer Funktion
Um eine Funktion aus der aktuellen Abfrage im Editor zu erstellen, wählen Sie Speichern>Als Funktion speichern aus.
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. |
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.
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.
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")
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
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 |
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.
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.
Nächste Schritte
Weitere Informationen zum Schreiben von Azure Monitor-Protokollabfragen finden Sie unter Zeichenfolgenvorgänge.