Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí Azure Monitor můžete shromažďovat protokoly, metriky a upozornění napříč javascriptovými aplikacemi a službami Azure, na které závisí. Azure Monitor je centrální služba platformy, která shromažďuje a ukládá vaše telemetrická data. Aplikace můžete instrumentovat pomocí Application Insights. Měli byste monitorovat hostované aplikační služby, Azure služby, se kterými se aplikace integruje, a samotný zdrojový kód aplikace.
Rozumět protokolům, metrikám a upozorněním
Telemetrie jsou data shromážděná z vašich aplikací a služeb za účelem monitorování jejich stavu, výkonu a využití. V Azure se telemetrie kategorizuje do protokolů, metrik a upozornění.
Azure nabízí čtyři druhy telemetrie:
| Typ telemetrie | Co vám to dává | Kde ji najít pro každou službu |
|---|---|---|
| Metodiky | Číselná data, data časových řad (procesor, paměť atd.) |
Metriky na portálu nebo az monitor metrics v rozhraní příkazového řádku |
| Výstrahy | Proaktivní oznámení při dosažení prahových hodnot |
Upozornění na portálu nebo az monitor metrics alert rozhraní příkazového řádku |
| Záznamy | Textové události a diagnostika (web, aplikace) | Protokoly služby App Service, monitorování funkcí, diagnostika aplikací kontejnerů |
| Vlastní protokoly | Vlastní telemetrie aplikací prostřednictvím App Insights | Tabulka protokolů (trasování) prostředku Application Insights |
Vyberte správnou telemetrii pro vaši otázku:
| Scénář | Použijte protokoly... | Použijte metriky... | Používat výstrahy... |
|---|---|---|---|
| "Spustila se moje webová aplikace a reagovala?" | Protokoly webového serveru služby App Service (protokoly) | není k dispozici | není k dispozici |
| Může moje funkce vypršet časově nebo selhat? | Protokoly volání funkcí (Monitor) | Metrika doby trvání provádění funkce | Výstraha na "Chyby funkce >0" |
| "Jak zaneprázdněná je moje služba a dá se škálovat?" | není k dispozici | Propustnost služby / procesor v metrikách | Upozornění automatického škálování na% > procesoru 70% |
| "Jaké výjimky vyvolává můj kód?" | Vlastní protokoly trasování v Application Insights | není k dispozici | Upozornění na ServerExceptions >0 |
| "Překročil(a) jsem limity transakcí nebo kvót?" | není k dispozici | Metriky související s kvótou (transakce, omezování) | Upozornění na "ThrottlingCount >0" |
Optimalizace nákladů
Náklady pro Azure Monitor můžete výrazně snížit pochopením osvědčených postupů těchto možností konfigurace a příležitostí ke snížení množství dat, která shromažďuje.
Povolení protokolování a metrik pro všechny prostředky Azure
Každá služba v Azure má své vlastní možnosti protokolování a metrik. Povolte protokolování u každého prostředku Azure, abyste měli jistotu, že máte potřebnou telemetrii pro monitorování celé aplikace od začátku do konce.
Vytvoření prostředku Azure Monitor
Můžete vytvořit prostředek Azure Monitor, který bude shromažďovat protokoly a metriky z Azure prostředků. Tento prostředek je obvykle pracovním prostorem Log Analytics, kde se ukládají protokoly a metriky.
Tento prostředek můžete vytvořit několika způsoby:
- Azure portal: Pomocí portálu Azure vytvořte pracovní prostor Log Analytics a nakonfigurujte nastavení diagnostiky pro vaše prostředky.
- Azure CLI: Pomocí Azure CLI vytvořte pracovní prostor Log Analytics a nakonfigurujte nastavení diagnostiky pro vaše prostředky.
- PowerShell: Pomocí PowerShell vytvořte pracovní prostor Log Analytics a nakonfigurujte nastavení diagnostiky pro vaše prostředky.
- Bicep: Deklarativně definujte a nasaďte prostředky Azure Monitor pomocí šablon Bicep.
Vytvoření pracovního prostoru Log Analytics pomocí Azure CLI
Pomocí Azure CLI vytvořte pracovní prostor Log Analytics, kde se ukládají protokoly a metriky. Příklad:
# 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}]'
Vytvoření pracovního prostoru Log Analytics pomocí Bicep
Pomocí Bicep deklarativně definujte a nasaďte prostředky Azure Monitor. Tento příklad vytvoří pracovní prostor Log Analytics a nakonfiguruje nastavení diagnostiky pro službu App Service.
Do šablon IaC zahrňte protokolování, metriky a upozorňování pomocí odkazu na prostředek Bicep diagnosticSettings. Příklad (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 }
]
}
}
Vytvořte upozornění pro vaše prostředky
Upozornění na metriky můžete nastavit na portálu Azure nebo pomocí Azure CLI. Výstrahy můžou zahrnovat konkrétní metriky, komunikační streamy (například e-mail) a frekvenci.
Pomocí následujících příkladů můžete na portálu vytvořit upozornění na metriky nebo programově:
- Azure CLI: Rychlé nastavení prostřednictvím
az monitor metrics alert - Bicep: deklarativní definice IaC pro
Microsoft.Insights/metricAlerts
Výstrahy můžou určovat cílové metriky, kanály oznámení (e-mail, webhook), závažnost, frekvenci vyhodnocování a skupiny akcí.
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'
}
]
}
}
Zobrazení dat protokolu
Pokud chcete zobrazit data protokolu na portálu Azure, přejděte do pracovního prostoru Log Analytics a vyberte Logs. V protokolech můžete spouštět dotazy jazyka Kusto Query Language (KQL).
Protokoly datových proudů
Více o streamování protokolů se dozvíte v následující tabulce.
Azure MCP Server
Při místním vývoji můžete pomocí nástroje Azure MCP Servermonitor dotazovat protokoly bez opuštění integrovaného vývojového prostředí (IDE). Po instalaci serveru zahrnují příklady výzev Copilot:
- Seznam pracovních prostorů: "Ukaž mi všechny pracovní prostory Log Analytics v mém předplatném."
- Najděte tabulky: Seznam všech tabulek v mém pracovním prostoru 'security-logs'
- Složitý dotaz: "Show me the CPU usage trend for my web servers over the last 24 hours" (Zobrazit trend využití procesoru pro webové servery za posledních 24 hodin)
Přidejte protokolování do svého kódu
Pro protokolování aplikací může Application Insights poskytovat:
- Standardní protokolování ve službě Azure a ve zdrojovém kódu v závislosti na inicializaci.
- Vlastní protokolování z nasazovacího pipeline a ve zdrojovém kódu.
Standardní protokolování konzoly (stdout/stderr)
Azure webové aplikace a Azure Functions automaticky poskytují vlastní logování pro stdout a stderr, pokud používáte správné funkce logování.
- Webové aplikace používají
console.log('your message here'). - Aplikace funkcí používají
context.log('your message here').
Přidejte vlastní protokolování Application Insights
Podrobnější vlastní protokolování můžete přidat pomocí Application Insights v Azure Monitor. Application Insights nabízí scénáře serveru (Node.js) a klienta (prohlížeče):
- Přidejte sadu Application Insights SDK do zdrojového kódu.
- Zalogujte z Node.js pomocí balíčku npm.
- Ujistěte se, že jste nakonfigurovali sadu SDK Node.js s
enableAutoCollectConsole: truepro sběr vlastních záznamů konzoly.
- Ujistěte se, že jste nakonfigurovali sadu SDK Node.js s
- Protokolujte z klientského kódu pomocí balíčku npm.
- Přihlaste se z clusteru Kubernetes nebo Azure virtuálního počítače.
Povolit protokoly kanálu SDK (@Azure/logger)
Kontrola podrobností sady SDK pomocí AZURE_LOG_LEVEL proměnné prostředí nebo @azure/logger balíčku npm:
import { setLogLevel } from "@azure/logger";
// Options: 'error', 'warning', 'info', 'verbose'
setLogLevel(process.env.AZURE_LOG_LEVEL || "info");
Konfigurace rozhraní Application Insights Node.js SDK
Inicializace Application Insights pro sadu Node.js SDK s využitím vzorkování, shromažďování závislostí a zachycení protokolů konzoly:
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" };
Přidání korelace a distribuovaného trasování
Sada Application Insights SDK automaticky vloží operace a ID korelace do požadavků. Přidání vlastní korelace nebo vlastností:
appInsights.defaultClient.trackTrace({
message: "Custom trace",
properties: { userId: user.id }
});
Další informace: Pokyny k distribuovanému trasování
Vyprázdnit telemetrii ve vývojových skriptech
Před ukončením procesu během místního vývoje se ujistěte, že se odesílají protokoly:
appInsights.defaultClient.flush({
callback: () => process.exit(0)
});
Nastavení telemetrie na straně klienta
Pro klientské aplikace použijte @microsoft/applicationinsights-web balíček :
import { ApplicationInsights } from "@microsoft/applicationinsights-web";
const ai = new ApplicationInsights({ config: {
connectionString: "<YOUR_CONNECTION_STRING>",
enableAutoRouteTracking: true
}});
ai.loadAppInsights();
Související obsah
- Azure Data Explorer (Kusto) – přehled
- Zapněte diagnostické protokolování pro aplikace v Azure App Service
- Uučte se pracovat s protokoly platformy Azure
- Azure nástroj pro monitorování serveru MCP