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.
A Azure Monitor segítségével naplókat, metrikákat és riasztásokat gyűjthet a JavaScript-alkalmazásokban és az általuk használt Azure szolgáltatásokban. Azure Monitor a telemetria gyűjtését és tárolását ellátó központi platformszolgáltatás. Alkalmazásait az Application Insights segítségével is rendszerítheti. Figyelnie kell az üzemeltetett alkalmazásszolgáltatást, az alkalmazás által integrálható Azure szolgáltatásokat és magát az alkalmazás forráskódját.
Naplók, metrikák és riasztások ismertetése
A telemetriai adatok az alkalmazásokból és szolgáltatásokból az állapotuk, teljesítményük és használatuk figyelése érdekében gyűjtött adatok. A Azure a telemetria naplókba, metrikákba és riasztásokba van kategorizálva.
Azure négyféle telemetriát kínál:
| Telemetriai típus | Mit ad önnek? | Hol található az egyes szolgáltatásokhoz? |
|---|---|---|
| Mértékek | Numerikus, idősoros adatok (CPU, memória stb.) |
Metrikák a portálon vagy az monitor metrics a parancssori felületen |
| Figyelmeztetések | Proaktív értesítések a küszöbértékek elérésekor |
Riasztások a portálon vagy az monitor metrics alert a parancssori felületen |
| Naplók | Szöveges események és diagnosztikák (web, alkalmazás) | App Service-naplók, Funkciók Monitorozás, Konténeralkalmazások diagnosztika |
| Egyéni naplók | Saját alkalmazástelemetria az App Insightson keresztül | Az Application Insights-erőforrás Naplók (Trace) táblája |
Válassza ki a megfelelő telemetriát a kérdéséhez:
| Forgatókönyv | Naplók használata... | Metrikák használata... | Riasztások használata... |
|---|---|---|---|
| "A webalkalmazásom elindult és válaszolt?" | App Service webkiszolgálói naplók (naplók) | Nincs adat. | Nincs adat. |
| "A függvényem időtúllépést vagy hibát jelez?" | Függvénymeghívási naplók (Monitor) | Függvényvégrehajtás időtartamának metrikája | Riasztás a(z) ">0 függvényhiba" miatt |
| "Mennyire van kihasználva a szolgáltatásom, és skálázható-e?" | Nincs adat. | Szolgáltatás átviteli sebessége/CPU a metrikákban | Automatikus skálázási riasztás a CPU% esetében, ha meghaladja a 70% szintet > |
| Milyen kivételeket dob a kódom? | Egyéni nyomkövetési naplók az Application Insightsban | Nincs adat. | "ServerExceptions >0" riasztás |
| "Túlléptem a tranzakciós vagy kvótakorlátokat?" | Nincs adat. | Kvótával kapcsolatos metrikák (tranzakciók, szabályozás) | Riasztás a "ThrottlingCount >0" beállításról |
Költségoptimalizálás
Jelentősen csökkentheti az Azure Monitor költségeit a konfigurációs beállítások legjobb gyakorlatainak, valamint a gyűjtött adatok mennyiségének csökkentésére szolgáló lehetőségek megismerésével.
Naplózás és metrikák engedélyezése az összes Azure erőforráshoz
A Azure minden szolgáltatása saját naplózási és metrikafunkciókkal rendelkezik. Engedélyezze a naplózást minden Azure erőforráson, hogy biztosan rendelkezzen a teljes teljes körű alkalmazás figyeléséhez szükséges telemetriával.
Azure Monitor erőforrás létrehozása
Létrehozhat egy Azure Monitor erőforrást, amely naplókat és metrikákat gyűjt a Azure erőforrásokból. Ez az erőforrás általában egy Log Analytics munkaterület, ahol a naplókat és metrikákat tárolják.
Ezt az erőforrást többféleképpen is létrehozhatja:
- Azure portál: A Azure portál használatával hozzon létre egy Log Analytics munkaterületet, és konfigurálja az erőforrások diagnosztikai beállításait.
- Azure CLI: A Azure CLI használatával hozzon létre egy Log Analytics munkaterületet, és konfigurálja az erőforrások diagnosztikai beállításait.
- PowerShell: A PowerShell használatával hozzon létre egy Log Analytics munkaterületet, és konfigurálja az erőforrások diagnosztikai beállításait.
- Bicep: Bicep-sablonok használatával deklaratív módon definiálhatja és helyezheti üzembe a Azure Monitor-erőforrásokat.
Log Analytics munkaterület létrehozása az Azure CLI használatával
A Azure CLI használatával hozzon létre egy Log Analytics munkaterületet, ahol a naplókat és metrikákat tárolja. Példa:
# Variables
resourceGroup="myResourceGroup"
location="eastus"
workspaceName="myWorkspace"
webAppName="myWebApp"
diagName="${webAppName}/appServiceLogging"
SUBSCRIPTION_ID=$(az account show --query id -o tsv)
# 1) Create a Log Analytics workspace
workspaceId=$(az monitor log-analytics workspace create \
--resource-group $resourceGroup \
--workspace-name $workspaceName \
--location $location \
--query id -o tsv)
# 2) Enable diagnostic settings on your App Service
az monitor diagnostic-settings create \
--name "$diagName" \
--resource "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$resourceGroup/providers/Microsoft.Web/sites/$webAppName" \
--workspace $workspaceId \
--logs '[{"category": "Administrative", "enabled": true},{"category":"AppServiceConsoleLogs","enabled":true},{"category":"AppServiceHTTPLogs","enabled":true}]' \
--metrics '[{"category":"AllMetrics","enabled":true}]'
Log Analytics-munkaterület létrehozása a Bicep használatával
A Bicep használatával deklaratív módon definiálhatja és helyezheti üzembe a Azure Monitor-erőforrásokat. Ez a példa létrehoz egy Log Analytics munkaterületet, és konfigurálja az App Service diagnosztikai beállításait.
Az IaC-sablonokba belefoglalhatja a naplózást, a metrikákat és a riasztásokat egy Bicep diagnosticSettings erőforrás-referenciával. Példa (Bicep):
param webAppName string
resource webApp 'Microsoft.Web/sites@2022-09-01' existing = {
name: webAppName
}
resource logAnalytics 'Microsoft.OperationalInsights/workspaces@2022-10-01' = {
name: 'myWorkspace'
location: resourceGroup().location
}
resource diagSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
name: '${webApp.name}/appServiceLogging'
properties: {
workspaceId: logAnalytics.id
logs: [
{ category: 'AppServiceConsoleLogs'; enabled: true }
{ category: 'AppServiceHTTPLogs'; enabled: true }
]
metrics: [
{ category: 'AllMetrics'; enabled: true }
]
}
}
Riasztások létrehozása az erőforrásokhoz
A metrikákra vonatkozó riasztásokat a Azure portálon vagy a Azure CLI használatával állíthatja be. A riasztások tartalmazhatnak bizonyos metrikákat, kommunikációs streameket (például e-maileket) és gyakoriságot.
Az alábbi példák segítségével metrikariasztásokat hozhat létre a portálon vagy programozási úton.
- Azure CLI: gyors telepítés
az monitor metrics alertáltal - Bicep: deklaratív IaC-architektúra meghatározás
Microsoft.Insights/metricAlerts
A riasztások megadhatnak célmetrikákat, értesítési csatornákat (e-mail, webhook), súlyosságot, kiértékelési gyakoriságot és műveletcsoportokat.
az monitor metrics alert create \
--name HighCpuAlert \
--resource-group MyResourceGroup \
--scopes /subscriptions/{sub}/resourceGroups/MyResourceGroup/providers/Microsoft.Web/sites/myApp \
--condition "avg CpuPercentage > 70" \
--description "Alert when CPU goes above 70%" \
--severity 2 \
--window-size 5m \
--evaluation-frequency 1m \
--action /subscriptions/{sub}/resourceGroups/MyResourceGroup/providers/microsoft.insights/actionGroups/MyActionGroup
resource cpuAlert 'Microsoft.Insights/metricAlerts@2018-03-01' = {
name: 'highCpuAlert'
location: resourceGroup().location
properties: {
description: 'Alert when CPU goes above 70%'
severity: 2
enabled: true
scopes: [
webApp.id
]
evaluationFrequency: 'PT1M'
windowSize: 'PT5M'
criteria: {
allOf: [
{
criterionType: 'StaticThresholdCriterion'
name: 'HighCpu'
metricName: 'CpuPercentage'
metricNamespace: 'Microsoft.Web/sites'
operator: 'GreaterThan'
threshold: 70
timeAggregation: 'Average'
}
]
}
autoMitigate: false
actions: [
{
actionGroupId: '/subscriptions/{sub}/resourceGroups/MyResourceGroup/providers/microsoft.insights/actionGroups/MyActionGroup'
}
]
}
}
Naplóadatok megtekintése
A naplóadatok Azure portálon való megtekintéséhez lépjen a Log Analytics munkaterületre, és válassza a Naplók lehetőséget. Kusto Query Language (KQL) lekérdezéseket futtathat a naplókon.
Naplók megtekintése
Használja az alábbi táblázatot, hogy többet megtudjon a naplók közvetítéséről.
Azure MCP-kiszolgáló
A helyi fejlesztés során az Azure MCP Servermonitor eszközzel anélkül kérdezhet le naplókat, hogy elhagyná az IDE-t. Miután telepítette a kiszolgálót a következő Copilot kérések például a következők:
- Munkaterületek listázása: "Az előfizetés összes Log Analytics munkaterületének megjelenítése".
- Táblák keresése: "A munkaterület összes táblájának listázása "security-logs"
- Összetett lekérdezés: "A webkiszolgálók processzorhasználati trendjének megjelenítése az elmúlt 24 órában"
Add hozzá a naplózást a kódhoz
Az alkalmazásnaplózáshoz az Application Insights az alábbiakat nyújtja:
- Standard naplózás a Azure szolgáltatásban és a forráskódban az inicializálástól függően.
- Egyéni naplózás az üzembehelyezési folyamatból és a forráskódban.
Standard konzolnaplózás (stdout/stderr)
Azure webalkalmazások és Azure Functions automatikusan egyéni naplózást biztosítanak stdout és stderr, ha a megfelelő naplózási függvényeket használja:
- A webalkalmazások használják a
console.log('your message here'). - Függvényalkalmazások használják a
context.log('your message here').
Egyéni Application Insights-naplózás hozzáadása
A Application Insights használatával részletesebb egyéni naplózást adhat hozzá a Azure Monitor. Az Application Insights kiszolgálói (Node.js) és ügyféloldali (böngészős) forgatókönyveket kínál:
- Adja hozzá az Application Insights SDK-t a forráskódhoz.
- Készítsen naplót a Node.js-ból egy npm csomag használatával.
- Egyéni konzolnaplók gyűjtéséhez mindenképpen konfigurálja a Node.js SDK-t
enableAutoCollectConsole: true.
- Egyéni konzolnaplók gyűjtéséhez mindenképpen konfigurálja a Node.js SDK-t
- Jelentkezzen be az ügyfélkódból egy npm-csomag használatával.
- Jelentkezzen be a Kubernetes-fürtbe vagy Azure virtuális gépbe.
SDK-folyamatnaplók engedélyezése (@Azure/logger)
Az SDK részletességének szabályozása a környezeti változó vagy az AZURE_LOG_LEVEL@azure/logger npm-csomag használatával:
import { setLogLevel } from "@azure/logger";
// Options: 'error', 'warning', 'info', 'verbose'
setLogLevel(process.env.AZURE_LOG_LEVEL || "info");
Az Application Insights Node.js SDK konfigurálása
Inicializálja az Application Insights for Node.js SDK-t mintavételezéssel, függőséggyűjtéssel és konzolnapló-rögzítéssel:
import appInsights from "applicationinsights";
appInsights
.setup(process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR_CONNECTION_STRING>")
.setAutoCollectConsole(true, true) // collect console.log
.setAutoCollectDependencies(true) // track outgoing requests
.setInternalLogging(false, true) // SDK internal logs
.start();
// Optional: add custom properties to all telemetry
appInsights.defaultClient.commonProperties = { serviceName: "my-service" };
Korreláció és elosztott nyomkövetés hozzáadása
Az Application Insights SDK automatikusan injektálja a műveletet és a korrelációs azonosítókat a kérelmekbe. Egyéni korreláció vagy tulajdonságok hozzáadása:
appInsights.defaultClient.trackTrace({
message: "Custom trace",
properties: { userId: user.id }
});
További információ: elosztott nyomkövetési útmutató
Telemetriai adatok kiürítése fejlesztői szkriptekben
Győződjön meg arról, hogy a naplók küldése a folyamatból való kilépés előtt történik a helyi fejlesztés során:
appInsights.defaultClient.flush({
callback: () => process.exit(0)
});
Ügyféloldali telemetria beállítása
Ügyfélalkalmazások esetén használja a @microsoft/applicationinsights-web csomagot :
import { ApplicationInsights } from "@microsoft/applicationinsights-web";
const ai = new ApplicationInsights({ config: {
connectionString: "<YOUR_CONNECTION_STRING>",
enableAutoRouteTracking: true
}});
ai.loadAppInsights();