Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verbessern Sie Ihre Analyse in Azure Monitor-Protokollen, indem Sie Daten im Azure-Daten-Explorer und Azure Resource Graph mit Daten in Ihrem Log Analytics-Arbeitsbereich und den Application Insights-Ressourcen korrelieren. In diesem Artikel wird erläutert, wie Dienstübergreifende Abfragen von jedem Dienst ausgeführt werden, der Daten in einem Log Analytics-Arbeitsbereich speichert. Obwohl Microsoft Sentinel Daten in Log Analytics-Arbeitsbereichen speichert und dienstübergreifende Abfragen für Azure Data Explorer unterstützt, unterstützt nicht jedes Feature von Microsoft Sentinel Abfragen für Azure Resource Graph.
Führen Sie dienstübergreifende Abfragen mithilfe von Clienttools aus, die Kusto Query Language (KQL)-Abfragen unterstützen, einschließlich Log Analytics im Azure-Portal, Arbeitsmappen, PowerShell und der REST-API.
Voraussetzungen
Ressource | Erforderliche Berechtigung |
---|---|
Log Analytics-Arbeitsbereich |
Microsoft.OperationalInsights/workspaces/query/*/read für Log Analytics-Arbeitsbereiche, die Sie abfragen, wie z. B. von der integrierten Rolle „Log Analytics-Leser“ bereitgestellt. |
Azure Resource Graph | Lesezugriff auf die Ressourcen, die Sie im Azure Resource Graph abfragen |
Azure-Daten-Explorer | Anzeigen von Berechtigungen für die Tabellen, die Sie im Azure-Daten-Explorer abfragen |
Überlegungen zur Implementierung
Dienstübergreifende Abfragen werden in den folgenden Szenarien nicht unterstützt:
- Government-Clouds
- Mit IP-Einschränkungen oder privatem Link (private Endpunkte) konfigurierte Daten-Explorer-Cluster
Allgemeine Überlegungen für dienstübergreifende Szenarien
- Bei Datenbanknamen wird die Groß-/Kleinschreibung berücksichtigt.
- Verwenden Sie nicht parametrisierte Funktionen und Funktionen, deren Definition keine anderen arbeitsbereichübergreifenden oder dienstübergreifenden Ausdrücke enthält. Zu den zulässigen Funktionen gehören
adx()
: ,arg()
,resource()
,workspace()
undapp()
. - Dienstübergreifende Abfragen unterstützen nur den Datenabruf.
- Die einzigen Befehle, die dienstübergreifende Abfragen unterstützen, sind
.show
Befehle. Dadurch können clusterübergreifende Abfragen direkt auf eine tabellarische Azure Monitor-, Azure Data Explorer-oder Azure Resource Graph-Funktion verweisen.
.show
Befehle, die mit der dienstübergreifenden Abfrage unterstützt werden:.show functions
.show function {FunctionName}
.show database {DatabaseName} schema as json
- Das Identifizieren der Zeitstempelspalte in einem Cluster wird nicht unterstützt. Die Abfrage-API von Log Analytics übergibt den Zeitfilter nicht.
-
mv-expand
unterstützt bis zu 2.000 Datensätze. - Azure Monitor Logs unterstützt die
external_table()
Funktion nicht, mit der Sie externe Tabellen im Azure-Daten-Explorer abfragen können. Um eine externe Tabelle abzufragen, definieren Sieexternal_table(<external-table-name>)
sie als parameterlose Funktion im Azure Data Explorer. Anschließend können Sie die Funktion mithilfe des Ausdrucksadx("").<function-name>
aufrufen. - Wenn Sie anstelle von „union“ den
join
-Operator nutzen, müssen Sie einenhint
verwenden, um die Daten in Azure Data Explorer oder Azure Resource Graph mit Daten im Log Analytics-Arbeitsbereich zu kombinieren. Verwenden SieHint.remote={direction of the Log Analytics workspace}
.
Zum Beispiel:AzureDiagnostics | join hint.remote=left adx("cluster=ClusterURI").AzureDiagnostics on (ColumnName)
Überlegungen für dienstübergreifende Abfragen in Azure Resource Graph
- Der
arg
Teil der Abfrage gibt nur die ersten 1.000 Datensätze zurück. Beachten Sie dies, wenn eine Kombination mit einemjoin
da möglicherweise fehlenden Datensatz vorhanden ist, wenn der Grenzwert erreicht ist. - Mit dem
join
-Operator können Sie Daten aus einer Azure Resource Graph-Tabelle mit einer Tabelle in Ihrem Log Analytics-Arbeitsbereich kombinieren. - Azure Monitor gibt keine Azure Resource Graph-Abfragefehler zurück.
- Der Log Analytics-Abfrage-Editor kennzeichnet gültige Azure Resource Graph-Abfragen als Syntaxfehler. Eine gültige Abfrage kann z. B. einen Fehler wie diesen geben: "Der <name valid name> bezieht sich nicht auf eine bekannte Spalte, Tabelle, Variable oder Funktion."
- Diese Operatoren werden nicht unterstützt:
smv-apply()
,rand()
,arg_max()
,arg_min()
,avg()
,avg_if()
,countif()
,sumif()
,percentile()
,percentiles()
,percentilew()
,percentilesw()
,stdev()
,stdevif()
,stdevp()
,variance()
,variancep()
,varianceif()
,bin_at
. - Microsoft Sentinel unterstützt keine dienstübergreifenden Abfragen in allen Features, in denen KQL verwendet wird.
Abfragen von Daten im Azure-Daten-Explorer mithilfe von adx()
Geben Sie den Bezeichner für einen Azure Data Explorer-Cluster in einer Abfrage innerhalb des adx
-Musters gefolgt vom Datenbanknamen und der Tabelle ein.
adx('https://help.kusto.windows.net/Samples').StormEvents
Kombinieren von Azure Data Explorer-Clustertabellen mit einem Log Analytics-Arbeitsbereich
Verwenden Sie den Befehl union
, um Clustertabellen mit einem Log Analytics-Arbeitsbereich zu kombinieren.
Zum Beispiel:
union customEvents, adx('https://help.kusto.windows.net/Samples').StormEvents
| take 10
let CL1 = adx('https://help.kusto.windows.net/Samples').StormEvents;
union customEvents, CL1 | take 10
Tipp
Kurzform ist zulässig: ClusterName/InitialCatalog. Beispielsweise wird adx('help/Samples')
in adx('help.kusto.windows.net/Samples')
übersetzt.
Verknüpfen von Daten eines Azure Data Explorer-Clusters in einem Mandanten mit einer Azure Monitor-Ressource in einem anderen Mandanten
Mandantenübergreifende Abfragen zwischen den Diensten werden nicht unterstützt. Sie sind bei einem einzelnen Mandanten angemeldet, um die Abfrage auszuführen, die sich über beide Ressourcen erstreckt.
Wenn sich die Azure Data Explorer-Ressource im Mandanten A und der Log Analytics-Arbeitsbereich im Mandanten B befindet, sollten Sie eine der folgenden Methoden verwenden:
- Verwenden Sie Azure Data Explorer, um Rollen für Prinzipale in unterschiedlichen Mandanten hinzuzufügen. Fügen Sie Ihre Benutzer-ID in Mandant B als autorisierter Benutzer in dem Azure Data Explorer-Cluster hinzu. Vergewissern Sie sich, dass die TrustedExternalTenant-Eigenschaft im Azure Data Explorer-Cluster den Mandanten B enthält. Führen Sie die übergreifende Abfrage vollständig in Mandant B aus.
- Verwenden Sie Lighthouse, um die Azure Monitor-Ressource in Mandant A zu projizieren.
Herstellen einer Verbindung mit Azure Data Explorer-Clustern von unterschiedlichen Mandanten
Bei Kusto-Explorer werden Sie automatisch bei dem Mandanten angemeldet, zu dem das Benutzerkonto ursprünglich gehört. Für den Zugriff auf Ressourcen in anderen Mandanten mit demselben Benutzerkonto müssen Sie TenantId
explizit in der Verbindungszeichenfolge angeben:
Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=TenantId
Abfragen von Daten in Azure Resource Graph mithilfe von arg() (Vorschau)
Geben Sie das arg("")
-Muster gefolgt vom Azure Resource Graph-Tabellennamen ein.
Zum Beispiel:
arg("").<Azure-Resource-Graph-table-name>
Tipp
Der arg()
-Operator ist jetzt für die erweiterte Bedrohungssuche im Microsoft Defender-Portal verfügbar. Dieses Feature ermöglicht Ergebnisse, die Microsoft Sentinel-Tabellen abfragen. Weitere Informationen finden Sie unter Azure Resource Graph-Abfragen in der erweiterten Suche.
Hier sind einige Azure Log Analytics-Beispielabfragen, welche die neuen dienstübergreifenden Abfragefunktionen von Azure Resource Graph verwenden:
Beispiel: Filtern einer Log Analytics-Abfrage basierend auf den Ergebnissen einer Azure Resource Graph-Abfrage
arg("").Resources
| where type == "microsoft.compute/virtualmachines" and properties.hardwareProfile.vmSize startswith "Standard_D"
| join (
Heartbeat
| where TimeGenerated > ago(1d)
| distinct Computer
)
on $left.name == $right.Computer
Beispiele: Erstellen einer Warnungsregel, die nur für bestimmte Ressourcen gilt, die aus einer Arg()-Abfrage stammen
Schließen Sie Ressourcen basierend auf Tags aus. Lösen Sie z. B. keine Warnungen für VMs mit einem Test
-Tag aus.
arg("").Resources
| where tags.environment=~'Test'
| project name
Abrufen von Leistungsdaten im Zusammenhang mit der CPU-Auslastung und Filtern von Ressourcen mit dem prod
Tag.
InsightsMetrics
| where Name == "UtilizationPercentage"
| lookup (
arg("").Resources
| where type == 'microsoft.compute/virtualmachines'
| project _ResourceId=tolower(id), tags
)
on _ResourceId
| where tostring(tags.Env) == "Prod"
Weitere Beispielanwendungsfälle
- Verwenden Sie ein Etikett, um zu bestimmen, ob VMs rund um die Uhr ausgeführt oder nachts heruntergefahren werden sollen.
- Warnungen auf jedem Server anzeigen, der eine definierte Anzahl von Kernen enthält.
Erstellen einer Warnung basierend auf einer dienstübergreifenden Abfrage aus Ihrem Log Analytics-Arbeitsbereich
Um eine Warnungsregel basierend auf einer dienstübergreifenden Abfrage aus Ihrem Log Analytics-Arbeitsbereich zu erstellen, führen Sie die Schritte unter Erstellen oder Bearbeiten einer Regel für Protokollsuchwarnungen aus, indem Sie Ihren Log Analytics-Arbeitsbereich auf der Registerkarte Bereich auswählen.
Tipp
Führen Sie dienstübergreifende Abfragen aus Azure Data Explorer und Azure Resource Graph in einem Log Analytics-Arbeitsbereich aus, indem Sie die relevante Ressource als Umfang Ihrer Warnung auswählen.
Kombinieren von Azure Resource Graph-Tabellen mit einem Log Analytics-Arbeitsbereich
Verwenden Sie den Befehl union
, um Clustertabellen mit einem Log Analytics-Arbeitsbereich zu kombinieren.
Zum Beispiel:
union AzureActivity, arg("").Resources
| take 10
let CL1 = arg("").Resources ;
union AzureActivity, CL1 | take 10
Wenn Sie anstelle von „union“ den join
-Operator nutzen, müssen Sie einen hint
verwenden, um die Daten in Azure Resource Graph mit Daten im Log Analytics-Arbeitsbereich zu kombinieren. Verwenden Sie Hint.remote={Direction of the Log Analytics Workspace}
. Zum Beispiel:
Perf | where ObjectName == "Memory" and (CounterName == "Available MBytes Memory")
| extend _ResourceId = replace_string(replace_string(replace_string(_ResourceId, 'microsoft.compute', 'Microsoft.Compute'), 'virtualmachines','virtualMachines'),"resourcegroups","resourceGroups")
| join hint.remote=left (arg("").Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project _ResourceId=id, tags) on _ResourceId | project-away _ResourceId1 | where tostring(tags.env) == "prod"
Verwandte Inhalte
- Write queries (Schreiben von Abfragen)
- Ausführen ressourcenübergreifender Protokollabfragen in Azure Monitor