Adatok korrelálása az Azure Data Explorerben és az Azure Resource Graphban egy Log Analytics-munkaterület adataival

Az Azure Data Explorerben és az Azure Resource Graphban lévő adatokat a Log Analytics-munkaterület és az alkalmazás Elemzések erőforrások adataival korrelálva javíthatja az elemzést az Azure Monitor-naplókban. A Log Analytics-munkaterületeken is adatokat tároló Microsoft Sentinel az Azure Data Explorer szolgáltatásközi lekérdezéseit támogatja, az Azure Resource Graph-ba azonban nem. Ez a cikk bemutatja, hogyan futtathat szolgáltatásközi lekérdezéseket bármely olyan szolgáltatásból, amely adatokat tárol egy Log Analytics-munkaterületen.

Szolgáltatásközi lekérdezések futtatása a Kusto lekérdezésnyelv (KQL) lekérdezéseket támogató ügyféleszközökkel, beleértve a Log Analytics webes felhasználói felületét, a munkafüzeteket, a PowerShellt és a REST API-t.

A szükséges engedélyek

Egy olyan szolgáltatásközi lekérdezés futtatásához, amely az Azure Data Explorerben vagy az Azure Resource Graphban lévő adatokat egy Log Analytics-munkaterület adataival korrelálja, a következőkre van szüksége:

  • Microsoft.OperationalInsights/workspaces/query/*/read az Ön által lekérdezett Log Analytics-munkaterületekre vonatkozó engedélyek, például a Log Analytics-olvasó beépített szerepkörének megfelelően.
  • Olvasói engedélyek az Azure Resource Graphban lekérdezett erőforrásokhoz.
  • Megtekintői engedélyek az Azure Data Explorerben lekérdezett táblákhoz.

Adatok lekérdezése az Azure Data Explorerben az adx() használatával

Adja meg egy Azure Data Explorer-fürt azonosítót a adx mintán belüli lekérdezésben, majd az adatbázis nevét és táblát.

adx('https://help.kusto.windows.net/Samples').StormEvents

Azure Data Explorer-fürttáblák kombinálása Log Analytics-munkaterülettel

A parancs használatával kombinálhatja a union fürttáblákat egy Log Analytics-munkaterülettel.

Példa:

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

Tipp.

A rövidített formátum engedélyezett: ClusterName/InitialCatalog. Például adx('help/Samples') a következőre adx('help.kusto.windows.net/Samples')van lefordítva: .

Ha az egyesítés helyett az join operátorthint használja, az Azure Data Explorer-fürtben lévő adatokat a Log Analytics-munkaterülettel kell kombinálnia. Használja az Hint.remote={Direction of the Log Analytics Workspace} parancsot.

Példa:

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

Adatok csatlakoztatása egy Azure Data Explorer-fürtből az egyik bérlőben egy Másik Azure Monitor-erőforrással

A bérlőközi lekérdezések nem támogatottak a szolgáltatások között. Egyetlen bérlőbe van bejelentkezve a mindkét erőforrásra kiterjedő lekérdezés futtatásához.

Ha az Azure Data Explorer-erőforrás az A bérlőben van, és a Log Analytics-munkaterület a B bérlőben található, használja az alábbi módszerek egyikét:

  • Az Azure Data Explorer használatával szerepköröket adhat hozzá a különböző bérlőkben lévő tagokhoz. Adja hozzá a felhasználói azonosítóját a B bérlőben, jogosult felhasználóként, az Azure Data Explorer-fürtön. Ellenőrizze, hogy az Azure Data Explorer-fürt TrustedExternalTenant tulajdonsága tartalmazza-e a B bérlőt. Futtassa a kereszt lekérdezést teljes mértékben a B bérlőben.
  • A Lighthouse használatával kivetítheti az Azure Monitor-erőforrást az A bérlőbe.

Csatlakozás az Azure Data Explorer-fürtökre különböző bérlőkről

A Kusto Explorer automatikusan bejelentkezik arra a bérlőre, amelyhez eredetileg a felhasználói fiók tartozik. Ha más bérlők erőforrásait szeretné elérni ugyanazzal a felhasználói fiókkal, explicit módon meg kell adnia TenantId a kapcsolati sztring:

Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=TenantId

Adatok lekérdezése az Azure Resource Graphban az arg() (előzetes verzió) használatával

Adja meg a arg("") mintát, majd az Azure Resource Graph-tábla nevét.

Példa:

arg("").<Azure-Resource-Graph-table-name>

Íme néhány minta Azure Log Analytics-lekérdezés, amelyek az új Azure Resource Graph szolgáltatásközi lekérdezési képességeket használják:

  • Log Analytics-lekérdezés szűrése egy Azure Resource Graph-lekérdezés eredményei alapján:

    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
    
  • Hozzon létre egy riasztási szabályt, amely csak az ARG-lekérdezésből származó egyes erőforrásokra vonatkozik:

    • Zárja ki az erőforrásokat címkék alapján – például ne aktiváljon riasztásokat a "Teszt" címkével rendelkező virtuális gépekhez.

      arg("").Resources
      | where tags.environment=~'Test'
      | project name 
      
    • Kérje le a processzorkihasználtsággal kapcsolatos teljesítményadatokat, és szűrjön az erőforrásokra a "prod" címkével.

      InsightsMetrics
      | where Name == "UtilizationPercentage"
      | lookup (
          arg("").Resources 
          | where type == 'microsoft.compute/virtualmachines' 
          | project _ResourceId=tolower(id), tags
          )
          on _ResourceId
      | where tostring(tags.Env) == "Prod"
      

További használati esetek:

  • Címkével állapítsa meg, hogy a virtuális gépek 24x7-et futnak-e, vagy éjszaka le kell-e állítani.
  • Riasztások megjelenítése minden olyan kiszolgálón, amely bizonyos számú magot tartalmaz.

Riasztás létrehozása szolgáltatásközi lekérdezés alapján a Log Analytics-munkaterületről

Ha szolgáltatásközi lekérdezés alapján szeretne riasztási szabályt létrehozni a Log Analytics-munkaterületről, kövesse a Naplókeresési riasztási szabály létrehozása vagy szerkesztése, a Log Analytics-munkaterület kiválasztásának lépéseit a Hatókör lapon.

Feljegyzés

Szolgáltatásközi lekérdezéseket is futtathat az Azure Data Explorerből és az Azure Resource Graphból egy Log Analytics-munkaterületre, ha kiválasztja a megfelelő erőforrást a riasztás hatóköreként.

Korlátozások

Általános szolgáltatásközi lekérdezési korlátozások

  • A szolgáltatásközi lekérdezések nem támogatják a paraméteres függvényeket és függvényeket, amelyek definíciója más munkaterületek közötti vagy szolgáltatásközi kifejezéseket is tartalmaz, beleértve a adx(), arg(), resource(), workspace()és app().
  • A szolgáltatásközi lekérdezések csak a ".show" függvényeket támogatják. Ez a funkció lehetővé teszi a fürtök közötti lekérdezések számára, hogy közvetlenül hivatkozzon egy Azure Monitor, az Azure Data Explorer vagy az Azure Resource Graph táblázatos függvényére. A szolgáltatásközi lekérdezés a következő parancsokat támogatja:
    • .show functions
    • .show function {FunctionName}
    • .show database {DatabaseName} schema as json
  • Az adatbázisnevek megkülönböztetik a kis- és nagybetűket.
  • A fürt Időbélyeg oszlopának azonosítása nem támogatott. A Log Analytics Query API nem adja át az időszűrőt.
  • A szolgáltatásközi lekérdezések csak az adatlekérést támogatják.
  • A privát kapcsolat (privát végpontok) és az IP-korlátozások nem támogatják a szolgáltatásközi lekérdezéseket.
  • mv-expand legfeljebb 2000 rekord lehet.
  • Az Azure Monitor-naplók nem támogatják a external_table() függvényt, így külső táblákat kérdezhet le az Azure Data Explorerben. Külső tábla lekérdezéséhez definiáljon external_table(<external-table-name>) paraméter nélküli függvényt az Azure Data Explorerben. Ezután meghívhatja a függvényt a kifejezéssel adx("").<function-name>.

Az Azure Resource Graph szolgáltatásközi lekérdezési korlátozásai

  • A Microsoft Sentinel nem támogatja az Azure Resource Graph szolgáltatásközi lekérdezését.
  • Amikor Azure Resource Graph-adatokat kérdez le az Azure Monitorból:
    • A lekérdezés csak az első 1000 rekordot adja vissza.
    • Az Azure Monitor nem ad vissza Azure Resource Graph-lekérdezési hibákat.
    • A Log Analytics lekérdezésszerkesztője szintaxishibákként jelöli meg az érvényes Azure Resource Graph-lekérdezéseket.
    • Ezek az operátorok nem támogatottak: smv-apply(), rand(), , arg_max(), arg_min(), avg_if()avg(), countif(), sumif()varianceif()variancep()variance()stdevp()stdev()percentilew()stdevif()percentile()percentiles()percentilesw().

Azure Resource Graph-táblák kombinálása Log Analytics-munkaterülettel

A parancs használatával kombinálhatja a union fürttáblákat egy Log Analytics-munkaterülettel.

Példa:

union AzureActivity, arg("").Resources
| take 10
let CL1 = arg("").Resources ;
union AzureActivity, CL1 | take 10

Ha az operátort join egyesítés helyett használja, az Azure Resource Graph adatainak a Log Analytics-munkaterületen lévő adatokkal való kombinálásához kell használniahint. Használja az Hint.remote={Direction of the Log Analytics Workspace} parancsot. Példa:

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"

Következő lépések