Korelace dat v Azure Data Exploreru a Azure Resource Graphu s daty v pracovním prostoru služby Log Analytics

Vylepšete analýzu v protokolech služby Azure Monitor tím, že budete korelovat data v Azure Data Exploreru a Azure Resource Graphu s daty v pracovním prostoru služby Log Analytics a prostředky Application Insights. 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. I když Microsoft Sentinel ukládá data do pracovních prostorů log Analytics a podporuje dotazy mezi službami do Azure Data Exploreru, ne každá funkce Microsoft Sentinelu podporuje dotazy do Azure Resource Graphu.

Spouštět dotazy mezi službami pomocí všech klientských nástrojů, které podporují dotazy jazyka KQL (Kusto Query Language), včetně Log Analytics na webu Azure Portal, sešitů, PowerShellu a rozhraní REST API.

Požadavky

Zdroj Požadováno oprávnění
pracovní prostor služby Log Analytics Microsoft.OperationalInsights/workspaces/query/*/read v pracovních prostorech služby Log Analytics, na které se dotazujete
, například podle předdefinované role Log Analytics Reader.
Azure Resource Graph Čtení oprávnění k prostředkům, které dotazujete v Azure Resource Graphu
Azure Data Explorer Zobrazení oprávnění k tabulkám, které dotazujete v Azure Data Exploreru

Na co myslet při implementaci

Dotazy mezi službami se nepodporují v následujících scénářích:

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 ani mezi službami. Mezi přijatelné funkce patří adx(), , arg()resource(), workspace()a app().
  • Dotazy napříč službami podporují pouze načítání dat.
  • Jedinými příkazy, které podporují dotazy napříč službami, jsou .show příkazy. Tato funkce umožňuje dotazům napříč clustery přímo odkazovat na tabulkovou funkci Azure Monitoru, Azure Data Exploreru nebo Azure Resource Graphu.

    .show příkazy podporované pomocí dotazu mezi službami:

    .show functions
    .show function {FunctionName}
    .show database {DatabaseName} schema as json

  • Identifikace sloupce časového razítka v clusteru se nepodporuje. Rozhraní API pro dotazy Log Analytics neuplatňuje časový filtr.
  • mv-expand podporuje až 2 000 záznamů.
  • Protokoly služby Azure Monitor nepodporují external_table() funkci, která vám umožňuje dotazovat externí tabulky v Azure Data Exploreru. Pokud chcete dotazovat externí tabulku, definujte external_table(<external-table-name>) ji jako funkci bez parametrů v Azure Data Exploreru. Funkci pak můžete volat pomocí výrazu adx("").<function-name>.
  • Pokud použijete operátor join místo sjednocení, musíte použít hint operátor pro kombinaci dat v Azure Data Exploreru nebo Azure Resource Graphu s daty v pracovním prostoru služby Log Analytics. Použijte Hint.remote={direction of the Log Analytics workspace}.
    Například:
    AzureDiagnostics
    | join hint.remote=left adx("cluster=ClusterURI").AzureDiagnostics on (ColumnName)
    

Důležité informace o dotazech napříč službami v Azure Resource Graphu

  • Část arg dotazu vrátí pouze prvních 1 000 záznamů. Mějte na paměti, že při kombinaci s join mohou chybět záznamy, pokud bude dosaženo limitu.
  • Operátor join umožňuje kombinovat data z jedné tabulky Azure Resource Graphu s jednou tabulkou v pracovním prostoru služby Log Analytics.
  • Azure Monitor nevrací chyby dotazů Azure Resource Graphu.
  • Editor dotazů Log Analytics označuje platné dotazy Azure Resource Graphu jako chyby syntaxe. Například platný dotaz může znamenat chybu typu "Platný <název> neodkazuje na žádný známý sloupec, tabulku, proměnnou nebo funkci".
  • Tyto operátory nejsou podporovány: 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 nepodporuje dotazy napříč službami ve všech funkcích, ve kterých se používá KQL.

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

Návod

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').

Spojení dat z clusteru Azure Data Exploreru z jednoho tenanta s prostředkem Azure Monitor v jiném tenantovi

Dotazy napříč tenanty mezi službami se nepodporují. Jste přihlášeni do jednoho tenanta pro spuštění dotazu, který zahrnuje oba zdroje.

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 principály 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 přiřaďte prostředek Azure Monitoru k tenantovi 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ím řetězci.

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>

Návod

Operátor arg() je nyní k dispozici pro pokročilé proaktivní vyhledávání na portálu Microsoft Defender. Tato funkce umožňuje výsledky dotazování na tabulky Microsoft Sentinelu. Další informace najdete v dotazech Azure Resource Graphu v rozšířeném proaktivním vyhledávání.

Tady je několik ukázkových dotazů Azure Log Analytics, které používají nové možnosti dotazů napříč službami Azure Resource Graphu:

Příklad: Filtrování dotazu 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

Příklady: Vytvoření pravidla upozornění, které se vztahuje pouze na určité prostředky převzaté z dotazu arg()

Vylučte zdroje 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říklady případů 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 jakémkoli serveru, který obsahuje definovaný 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í na základě dotazu napříč službami z pracovního prostoru Log Analytics, postupujte podle pokynů v části Vytvořit nebo upravit pravidlo upozornění, kde vyberete svůj pracovní prostor Log Analytics na kartě Obor.

Návod

Spouštějte dotazy mezi službami z Azure Data Explorer a Azure Resource Graph do pracovního prostoru Log Analytics výběrem relevantního prostředku jako rozsahu svého 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 ke spojení dat v Azure Resource Graphu a 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"