Gegevens correleren in Azure Data Explorer en Azure Resource Graph met gegevens in een Log Analytics-werkruimte
U kunt gegevens in Azure Data Explorer en Azure Resource Graph correleren met gegevens in uw Log Analytics-werkruimte en Application Insights-resources om uw analyse in Azure Monitor-logboeken te verbeteren. Microsoft Sentinel, die ook gegevens opslaat in Log Analytics-werkruimten, ondersteunt query's tussen services naar Azure Data Explorer, maar niet naar Azure Resource Graph. In dit artikel wordt uitgelegd hoe u query's voor meerdere services uitvoert vanuit elke service waarin gegevens in een Log Analytics-werkruimte worden opgeslagen.
Voer query's tussen services uit met behulp van clienthulpprogramma's die ondersteuning bieden voor KQL-query's (Kusto-querytaal), waaronder de Log Analytics-webinterface, werkmappen, PowerShell en de REST API.
Vereiste machtigingen
Als u een query tussen services wilt uitvoeren die gegevens correleert in Azure Data Explorer of Azure Resource Graph met gegevens in een Log Analytics-werkruimte, hebt u het volgende nodig:
Microsoft.OperationalInsights/workspaces/query/*/read
machtigingen voor de Log Analytics-werkruimten die u opvraagt, zoals opgegeven door de ingebouwde rol van Log Analytics Reader.- Leesmachtigingen voor de resources die u opvraagt in Azure Resource Graph.
- Viewermachtigingen voor de tabellen die u opvraagt in Azure Data Explorer.
Query's uitvoeren op gegevens in Azure Data Explorer met behulp van adx()
Voer de id in voor een Azure Data Explorer-cluster in een query binnen het adx
patroon, gevolgd door de databasenaam en -tabel.
adx('https://help.kusto.windows.net/Samples').StormEvents
Azure Data Explorer-clustertabellen combineren met een Log Analytics-werkruimte
Gebruik de union
opdracht om clustertabellen te combineren met een Log Analytics-werkruimte.
Voorbeeld:
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
Tip
Shorthand-indeling is toegestaan: ClusterName/InitialCatalog. Wordt bijvoorbeeld adx('help/Samples')
vertaald naar adx('help.kusto.windows.net/Samples')
.
Wanneer u de join
operator gebruikt in plaats van de samenvoeging, moet u een hint
operator gebruiken om de gegevens in het Azure Data Explorer-cluster te combineren met de Log Analytics-werkruimte. Gebruik Hint.remote={Direction of the Log Analytics Workspace}
.
Voorbeeld:
AzureDiagnostics
| join hint.remote=left adx("cluster=ClusterURI").AzureDiagnostics on (ColumnName)
Gegevens samenvoegen vanuit een Azure Data Explorer-cluster in één tenant met een Azure Monitor-resource in een andere
Query's voor meerdere tenants tussen de services worden niet ondersteund. U bent aangemeld bij één tenant voor het uitvoeren van de query die beide resources omvat.
Als de Azure Data Explorer-resource zich in Tenant A bevindt en de Log Analytics-werkruimte zich in Tenant B bevindt, gebruikt u een van de volgende methoden:
- Gebruik Azure Data Explorer om rollen toe te voegen voor principals in verschillende tenants. Voeg uw gebruikers-id toe in Tenant B als geautoriseerde gebruiker in het Azure Data Explorer-cluster. Controleer of de eigenschap TrustedExternalTenant in het Azure Data Explorer-cluster tenant B bevat. Voer de kruisquery volledig uit in Tenant B.
- Gebruik Lighthouse om de Azure Monitor-resource te projecteren in Tenant A.
Verbinding maken naar Azure Data Explorer-clusters van verschillende tenants
Kusto Explorer meldt u automatisch aan bij de tenant waartoe het gebruikersaccount oorspronkelijk behoort. Als u toegang wilt krijgen tot resources in andere tenants met hetzelfde gebruikersaccount, moet u expliciet opgeven TenantId
in de verbindingsreeks:
Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=TenantId
Query's uitvoeren op gegevens in Azure Resource Graph met behulp van arg() (preview)
Voer het arg("")
patroon in, gevolgd door de naam van de Azure Resource Graph-tabel.
Voorbeeld:
arg("").<Azure-Resource-Graph-table-name>
Hier volgen enkele voorbeelden van Azure Log Analytics-query's die gebruikmaken van de nieuwe mogelijkheden voor query's voor meerdere services van Azure Resource Graph:
Filter een Log Analytics-query op basis van de resultaten van een Azure Resource Graph-query:
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
Maak een waarschuwingsregel die alleen van toepassing is op bepaalde resources die afkomstig zijn van een ARG-query:
Sluit resources uit op basis van tags, bijvoorbeeld om waarschuwingen voor VM's met een tag Testen niet te activeren.
arg("").Resources | where tags.environment=~'Test' | project name
Haal prestatiegegevens op met betrekking tot het CPU-gebruik en filter op resources met de tag 'prod'.
InsightsMetrics | where Name == "UtilizationPercentage" | lookup ( arg("").Resources | where type == 'microsoft.compute/virtualmachines' | project _ResourceId=tolower(id), tags ) on _ResourceId | where tostring(tags.Env) == "Prod"
Meer use cases:
- Gebruik een tag om te bepalen of vm's 24x7 moeten worden uitgevoerd of 's nachts moeten worden afgesloten.
- Waarschuwingen weergeven op een server die een bepaald aantal kernen bevat.
Een waarschuwing maken op basis van een query voor meerdere services vanuit uw Log Analytics-werkruimte
Als u een waarschuwingsregel wilt maken op basis van een query tussen services vanuit uw Log Analytics-werkruimte, volgt u de stappen in Een waarschuwingsregel voor zoeken in logboeken maken of bewerken, waarbij u uw Log Analytics-werkruimte selecteert op het tabblad Bereik .
Notitie
U kunt ook query's tussen services uitvoeren vanuit Azure Data Explorer en Azure Resource Graph naar een Log Analytics-werkruimte door de relevante resource te selecteren als het bereik van uw waarschuwing.
Beperkingen
Algemene beperkingen voor query's tussen services
- Query's voor meerdere services bieden geen ondersteuning voor geparameteriseerde functies en functies waarvan de definitie andere expressies voor meerdere werkruimten of service-expressies omvat, waaronder , , , en
app()
workspace()
.resource()
arg()
adx()
- Query's voor meerdere services ondersteunen alleen '.show' -functies.
Met deze mogelijkheid kunnen query's tussen clusters rechtstreeks verwijzen naar een tabellaire azure Monitor-, Azure Data Explorer- of Azure Resource Graph-functie.
De volgende opdrachten worden ondersteund met de query voor meerdere services:
.show functions
.show function {FunctionName}
.show database {DatabaseName} schema as json
- Databasenamen zijn hoofdlettergevoelig.
- Het identificeren van de kolom Timestamp in het cluster wordt niet ondersteund. De Log Analytics-query-API geeft het tijdfilter niet door.
- Query's voor meerdere services ondersteunen alleen het ophalen van gegevens.
- Private Link (privé-eindpunten) en IP-beperkingen bieden geen ondersteuning voor query's tussen services.
mv-expand
is beperkt tot 2000 records.- Azure Monitor-logboeken bieden geen ondersteuning voor de
external_table()
functie, waarmee u externe tabellen kunt opvragen in Azure Data Explorer. Als u een query wilt uitvoeren op een externe tabel, definieert uexternal_table(<external-table-name>)
als een functie zonder parameters in Azure Data Explorer. Vervolgens kunt u de functie aanroepen met behulp van de expressieadx("").<function-name>
.
Azure Resource Graph-querybeperkingen voor meerdere services
- Microsoft Sentinel biedt geen ondersteuning voor query's tussen services in Azure Resource Graph.
- Wanneer u query's uitvoert op Azure Resource Graph-gegevens vanuit Azure Monitor:
- De query retourneert alleen de eerste 1000 records.
- Azure Monitor retourneert geen queryfouten in Azure Resource Graph.
- De Log Analytics-queryeditor markeert geldige Azure Resource Graph-query's als syntaxisfouten.
- Joins worden niet ondersteund wanneer u Hint niet gebruikt.
- Deze operators worden niet ondersteund:
smv-apply()
, ,rand()
,arg_max()
arg_min()
, ,avg()
, ,avg_if()
, ,percentile()
percentiles()
variance()
variancep()
sumif()
percentilesw()
varianceif()
percentilew()
stdev()
stdevif()
stdevp()
countif()
Azure Resource Graph-tabellen combineren met een Log Analytics-werkruimte
Gebruik de union
opdracht om clustertabellen te combineren met een Log Analytics-werkruimte.
Voorbeeld:
union AzureActivity, arg("").Resources
| take 10
let CL1 = arg("").Resources ;
union AzureActivity, CL1 | take 10
Wanneer u de join
operator gebruikt in plaats van samenvoeging, moet u een hint
operator gebruiken om de gegevens in Azure Resource Graph te combineren met gegevens in de Log Analytics-werkruimte. Gebruik Hint.remote={Direction of the Log Analytics Workspace}
. Voorbeeld:
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"
Volgende stappen
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort: Gedurende 2024 worden GitHub Issues uitgefaseerd als het feedbackmechanisme voor inhoud. Dit wordt vervangen door een nieuw feedbacksysteem. Ga voor meer informatie naar:Feedback verzenden en bekijken voor