Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Monitor-naplók elemzésének továbbfejlesztése az Azure Data Explorer és az Azure Resource Graph adatainak a Log Analytics-munkaterületen és az Application Insights-erőforrásokban lévő adatokkal való korrelációjával. 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. Bár a Microsoft Sentinel Log Analytics-munkaterületeken tárolja az adatokat, és támogatja az Azure Data Explorer szolgáltatásközi lekérdezéseit, a Microsoft Sentinel nem minden funkciója támogatja az Azure Resource Graphba történő lekérdezéseket.
Szolgáltatásközi lekérdezések futtatása a Kusto Query Language (KQL) lekérdezéseket támogató ügyféleszközökkel, beleértve a Log Analyticst az Azure Portalon, a munkafüzeteket, a PowerShellt és a REST API-t.
Előfeltételek
| Erőforrás | Engedély szükséges |
|---|---|
| Log Analytics-munkaterület |
Microsoft.OperationalInsights/workspaces/query/*/read A Log Analytics munkaterületeken lekérdezéseket végezhet, amelyeket például a biztosít. |
| Azure Resource Graph | Az Azure Resource Graphban lekérdezett erőforrásokra vonatkozó engedélyek olvasása |
| Azure Data Explorer | Az Azure Data Explorerben lekérdezett táblák engedélyeinek megtekintése |
Implementálási szempontok
A szolgáltatásközi lekérdezések nem támogatottak a következő esetekben:
- Kormányzati felhők
- Ip-korlátozásokkal vagy privát kapcsolattal (privát végpontokkal) konfigurált Adatkezelő-fürtök
Általános keresztszolgáltatás-szempontok
- Az adatbázisnevek megkülönböztetik a kis- és nagybetűket.
- Olyan nem paraméteres függvényeket és függvényeket használjon, amelyek definíciója nem tartalmaz más munkaterületek közötti vagy szolgáltatásközi kifejezéseket. Az elfogadható függvények közé tartozik a
adx(),arg(),resource()workspace()ésapp()a . - A szolgáltatásközi lekérdezések csak az adatlekérést támogatják.
- A szolgáltatásközi lekérdezések csak parancsokat támogatnak. Ez a funkció lehetővé teszi a fürtök közötti lekérdezések számára, hogy közvetlenül hivatkozzanak egy Azure Monitor, egy Azure Data Explorer vagy egy Azure Resource Graph táblázatos függvényére.
.showa szolgáltatásközi lekérdezés által támogatott parancsok:.show functions.show function {FunctionName}.show database {DatabaseName} schema as json - A fürtben lévő Időbélyeg oszlopának azonosítása nem támogatott. A Log Analytics Query API nem adja át az időszűrőt.
-
mv-expandlegfeljebb 2000 rekordot támogat. - 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>. - Ha a
operátort használja egyesítés helyett, akkor a segítségével kell kombinálnia az Azure Data Explorer vagy az Azure Resource Graph adatokat a Log Analytics munkaterület adataival. Használja az Hint.remote={direction of the Log Analytics workspace}parancsot.
Például:AzureDiagnostics | join hint.remote=left adx("cluster=ClusterURI").AzureDiagnostics on (ColumnName)
Az Azure Resource Graph szolgáltatásközi lekérdezési szempontjai
- A
arglekérdezés része csak az első 1000 rekordot adja vissza. Tartsa ezt szem előtt, hajoin-tal kombinálja, mert előfordulhat, hogy a korlát elérésekor hiányoznak bejegyzések. - Az
joinoperátor lehetővé teszi, hogy egyetlen Azure Resource Graph-táblából származó adatokat kombináljon egy táblával a Log Analytics-munkaterületen. - 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. Egy érvényes lekérdezés például a következőhöz hasonló hibát jelezhet: "Az érvényes név <> nem hivatkozik ismert oszlopra, táblára, változóra vagy függvényre."
- Ezek az operátorok nem támogatottak:
smv-apply(),rand(), ,arg_max(),arg_min(),avg()avg_if(),countif(),sumif(),percentile(),percentiles(),percentilew(),percentilesw(),stdev()stdevif()stdevp()variance()variancep()varianceif()bin_at. - A Microsoft Sentinel nem támogatja a szolgáltatásközi lekérdezéseket minden olyan funkcióban, amelyben a KQL-t használják.
Adatok lekérdezése az Azure Data Explorerben az adx() használatával
Adja meg az Azure Data Explorer-fürt azonosítóját, a lekérdezés adx mintáján belül, majd az adatbázis nevét és a 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
Használja a union parancsot a fürttáblák Log Analytics-munkaterülettel való kombinálásához.
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: .
Adatok összekapcsolása egy Azure Data Explorer fürtből az egyik bérlőnél egy másik bérlő Azure Monitor-erőforrásával.
A szolgáltatások közötti bérlőközi lekérdezések nem támogatottak. Ön egyetlen bérlőhöz van bejelentkezve egy olyan lekérdezés futtatásához, amely mindkét erőforrást lefedi.
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. A felhasználói azonosítóját jogosult felhasználóként adja hozzá a B bérlőnél 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 bejelentkeztet arra a bérlői fiókra, 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, egyértelműen meg kell adnia TenantId a kapcsolati sztringben:
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>
Tipp.
Az arg() operátor mostantól a Microsoft Defender portálon is elérhető a speciális kereséshez. Ez a funkció lehetővé teszi a Microsoft Sentinel-táblák lekérdezését lehetővé tevő eredményeket. További információ: Azure Resource Graph-lekérdezések a speciális keresésben.
Í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:
Példa: 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
Példák: Olyan riasztási szabály létrehozása, amely csak az arg() lekérdezésből származó egyes erőforrásokra vonatkozik
Címkék alapján zárja ki az erőforrásokat. Ne aktiváljon például címkével ellátott Test virtuális gépekre vonatkozó riasztásokat.
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 példahaszná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 meghatározott 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.
Tipp.
Futtasson szolgáltatásközi lekérdezéseket az Azure Data Explorerből és az Azure Resource Graphból egy Log Analytics-munkaterületre úgy, hogy kiválasztja a megfelelő erőforrást a riasztás hatóköreként.
Azure Resource Graph-táblák kombinálása Log Analytics-munkaterülettel
Használja a union parancsot a fürttáblák Log Analytics-munkaterülettel való kombinálásához.
Példa:
union AzureActivity, arg("").Resources
| take 10
let CL1 = arg("").Resources ;
union AzureActivity, CL1 | take 10
Amikor az join operátort használja az egyesítés helyett, az Azure Resource Graph adatainak a Log Analytics-munkaterületen lévő adatokkal való kombinálásához egy hint-t kell használnia. 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"