Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik Azure Monitor om logboeken, metrische gegevens en waarschuwingen te verzamelen in uw JavaScript-toepassingen en de Azure services die ze afhankelijk zijn. Azure Monitor is de centrale platformservice die uw telemetrie verzamelt en opslaat. U kunt uw toepassingen instrumentiseren met Application Insights. U moet de gehoste toepassingsservice bewaken, de Azure services waarmee de toepassing is geïntegreerd en de broncode van de toepassing zelf.
Logboeken, metrische gegevens en waarschuwingen begrijpen
Telemetrie is de gegevens die worden verzameld van uw toepassingen en services om hun status, prestaties en gebruik te bewaken. In Azure worden telemetriegegevens gecategoriseerd in logboeken, metrische gegevens en waarschuwingen.
Azure biedt vier soorten telemetrie:
| Telemetrietype | Wat het u geeft | Waar u deze voor elke service kunt vinden |
|---|---|---|
| Statistieken | Numerieke, tijdreeksgegevens (CPU, geheugen, enzovoort) |
Metrische gegevens in de portal of az monitor metrics CLI |
| Waarschuwingen | Proactieve meldingen wanneer drempelwaarden worden bereikt |
Waarschuwingen in het portaal of az monitor metrics alert CLI |
| Logboeken | Op tekst gebaseerde gebeurtenissen en diagnostische gegevens (web, app) | App Service-logboeken, Functie Monitor, Container-apps Diagnostische gegevens |
| Aangepaste logboeken | Uw eigen toepassingstelemetrie via App Insights | De Logboeken (Trace) tabel van uw Application Insights-resource |
Kies de juiste telemetrie voor uw vraag:
| Scenariobeschrijving | Logboeken gebruiken... | Metrische gegevens gebruiken... | Waarschuwingen gebruiken... |
|---|---|---|---|
| Is mijn web-app gestart en reageert deze? | App Service-webserverlogboeken (logboeken) | Niet van toepassing. | Niet van toepassing. |
| Heeft mijn functie een time-out of faalt deze? | Aanroeplogboeken van functies (Monitor) | Metrische waarde voor uitvoeringsduur van functie | Waarschuwing voor 'Functiefouten >0' |
| "Hoe druk is mijn service en kan deze worden geschaald?" | Niet van toepassing. | Serviceverwerkingssnelheid/CPU in metrieken | Automatische schaalaanpassingswaarschuwing voor CPU% > 70% |
| "Welke uitzonderingen werpt mijn code?" | Aangepaste traceringslogboeken in Application Insights | Niet van toepassing. | Waarschuwing op "ServerExceptions >0" |
| "Heb ik mijn transactie- of quotumlimieten overschreden?" | Niet van toepassing. | Metrische gegevens over quota (transacties, beperking) | Waarschuwing over 'ThrottlingCount >0' |
Kostenoptimalisatie
U kunt uw cost voor Azure Monitor aanzienlijk verminderen door inzicht te krijgen in bestprocedures voor configuratieopties en mogelijkheden om de hoeveelheid gegevens te verminderen die door deze worden verzameld.
Logboekregistratie en metrische gegevens inschakelen voor alle Azure resources
Elke service in Azure heeft zijn eigen mogelijkheden voor logboekregistratie en metrische gegevens. Schakel logboekregistratie in op elke Azure resource om ervoor te zorgen dat u beschikt over de telemetrie die u nodig hebt om uw volledige end-to-end-toepassing te bewaken.
Azure Monitor-resource maken
U kunt een Azure Monitor resource maken om logboeken en metrische gegevens van uw Azure-resources te verzamelen. Deze resource is doorgaans een Log Analytics werkruimte, waar logboeken en metrische gegevens worden opgeslagen.
U kunt deze resource op verschillende manieren maken:
- Azure portal: gebruik de Azure portal om een Log Analytics werkruimte te maken en diagnostische instellingen voor uw resources te configureren.
- Azure CLI: gebruik de Azure CLI om een Log Analytics werkruimte te maken en diagnostische instellingen voor uw resources te configureren.
- PowerShell: gebruik PowerShell om een Log Analytics werkruimte te maken en diagnostische instellingen voor uw resources te configureren.
- Bicep: gebruik Bicep sjablonen om uw Azure Monitor resources declaratief te definiëren en te implementeren.
Een Log Analytics werkruimte maken met behulp van de Azure CLI
Gebruik de Azure CLI om een Log Analytics werkruimte te maken. Hier worden logboeken en metrische gegevens opgeslagen. Voorbeeld:
# 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}]'
Een Log Analytics werkruimte maken met behulp van Bicep
Gebruik Bicep om uw Azure Monitor resources declaratief te definiëren en te implementeren. In dit voorbeeld wordt een Log Analytics werkruimte gemaakt en worden diagnostische instellingen voor een App Service geconfigureerd.
Neem logboekregistratie, metrische gegevens en waarschuwingen op in uw IaC-sjablonen met een Bicep diagnosticSettings-resourceverwijzing. Voorbeeld (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 }
]
}
}
Waarschuwingen voor uw resources maken
U kunt waarschuwingen instellen voor metrische gegevens in de Azure portal of met behulp van de Azure CLI. Waarschuwingen kunnen specifieke metrische gegevens, communicatiestromen (zoals e-mail) en frequentie bevatten.
Gebruik de volgende voorbeelden om metrische waarschuwingen te maken in de portal of programmatisch:
- Azure CLI: snelle installatie via
az monitor metrics alert - Bicep: declaratieve IaC-definitie voor
Microsoft.Insights/metricAlerts
Waarschuwingen kunnen metrische doelgegevens, meldingskanalen (e-mail, webhook), ernst, evaluatiefrequentie en actiegroepen opgeven.
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'
}
]
}
}
Logboekgegevens weergeven
Als u logboekgegevens in de Azure-portal wilt weergeven, gaat u naar uw Log Analytics werkruimte en selecteert u Logs. U kunt KQL-query's (Kusto Query Language) uitvoeren op de logboeken.
Logbestanden streamen
Gebruik de volgende tabel voor meer informatie over het streamen van logboeken.
Azure MCP-server
Wanneer u lokaal ontwikkelt, kunt u het hulpprogramma Azure MCP Servermonitor gebruiken om logboeken op te vragen zonder uw IDE te verlaten. Zodra u de server installeert, zijn voorbeelden van Copilot prompts:
- Werkruimten weergeven: 'Toon alle Log Analytics werkruimten in mijn abonnement'.
- Tabellen zoeken: 'Alle tabellen in mijn werkruimte 'security-logs' weergeven
- Complexe query: 'Toon de trend van het CPU-gebruik voor mijn webservers in de afgelopen 24 uur'
Logging toevoegen aan je code
Voor toepassingslogboeken kan Application Insights het volgende bieden:
- Standaardlogboekregistratie in de Azure-service en in uw broncode, afhankelijk van de initialisatie.
- Aangepaste logboekregistratie vanuit uw implementatiepijplijn en in uw broncode.
Standaardconsolelogboekregistratie (stdout/stderr)
Azure web-apps en Azure Functions voorzien automatisch in aangepaste logboekregistratie voor stdout en stderr, als u de juiste logboek registratie functies gebruikt.
- Web-apps gebruiken
console.log('your message here'). - Functieapplicaties maken gebruik van
context.log('your message here').
Aangepaste Application Insights-logboekregistratie toevoegen
U kunt uitgebreidere aangepaste logboekregistratie toevoegen met behulp van Application Insights in Azure Monitor. Application Insights biedt serverscenario's (Node.js) en clientscenario's (browser):
- Voeg de Application Insights-SDK toe aan uw broncode.
- Meld u aan bij Node.js met behulp van een npm-pakket.
- Zorg ervoor dat u de Node.js SDK configureert met
enableAutoCollectConsole: trueom aangepaste consolelogs te verzamelen.
- Zorg ervoor dat u de Node.js SDK configureert met
- Houd een logboek bij vanuit uw clientcode met behulp van een npm-pakket.
- Meld u aan bij uw Kubernetes-cluster of Azure virtuele machine.
SDK-pijplijnlogboeken inschakelen (@Azure/logger)
De uitvoer van de SDK beheren met behulp van de AZURE_LOG_LEVEL omgevingsvariabele of het @azure/logger npm-pakket:
import { setLogLevel } from "@azure/logger";
// Options: 'error', 'warning', 'info', 'verbose'
setLogLevel(process.env.AZURE_LOG_LEVEL || "info");
Application Insights Node.js SDK configureren
Initialiseer de Application Insights voor Node.js SDK met steekproeven, afhankelijkheidsverzameling en logboekopname van de console:
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" };
Correlatie en gedistribueerde tracering toevoegen
De Application Insights SDK injecteert automatisch bewerkings- en correlatie-id's in aanvragen. Aangepaste correlatie of eigenschappen toevoegen:
appInsights.defaultClient.trackTrace({
message: "Custom trace",
properties: { userId: user.id }
});
Meer informatie: richtlijnen voor gedistribueerde tracering
Telemetrie leegmaken in dev-scripts
Zorg ervoor dat logboeken worden verzonden voordat het proces wordt afgesloten tijdens de lokale ontwikkeling:
appInsights.defaultClient.flush({
callback: () => process.exit(0)
});
Telemetrie-instellingen aan de clientzijde
Gebruik het @microsoft/applicationinsights-web pakket voor clienttoepassingen:
import { ApplicationInsights } from "@microsoft/applicationinsights-web";
const ai = new ApplicationInsights({ config: {
connectionString: "<YOUR_CONNECTION_STRING>",
enableAutoRouteTracking: true
}});
ai.loadAppInsights();