Megosztás a következőn keresztül:


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 használhatja a workspace(), app() és resource() kifejezéseket adatok lekérdezéséhez több Log Analytics-munkaterületből, alkalmazásból és erőforrásból.

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()és app().
  • 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 a munkaterületek és alkalmazások kombinációi.

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 applicationsScopinghaszná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.

Szintaxis

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("00000000-0000-0000-0000-000000000000")
Azure-erőforrás azonosítója Az Azure-erőforrás azonosítója workspace("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Contoso/providers/Microsoft.OperationalInsights/workspaces/contosoretail")

Példák

workspace("00000000-0000-0000-0000-000000000000").Update | count
workspace("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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.

Szintaxis

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("00000000-0000-0000-0000-000000000000")
Azure-erőforrás azonosítója Az Azure-erőforrás azonosítója app("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp")

Példák

app("00000000-0000-0000-0000-000000000000").requests | count
app("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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.

Szintaxis

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.