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 Přehledy prostředky pro 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.

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

Pokud místo sjednocení použijete join operátor , musíte použít hint ke kombinování dat v clusteru Azure Data Exploreru s pracovním prostorem služby Log Analytics. Použijte Hint.remote={Direction of the Log Analytics Workspace}.

Příklad:

AzureDiagnostics
| join hint.remote=left adx("cluster=ClusterURI").AzureDiagnostics on (ColumnName)

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í do clusterů 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>

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í.

Omezení

Obecná omezení dotazů napříč službami

  • Dotazy mezi službami nepodporují parametrizované funkce a funkce, jejichž definice zahrnuje jiné výrazy mezi pracovními prostory nebo mezi službami, včetně adx(), , arg()resource(), workspace()a app().
  • Dotazy napříč službami podporují pouze funkce .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
  • V názvech databází se rozlišují malá a velká písmena.
  • Identifikace sloupce časového razítka v clusteru se nepodporuje. Rozhraní API pro dotazy Log Analytics nepředá časový filtr.
  • Dotazy napříč službami podporují pouze načítání dat.
  • Privátní propojení (privátní koncové body) a omezení IP adres nepodporují dotazy mezi službami.
  • mv-expand je omezena na 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, 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>.

Omezení dotazů napříč službami v Azure Resource Graphu

  • Microsoft Sentinel nepodporuje dotazy mezi službami do Azure Resource Graphu.
  • Při dotazování dat Azure Resource Graphu ze služby Azure Monitor:
    • 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()

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"

Další kroky