Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Förbättra din analys i Azure Monitor-loggar genom att korrelera data i Azure Data Explorer och Azure Resource Graph med data på din Log Analytics-arbetsyta och Application Insights-resurser. Den här artikeln beskriver hur du kör frågor mellan tjänster från alla tjänster som lagrar data på en Log Analytics-arbetsyta. Även om Microsoft Sentinel lagrar data i Log Analytics-arbetsytor och stöder frågor mellan tjänster till Azure Data Explorer, stöder inte alla funktioner i Microsoft Sentinel frågor till Azure Resource Graph.
Kör frågor mellan tjänster med alla klientverktyg som stöder KQL-frågor (Kusto Query Language), inklusive Log Analytics i Azure-portalen, arbetsböcker, PowerShell och REST-API:et.
Förutsättningar
| Resurs | Behörighet krävs |
|---|---|
| Log Analytics-arbetsyta |
Microsoft.OperationalInsights/workspaces/query/*/read på Log Analytics-arbetsytor som du frågar eftertill exempel, som det ges av den inbyggda rollen Log Analytics Reader. |
| Diagram över Azure-resurser | Läsbehörigheter till de resurser som du frågar i Azure Resource Graph |
| Azure-datautforskaren | Visa behörigheter till de tabeller som du frågar i Azure Data Explorer |
Implementeringöverväganden
Frågor mellan tjänster stöds inte i följande scenarier:
- Myndighetsmoln
- Data Explorer-kluster som konfigurerats med IP-begränsningar eller Private Link (privata slutpunkter)
Allmänna överväganden mellan tjänster
- Databasnamn är skiftlägeskänsliga.
- Använd icke-parametriserade funktioner och funktioner vars definition inte innehåller andra uttryck mellan arbetsytor eller korstjänster. Acceptabla funktioner är
adx(),arg(),resource(),workspace()ochapp(). - Tjänstövergripande frågeställningar stöder endast datahämtning.
- De enda kommandona som stöder frågor mellan tjänster är
.showkommandon. Med den här funktionen kan frågor mellan kluster referera till en Azure Monitor-, Azure Data Explorer- eller Azure Resource Graph-tabellfunktion direkt.
.showkommandon som är stödjda i en tvärtjänstförfrågan:.show functions.show function {FunctionName}.show database {DatabaseName} schema as json - Det går inte att identifiera tidsstämpelkolumnen i ett kluster. Log Analytics-fråge-API:et skickar inte tidsfiltret.
-
mv-expandstöder upp till 2 000 poster. - Azure Monitor Logs stöder inte
external_table()-funktionen, som gör det möjligt att fråga externa tabeller i Azure Data Explorer. Om du vill köra frågor mot en extern tabell definierar duexternal_table(<external-table-name>)som en parameterlös funktion i Azure Data Explorer. Du kan sedan anropa funktionen med uttrycketadx("").<function-name>. - När du använder operatorn
joini stället för union måste du använda enhintför att kombinera data i Azure Data Explorer eller Azure Resource Graph med data på Log Analytics-arbetsytan. AnvändHint.remote={direction of the Log Analytics workspace}.
Till exempel:AzureDiagnostics | join hint.remote=left adx("cluster=ClusterURI").AzureDiagnostics on (ColumnName)
Frågeöverväganden mellan tjänster i Azure Resource Graph
- Delen
argav frågan returnerar bara de första 1 000 posterna. Tänk på detta om du kombinerar med enjoineftersom det kan saknas poster om gränsen nås. - Med
joinoperatorn kan du kombinera data från en Azure Resource Graph-tabell med en tabell på Log Analytics-arbetsytan. - Azure Monitor returnerar inte Azure Resource Graph-frågefel.
- Log Analytics-frågeredigeraren markerar giltiga Azure Resource Graph-frågor som syntaxfel. En giltig fråga kan till exempel ge ett felmeddelande som det här: "Namnets <giltiga namn> refererar inte till någon känd kolumn, tabell, variabel eller funktion."
- Dessa operatorer stöds inte:
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 stöder inte frågor mellan tjänster i alla funktioner där KQL används.
Fråga efter data i Azure Data Explorer med hjälp av adx()
Ange identifieraren för ett Azure Data Explorer-kluster i en fråga i adx mönstret följt av databasnamnet och tabellen.
adx('https://help.kusto.windows.net/Samples').StormEvents
Kombinera Azure Data Explorer-klustertabeller med en Log Analytics-arbetsyta
union Använd kommandot för att kombinera klustertabeller med en Log Analytics-arbetsyta.
Till exempel:
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
Tips
Kortformat tillåts: ClusterName/InitialCatalog. Till exempel adx('help/Samples') översätts till adx('help.kusto.windows.net/Samples').
Ansluta data från ett Azure Data Explorer-kluster i en klientorganisation med en Azure Monitor-resurs i en annan
Frågor mellan tjänster över klientorganisationer stöds inte. Du är inloggad på en enda användarmiljö för att köra frågan som täcker båda resurserna.
Om Azure Data Explorer-resursen finns i Klient A och Log Analytics-arbetsytan finns i klient B använder du någon av följande metoder:
- Använd Azure Data Explorer för att lägga till roller för principaler i olika klientorganisationer. Lägg till ditt användar-ID i klientorganisation B som behörig användare i Azure Data Explorer-klustret. Kontrollera att egenskapen TrustedExternalTenant i Azure Data Explorer-klustret innehåller klient B. Kör korsfrågan helt i klient B.
- Använd Lighthouse för att projicera Azure Monitor-resursen i klient A.
Ansluta till Azure Data Explorer-kluster från olika klientorganisationer
Kusto Explorer loggar automatiskt in dig på den klientorganisation som användarkontot ursprungligen tillhör. För att få åtkomst till resurser i andra klienter med samma användarkonto måste du uttryckligen ange TenantId i anslutningssträng:
Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=TenantId
Fråga efter data i Azure Resource Graph med hjälp av arg() (förhandsversion)
arg("") Ange mönstret följt av tabellnamnet för Azure Resource Graph.
Till exempel:
arg("").<Azure-Resource-Graph-table-name>
Tips
Operatören arg() är nu tillgänglig för avancerad jakt i Microsoft Defender-portalen. Med den här funktionen kan du köra frågor mot Microsoft Sentinel-tabeller. Mer information finns i Azure Resource Graph-frågor i avancerad jakt.
Här är några exempel på Azure Log Analytics-frågor som använder de nya frågefunktionerna i Azure Resource Graph:
Exempel: Filtrera Log Analytics-fråga baserat på resultatet av en Azure Resource Graph-fråga
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
Exempel: Skapa en aviseringsregel som endast gäller för vissa resurser som tas från en arg() fråga
Exkludera resurser baserat på taggar. Utlösa till exempel inte aviseringar för virtuella datorer med en Test tagg.
arg("").Resources
| where tags.environment=~'Test'
| project name
Hämta prestandadata relaterade till CPU-användning och filtrera till resurser med taggen 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"
Fler exempel på användningsfall
- Använd en tagg för att avgöra om virtuella datorer ska köra 24 x 7 eller stängas av på natten.
- Visa aviseringar på alla servrar som innehåller ett definierat antal kärnor.
Skapa en avisering baserat på en fråga mellan tjänster från Log Analytics-arbetsytan
Om du vill skapa en aviseringsregel baserat på en fråga mellan tjänster från Din Log Analytics-arbetsyta följer du stegen i Skapa eller redigera en varningsregel för loggsökning och väljer din Log Analytics-arbetsyta på fliken Omfång .
Tips
Kör frågor mellan tjänster från Azure Data Explorer och Azure Resource Graph till en Log Analytics-arbetsyta genom att välja relevant resurs som omfång för din avisering.
Kombinera Azure Resource Graph-tabeller med en Log Analytics-arbetsyta
union Använd kommandot för att kombinera klustertabeller med en Log Analytics-arbetsyta.
Till exempel:
union AzureActivity, arg("").Resources
| take 10
let CL1 = arg("").Resources ;
union AzureActivity, CL1 | take 10
När du använder operatorn join i stället för union måste du använda en hint för att kombinera data i Azure Resource Graph med data på Log Analytics-arbetsytan. Använd Hint.remote={Direction of the Log Analytics Workspace}. Till exempel:
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"