Korelace dat v Azure Data Exploreru a Azure Resource Graphu s daty v pracovním prostoru služby Log Analytics
Data v Azure Data Exploreru a Azure Resource Graphu můžete korelovat s daty v pracovním prostoru služby Log Analytics a prostředky Application Insights za účelem vylepšení analýzy v protokolech služby Azure Monitor. Microsoft Sentinel, který také ukládá data v pracovních prostorech služby Log Analytics, podporuje dotazy mezi službami do Azure Data Exploreru, ale ne do Azure Resource Graphu. Tento článek vysvětluje, jak spouštět dotazy mezi službami z jakékoli služby, která ukládá data do pracovního prostoru služby Log Analytics.
Spouštění dotazů mezi službami pomocí všech klientských nástrojů, které podporují dotazy dotazovací jazyk Kusto (KQL), včetně webového uživatelského rozhraní, sešitů, PowerShellu a rozhraní REST API služby Log Analytics.
Požadována oprávnění
Pokud chcete spustit dotaz mezi službami, který koreluje data v Azure Data Exploreru nebo Azure Resource Graphu s daty v pracovním prostoru služby Log Analytics, potřebujete:
Microsoft.OperationalInsights/workspaces/query/*/read
oprávnění k pracovním prostorům služby Log Analytics, které dotazujete, jak poskytuje integrovaná role Log Analytics Reader, například.- Oprávnění čtenáře k prostředkům, které dotazujete v Azure Resource Graphu.
- Oprávnění prohlížeče k tabulkám, které dotazujete v Azure Data Exploreru.
Na co myslet při implementaci
Obecné aspekty křížové služby
V názvech databází se rozlišují malá a velká písmena.
Používejte neparametrizované funkce a funkce, jejichž definice neobsahuje jiné výrazy mezi pracovními prostory nebo mezi službami, včetně
adx()
, ,arg()
,resource()
workspace()
aapp()
.Dotazy napříč službami podporují pouze načítání dat.
Dotazy napříč službami podporují pouze příkazy .show . Tato funkce umožňuje dotazům napříč clustery přímo odkazovat na tabulkovou funkci Azure Monitoru, Azure Data Exploreru nebo Azure Resource Graphu. Dotaz mezi službami podporuje následující příkazy:
.show functions
.show function {FunctionName}
.show database {DatabaseName} schema as json
mv-expand
podporuje až 2 000 záznamů.Protokoly služby Azure Monitor nepodporují
external_table()
funkci, která umožňuje dotazovat externí tabulky v Azure Data Exploreru. Pokud chcete dotazovat externí tabulku, definujteexternal_table(<external-table-name>)
ji jako funkci bez parametrů v Azure Data Exploreru. Funkci pak můžete volat pomocí výrazuadx("").<function-name>
.Pokud operátor použijete
join
místo sjednocení, musíte použíthint
kombinaci dat v Azure Data Exploreru nebo Azure Resource Graphu s daty v pracovním prostoru služby Log Analytics. PoužijteHint.remote={direction of the Log Analytics workspace}
.Příklad:
AzureDiagnostics | join hint.remote=left adx("cluster=ClusterURI").AzureDiagnostics on (ColumnName)
Identifikace sloupce časového razítka v clusteru se nepodporuje. Rozhraní API pro dotazy Log Analytics nepředává časový filtr.
Clustery Data Exploreru nakonfigurované s omezeními IP adres nebo privátními koncovými body nepodporují dotazy mezi službami.
Důležité informace o dotazech napříč službami v Azure Resource Graphu
- Při dotazování dat Azure Resource Graphu ze služby Azure Monitor:
- Operátor
join
umožňuje kombinovat data z jedné tabulky Azure Resource Graphu s jednou tabulkou v pracovním prostoru služby Log Analytics. - Dotaz vrátí pouze prvních 1 000 záznamů.
- Azure Monitor nevrací chyby dotazů Azure Resource Graphu.
- Editor dotazů Log Analytics označuje platné dotazy Azure Resource Graphu jako chyby syntaxe.
- Tyto operátory se nepodporují:
smv-apply()
, ,rand()
,arg_max()
arg_min()
,avg()
,avg_if()
,countif()
,sumif()
, ,percentile()
,percentiles()
.variancep()
varianceif()
percentilew()
percentilesw()
stdev()
stdevif()
stdevp()
variance()
- Operátor
- Microsoft Sentinel nepodporuje dotazy mezi službami do Azure Resource Graphu.
Dotazování dat v Azure Data Exploreru pomocí adx()
Zadejte identifikátor clusteru Azure Data Exploreru v dotazu v rámci adx
vzoru následovaný názvem databáze a tabulkou.
adx('https://help.kusto.windows.net/Samples').StormEvents
Kombinování tabulek clusteru Azure Data Exploreru s pracovním prostorem služby Log Analytics
union
Pomocí příkazu zkombinujte tabulky clusteru s pracovním prostorem služby Log Analytics.
Příklad:
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
Zkrácený formát je povolený: Název clusteru/InitialCatalog. Například adx('help/Samples')
se přeloží na adx('help.kusto.windows.net/Samples')
.
Připojení dat z clusteru Azure Data Exploreru v jednom tenantovi pomocí prostředku služby Azure Monitor v jiném
Dotazy napříč tenanty mezi službami se nepodporují. Jste přihlášení k jednomu tenantovi pro spuštění dotazu, který zahrnuje oba prostředky.
Pokud je prostředek Azure Data Exploreru v tenantovi A a pracovní prostor služby Log Analytics je v tenantovi B, použijte jednu z následujících metod:
- Pomocí Azure Data Exploreru můžete přidat role pro objekty zabezpečení v různých tenantech. Přidejte ID uživatele v tenantovi B jako autorizovaného uživatele v clusteru služby Azure Data Explorer. Ověřte, že vlastnost TrustedExternalTenant v clusteru Azure Data Exploreru obsahuje tenanta B. Spusťte křížový dotaz plně v tenantovi B.
- Pomocí Lighthouse můžete projektovat prostředek Azure Monitoru do tenanta A.
Připojení ke clusterům Azure Data Exploreru z různých tenantů
Průzkumník Kusto vás automaticky přihlásí k tenantovi, ke kterému uživatelský účet původně patří. Pokud chcete získat přístup k prostředkům v jiných tenantech se stejným uživatelským účtem, musíte explicitně zadat TenantId
v připojovací řetězec:
Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=TenantId
Dotazování dat v Azure Resource Graphu pomocí arg() (Preview)
arg("")
Zadejte vzor následovaný názvem tabulky Azure Resource Graphu.
Příklad:
arg("").<Azure-Resource-Graph-table-name>
Tip
Operátor arg()
je nyní k dispozici pro pokročilé proaktivní vyhledávání na sjednocené platformě Microsoft Defenderu. Tato funkce umožňuje dotazovat se pouze na data Služby Microsoft Sentinel. Další informace najdete v článku Použití operátoru arg() pro dotazy Azure Resource Graphu.
Tady je několik ukázkových dotazů Azure Log Analytics, které používají nové možnosti dotazů napříč službami Azure Resource Graphu:
Vyfiltrujte dotaz Log Analytics na základě výsledků dotazu Azure Resource Graphu:
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
Vytvořte pravidlo upozornění, které se vztahuje pouze na určité prostředky převzaté z dotazu ARG:
Vylučte prostředky na základě značek , například neaktivujte upozornění pro virtuální počítače se značkou Test.
arg("").Resources | where tags.environment=~'Test' | project name
Načtěte údaje o výkonu související s využitím procesoru a vyfiltrujte prostředky se značkou "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"
Další případy použití:
- Pomocí značky určete, jestli mají být virtuální počítače spuštěné 24x7 nebo by měly být v noci vypnuté.
- Zobrazit výstrahy na libovolném serveru, který obsahuje určitý počet jader.
Vytvoření upozornění na základě dotazu napříč službami z pracovního prostoru služby Log Analytics
Pokud chcete vytvořit pravidlo upozornění založené na dotazu napříč službami z pracovního prostoru služby Log Analytics, postupujte podle pokynů v tématu Vytvoření nebo úprava pravidla upozornění prohledávání protokolu, výběrem pracovního prostoru služby Log Analytics na kartě Obor .
Poznámka:
Dotazy mezi službami můžete také spouštět z Azure Data Exploreru a Azure Resource Graphu do pracovního prostoru služby Log Analytics výběrem příslušného prostředku jako rozsahu upozornění.
Kombinování tabulek Azure Resource Graphu s pracovním prostorem služby Log Analytics
union
Pomocí příkazu zkombinujte tabulky clusteru s pracovním prostorem služby Log Analytics.
Příklad:
union AzureActivity, arg("").Resources
| take 10
let CL1 = arg("").Resources ;
union AzureActivity, CL1 | take 10
Pokud místo sjednocení použijete join
operátor , musíte použít hint
kombinaci dat v Azure Resource Graphu s daty v pracovním prostoru služby Log Analytics. Použijte Hint.remote={Direction of the Log Analytics Workspace}
. Příklad:
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"