Adatok lekérdezése Log Analytics-munkaterületeken, alkalmazásokban és erőforrásokban az Azure Monitorban
Kétféleképpen kérdezhet le adatokat több munkaterületről, alkalmazásból és erőforrásból:
- Kifejezetten a munkaterület, az alkalmazás vagy az erőforrás adatainak megadásával a munkaterület(), alkalmazás()vagy erőforrás() kifejezések használatával, a jelen cikkben leírtak szerint.
- Implicit módon erőforrás-környezeti lekérdezések használatával. Amikor egy adott erőforrás, erőforráscsoport vagy előfizetés kontextusában kérdez le, a lekérdezés az összes olyan munkaterületről lekéri a releváns adatokat, amelyek ezen erőforrások adatait tartalmazzák. Az erőforrás-környezet lekérdezései nem kérnek le adatokat a klasszikus Application Insights-erőforrásokból.
Ez a cikk bemutatja, hogyan kérdezhet workspace()
le adatokat több Log Analytics-munkaterületről, alkalmazásból és erőforrásból a , app()
és resource()
kifejezésekkel.
Ha más Microsoft Entra-bérlők előfizetéseit az Azure Lighthouse-on keresztül kezeli, a lekérdezésekbe belefoglalhatja az ezekben az ügyfélbérlőkben létrehozott Log Analytics-munkaterületeket.
Fontos
Ha munkaterület-alapú Application Insights-erőforrást használ, a telemetriát egy Log Analytics-munkaterület tárolja az összes többi naplóadattal együtt. A kifejezéssel workspace()
adatokat kérdezhet le több munkaterület alkalmazásaiból. Nincs szükség munkaterületközi lekérdezésre az ugyanazon a munkaterületen található több alkalmazás adatainak lekérdezéséhez.
A szükséges engedélyek
Művelet | A szükséges engedélyek |
---|---|
Munkaterület állapotának ellenőrzése | 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. |
Lekérdezés mentése | microsoft.operationalinsights/querypacks/queries/action a lekérdezést menteni kívánt lekérdezéscsomagra vonatkozó engedélyek, például a Log Analytics-közreműködő beépített szerepkörének megfelelően. |
Korlátozások
- Az erőforrás- és 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()
. - Egyetlen lekérdezésben legfeljebb 100 Log Analytics-munkaterületet vagy klasszikus Application Insights-erőforrást vehet fel.
- A nagy számú erőforrás lekérdezése jelentősen lelassíthatja a lekérdezést.
- A naplókeresési riasztásokban lévő erőforrásközi lekérdezések csak az aktuális ütemezettQueryRules API-ban támogatottak. Ha az örökölt Log Analytics Alerts API-t használja, át kell váltania az aktuális API-ra.
- A kereszterőforrásra, például egy másik munkaterületre mutató hivatkozásoknak explicitnek kell lenniük, és nem paraméterezhetők.
Lekérdezés munkaterületek, alkalmazások és erőforrások között függvények használatával
Ez a szakasz bemutatja, hogyan kérdezhet le munkaterületeket, alkalmazásokat és erőforrásokat függvényekkel és anélkül.
Lekérdezés függvény használata nélkül
Több erőforrást is lekérdezhet bármelyik erőforráspéldányból. Ezek az erőforrások lehetnek munkaterületek és alkalmazások kombinálva.
Példa egy lekérdezésre három munkaterületen:
union
Update,
workspace("00000000-0000-0000-0000-000000000001").Update,
workspace("00000000-0000-0000-0000-000000000002").Update
| where TimeGenerated >= ago(1h)
| where UpdateState == "Needed"
| summarize dcount(Computer) by Classification
Az egyesítésről, a hol és az operátorok összegzéséről további információt az egyesítő operátor, a where operátor és az összesítő operátor című témakörben talál.
Lekérdezés függvény használatával
Ha több Log Analytics-munkaterület és Application Insights-összetevő adatainak korrelációja erőforrás-alapú lekérdezésekkel történik, a lekérdezés összetetté és nehezen karbantarthatóvá válhat. Az Azure Monitor-napló lekérdezésekben lévő függvényeket kell használnia, hogy elkülönítse a lekérdezési logikát a lekérdezési erőforrások hatókörétől. Ez a módszer leegyszerűsíti a lekérdezési struktúrát. Az alábbi példa bemutatja, hogyan monitorozhat több Application Insights-összetevőt, és hogyan jelenítheti meg a sikertelen kérelmek számát alkalmazásnév alapján.
Hozzon létre egy olyan lekérdezést, mint az alábbi példa, amely az Application Insights-összetevők hatókörére hivatkozik. A withsource= SourceApp
parancs hozzáad egy oszlopot, amely a naplót küldő alkalmazásnevet jelöli. Mentse a lekérdezést függvényként az alias applicationsScoping
használatával.
// crossResource function that scopes my Application Insights components
union withsource= SourceApp
app('00000000-0000-0000-0000-000000000000').requests,
app('00000000-0000-0000-0000-000000000001').requests,
app('00000000-0000-0000-0000-000000000002').requests,
app('00000000-0000-0000-0000-000000000003').requests,
app('00000000-0000-0000-0000-000000000004').requests
Ezt a függvényt most már használhatja erőforrás-alapú lekérdezésekben, például az alábbi példában. A függvény aliasa applicationsScoping
az összes definiált alkalmazás kéréstáblájának egyesítését adja vissza. A lekérdezés ezután szűri a sikertelen kérelmeket, és alkalmazásonként jeleníti meg a trendeket. Az parse
operátor ebben a példában nem kötelező. Kinyeri az alkalmazás nevét a SourceApp
tulajdonságból.
applicationsScoping
| where timestamp > ago(12h)
| where success == 'False'
| parse SourceApp with * '(' applicationId ')' *
| summarize count() by applicationId, bin(timestamp, 1h)
| render timechart
Feljegyzés
Ez a módszer nem használható naplókeresési riasztásokkal, mert a riasztási szabály erőforrásainak ( beleértve a munkaterületeket és alkalmazásokat is) hozzáférés-ellenőrzése a riasztás létrehozásakor történik. A riasztás létrehozása után nem lehet új erőforrásokat hozzáadni a függvényhez. Ha inkább egy függvényt szeretne használni az erőforrások hatókörének meghatározásához a naplókeresési riasztásokban, a riasztási szabályt a portálon vagy egy Azure Resource Manager-sablonnal kell szerkesztenie a hatókörben lévő erőforrások frissítéséhez. Másik lehetőségként felveheti az erőforrások listáját a naplókeresési riasztási lekérdezésbe.
Log Analytics-munkaterületek lekérdezése munkaterület() használatával
A kifejezéssel workspace()
adatokat kérdezhet le egy adott munkaterületről ugyanabban az erőforráscsoportban, egy másik erőforráscsoportban vagy egy másik előfizetésben. Ezzel a kifejezéssel naplóadatokat vehet fel egy Application Insights-lekérdezésbe, és adatokat kérdezhet le több munkaterületen egy napló lekérdezésben.
Syntax
workspace(
Azonosító)
Argumentumok
*Identifier*
: Azonosítja a munkaterületet az alábbi táblázatban szereplő formátumok egyikével.
Azonosító | Leírás | Példa |
---|---|---|
ID (Azonosító) | A munkaterület GUID azonosítója | munkaterület("000000000-0000-0000-0000-0000000000") |
Azure-erőforrás azonosítója | Az Azure-erőforrás azonosítója | workspace("/subscriptions/000000000-0000-0000-0000-00000000000/resourcegroups/Contoso/providers/Microsoft.OperationalInsights/workspaces/contosoretail") |
Példák
workspace("00000000-0000-0000-0000-000000000000").Update | count
workspace("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Contoso/providers/Microsoft.OperationalInsights/workspaces/contosoretail").Event | count
union
( workspace("00000000-0000-0000-0000-000000000000").Heartbeat | where Computer == "myComputer"),
(app("00000000-0000-0000-0000-000000000000").requests | where cloud_RoleInstance == "myRoleInstance")
| count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat), (app("00000000-0000-0000-0000-000000000000").requests) | where TimeGenerated between(todatetime("2023-03-08 15:00:00") .. todatetime("2023-04-08 15:05:00"))
Lekérdezés klasszikus Application Insights-alkalmazások között alkalmazás() használatával
app
A kifejezéssel adatokat kérdezhet le egy adott klasszikus Application Insights-erőforrásból ugyanabban az erőforráscsoportban, egy másik erőforráscsoportban vagy egy másik előfizetésben. Ha munkaterület-alapú Application Insights-erőforrást használ, a telemetriát egy Log Analytics-munkaterület tárolja az összes többi naplóadattal együtt. A kifejezéssel workspace()
adatokat kérdezhet le több munkaterület alkalmazásaiból. Nincs szükség munkaterületközi lekérdezésre az ugyanazon a munkaterületen található több alkalmazás adatainak lekérdezéséhez.
Syntax
app(
Azonosító)
Argumentumok
*Identifier*
: Az alkalmazást az alábbi táblázatban szereplő formátumok egyikével azonosítja.
Azonosító | Leírás | Példa |
---|---|---|
ID (Azonosító) | Az alkalmazás GUID azonosítója | app("000000000-0000-0000-0000-0000000000") |
Azure-erőforrás azonosítója | Az Azure-erőforrás azonosítója | app("/subscriptions/000000000-0000-0000-0000-00000000000/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp") |
Példák
app("00000000-0000-0000-0000-000000000000").requests | count
app("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp").requests | count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat | where Computer == "myComputer"),
(app("00000000-0000-0000-0000-000000000000").requests | where cloud_RoleInstance == "myColumnInstance")
| count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat), (app("00000000-0000-0000-0000-000000000000").requests)
| where TimeGenerated between(todatetime("2023-03-08 15:00:00") .. todatetime("2023-04-08 15:05:00"))
Adatok korrelálása erőforrások között erőforrás() használatával
A resource
kifejezés egy erőforrásra hatókörrel rendelkező Azure Monitor-lekérdezésben használatos, amely adatokat kér le más erőforrásokból.
Syntax
resource(
Azonosító)
Argumentumok
*Identifier*
: Azonosítja azt az erőforrást, erőforráscsoportot vagy előfizetést, amelyből az adatokat korrelálni szeretné.
Azonosító | Leírás | Példa |
---|---|---|
Erőforrás | Az erőforrás adatait tartalmazza. | resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm") |
Erőforráscsoport vagy előfizetés | Az erőforrás és az összes benne lévő erőforrás adatait tartalmazza. | resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup) |
Példák
union (Heartbeat),(resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm").Heartbeat) | summarize count() by _ResourceId, TenantId
union (Heartbeat),(resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup").Heartbeat) | summarize count() by _ResourceId, TenantId
Következő lépések
Az Azure Monitor naplóadatainak elemzésével áttekintheti a napló lekérdezéseket és az Azure Monitor naplóadatainak strukturálását.