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 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()é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 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 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.

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.