Adatok korrelálása az Azure Data Explorerben és az Azure Resource Graphban egy Log Analytics-munkaterület adataival
Az Azure Data Explorer és az Azure Resource Graph adatait a Log Analytics-munkaterületen lévő adatokkal és az Application Insights-erőforrásokkal korrelálva javíthatja az Azure Monitor-naplókban végzett elemzést. 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átort hint
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 különböző bérlőkből származó Azure Data Explorer-fürtökhöz
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()
ésapp()
. - 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áljonexternal_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ésseladx("").<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.
- Ha nem használja a Tippet, az illesztések nem támogatottak.
- 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"