Azure Application Insights: Implementeren Voor Application Performance Monitoring

💼 Management Samenvatting

Azure Application Insights vormt binnen de "Nederlandse Baseline voor Veilige Cloud" de standaard voor holistische applicatiebewaking. Het platform combineert tracering op requestniveau, prestatiewaarden, foutanalyse en gebruikersgedrag in één telemetriebuffer die direct aan Azure Monitor is gekoppeld. Door deze signalen te consolideren ontstaat een actueel beeld van wachttijden, afhankelijkheden en uitzonderingen die cloud-native workloads, API's en serverless functies beïnvloeden. Operations-teams krijgen inzicht in piekbelasting, resourceverbruik en degradaties, terwijl ontwikkelteams de feedbacklus sluiten door wijzigingen direct te toetsen aan productiegedrag. Het instrument ondersteunt bovendien hybride scenario's: .NET-, Java-, Node.js- en Python-toepassingen die on-premises draaien kunnen via dezelfde instrumentation keys rapporteren, zodat bestuurders dienstverleningsniveaus kunnen bewaken zonder te vertrouwen op fragmentarische logging.

Aanbeveling
IMPLEMENTEER VOLLEDIGE APPLICATION INSIGHTS-INSTRUMENTATIE
Risico zonder
Low
Risk Score
4/10
Implementatie
5u (tech: 4u)
Van toepassing op:
Azure

Zonder Application Insights ontbreekt een eenduidig controlemechanisme dat laat zien hoe eindgebruikers, afhankelijkheden, databases en externe API's daadwerkelijk presteren. Klassieke webserverlogs registreren alleen ruwe HTTP-codes en missen de context die nodig is om regressies, memory leaks of mislukte achtergrondprocessen tijdig te herkennen. Het gevolg is dat klachten pas zichtbaar worden nadat burgers of ketenpartners een storing melden, terwijl de rootcause dan vaak al is vervuild door opvolgende incidenten. Application Insights doorbreekt deze reactieve houding door alle onderdelen van een transactie te correleren, inclusief uitzonderingen, stacktraces, dependency-fouten en clientmetrics. Daarmee ontstaat een forensisch spoor waarmee security- en operations-teams afwijkingen vroegtijdig kunnen onderscheiden van normaal gedrag. Voor vitale processen in energie, water, publieke veiligheid en vergunningverlening is dit cruciaal: vertragingen van milliseconden in een API kunnen immers cascaderen naar ICS-koppelingen, monitoringdashboards of rapportages die richting bestuur en toezichthouder gaan. Bovendien stelt hoogwaardige telemetrie CIO's in staat om de investeringen in modernisering, DevSecOps en cloudtransitie aantoonbaar te maken: verbeterde doorlooptijden, lagere foutpercentages en sneller herstel worden onderbouwd met objectieve data. Deze inzichten vormen een onmisbare bouwsteen voor risicodialogen met de CISO, de lijnorganisatie en externe auditors.

PowerShell Modules Vereist
Primary API: Azure API
Connection: Connect-AzAccount
Required Modules: Az.ApplicationInsights

Implementatie

De maatregel richt zich op het aanmaken en configureren van een Application Insights-resource per applicatie, het instrumenteren van code en platformcomponenten, en het inrichten van governance rond retentie, toegang en kostenbewaking. Azure App Services, Functions en container workloads kunnen automatisch worden gekoppeld, terwijl maatwerkcode de SDK's voor .NET, Java, Node.js of Python gebruikt om request-, dependency-, exception-, trace- en custom telemetry te versturen. Binnen de "Nederlandse Baseline voor Veilige Cloud" koppelen we de telemetrie direct aan Azure Monitor workspaces, waardoor query's, dashboards en alerts dezelfde taxonomie volgen als andere veiligheidsmaatregelen. Samplingregels beperken datavolume zonder kritieke signalen te verliezen, role based access control scheidt ontwikkel- en beheertaken, en retentie-instellingen worden afgestemd op archief- en auditplichten. Het resultaat is een reproduceerbaar implementatiepatroon waarmee organisaties binnen enkele iteraties van ruwe logging naar volwassen observability evolueren.

Vereisten

Succesvolle inzet van Application Insights begint bij een solide technische basis. De betreffende workload moet draaien op een ondersteunde runtime (Azure App Service, Functions, AKS of een zelfbeheerde VM/containers met de juiste agent) en voorzien zijn van consistente tagging zodat telemetrie achteraf aan de juiste service, eigenaar en levenscyclusfase kan worden gekoppeld. Daarnaast is een Log Analytics-workspace nodig die voldoet aan de retentie-eisen van de organisatie, omdat Application Insights steeds vaker via Azure Monitor workspaces wordt beheerd. Zonder deze randvoorwaarden verliest de telemetrie haar context of kan data simpelweg niet worden opgeslagen.

Naast platformvoorwaarden zijn passende identiteiten en machtigingen noodzakelijk. Service principals of managed identities hebben minimaal de rol Monitoring Contributor nodig op het niveau van de resource group waarin de Application Insights-component wordt geplaatst. Voor het uitvoeren van de scripts is de PowerShell-module Az.ApplicationInsights verplicht en dient Connect-AzAccount een sessie op te zetten met een account dat wijzigingen mag aanbrengen in zowel Azure Monitor als de doelapplicatie. Binnen DevOps-pijplijnen wordt hetzelfde principe gevolgd: slechts geautoriseerde release-agents mogen instrumentation keys injecteren of configuraties aanpassen.

De telemetrie bevat potentiële persoonsgegevens of gevoelige procesinformatie (bijvoorbeeld burgerservicenummers in aanvragen of parameters uit logistieke ketens). Een Data Protection Impact Assessment moet daarom vastleggen welke velden worden verzameld, hoe sampling en masking worden toegepast en welke loggingniveaus in welke omgevingen zijn toegestaan. Developers moeten bewijs leveren dat PII wordt gescrubd voordat het de telemetriebuffer bereikt, bijvoorbeeld door custom telemetry initializers. Governance-teams borgen dat retentie is afgestemd op BIO 12.01 en de Archiefwet, zodat gegevens niet langer worden bewaard dan noodzakelijk.

Operationeel vraagt de maatregel om duidelijke processen voor beheer, incident response en wijzigingscontrole. Runbooks beschrijven wie dashboards beheert, wie alerts beoordeelt en hoe escalatie naar leveranciers of ontwikkelteams verloopt. Daarnaast is een volwassen releaseproces nodig waarin instrumentatie deel uitmaakt van de Definition of Done, inclusief unit- en integratietests die valideren dat telemetrie daadwerkelijk wordt verzonden. Zonder die afspraken eindigt Application Insights al snel als vrijblijvende tooling zonder structurele actie op de inzichten.

Tot slot vereist de maatregel financiële en capaciteitsplanning. Application Insights wordt afgerekend op ingestroomde gigabytes en opgeslagen data. Beheerders moeten vooraf budgetplafonds vastleggen, het verbruik monitoren en waar nodig adaptive sampling toepassen. Kostentransparantie is essentieel richting bestuurders van vitale organisaties: laat zien welke applicaties de meeste data genereren, welke teams verantwoordelijk zijn en hoe optimalisaties (zoals het comprimeren van verbose logging) direct kosten besparen zonder de controledoelen van de "Nederlandse Baseline voor Veilige Cloud" te ondermijnen.

Implementatie

Gebruik PowerShell-script application-insights-configured.ps1 (functie Invoke-Implementation) – Implementeren.

De implementatie start met het uitvoeren van het script application-insights-configured.ps1, dat een consistente naamgevingsconventie, tags en diagnostische instellingen afdwingt. Het script controleert of er al een Application Insights-resource bestaat, koppelt deze aan de juiste Log Analytics-workspace en schrijft de instrumentation key en connection string terug naar Azure App Configuration of Key Vault. Hierdoor kunnen pipelines en Infrastructure as Code-templates dezelfde gegevens hergebruiken zonder handmatige stappen.

Vervolgens wordt de applicatie zelf voorzien van instrumentation hooks. Voor .NET en Java wordt de SDK toegevoegd via NuGet of Maven en worden middlewarecomponenten geactiveerd waarmee automatisch HTTP-verkeer, dependency-calls en exceptions worden vastgelegd. Voor serverless workloads en App Services kan auto-instrumentation via Application Insights Profiler worden ingeschakeld, waarbij het script de juiste extensies installeert en instellingen als samplingpercentage, adaptive sampling en quickpulse-activering configureert. Custom events en metriek worden toegevoegd wanneer functionele KPI's (bijvoorbeeld aantal afgegeven vergunningen per uur) moeten worden gevolgd.

Een essentiële stap is het integreren van Application Insights in de CI/CD-keten. Build pipelines valideren of de SDK-versies up-to-date zijn, testen of de instrumentation key via configuratie wordt ingelezen in plaats van hardcoded, en publiceren release-artifacten die direct telemetrie genereren in een stagingomgeving. Release pipelines voeren rooktests uit waarbij synthetische transacties een normatieve belasting simuleren; de uitkomsten worden automatisch vergeleken met drempelwaarden voor responstijd, foutpercentage en afhankelijkheden.

Daarna volgt de inrichting van governancecomponenten: role-based access control (lezen voor ontwikkelteams, schrijven voor platformbeheerders), werkboeken met standaardgrafieken en alerts die aansluiten op bestaande SIEM- of ITSM-processen. De "Nederlandse Baseline voor Veilige Cloud" adviseert om technische signalen (CPU, geheugendruk, queryduur) te combineren met bedrijfsindicatoren (verwerkte dossiers, gemaakte reserveringen) zodat de ketenimpact direct zichtbaar wordt. De implementatie omvat ook het expliciet vastleggen van retentie, back-up van configuraties en periodieke toetsing van agentversies.

Tot slot wordt de configuratie gevalideerd door middel van scenario's waarin een fout bewust wordt veroorzaakt, bijvoorbeeld een mislukte databaseverbinding of een synthetische exception. Het team controleert of de telemetrie verschijnt in de juiste workspace, of het dashboard de afwijking toont en of alerts binnen de afgesproken tijdlijn bij het responsteam terechtkomen. Pas wanneer deze ketentest is geslaagd, wordt de maatregel als operationeel beschouwd en wordt het runbook bijgewerkt met lessons learned.

Compliance en Auditing

Application Insights ondersteunt rechtstreeks de BIO-paragraaf 12.01 over bewaking van applicaties en diensten. Door requests, uitzonderingen en afhankelijkheden te registreren ontstaat een audittrail waarmee bestuurders kunnen aantonen dat de werking van primaire processen continu wordt bewaakt. Het detailniveau maakt het mogelijk om te verifiëren dat technische controles daadwerkelijk functioneren, waardoor second-line riskmanagers minder afhankelijk worden van steekproeven.

Binnen de Nederlandse implementatie van NIS2 en de Wet beveiliging netwerk- en informatiesystemen geldt dat aanbieders van essentiële diensten afwijkingen tijdig moeten detecteren en melden. Application Insights levert de metriek die nodig is om afwijkingen van normale prestatieniveaus te onderkennen en vormt een voedingsbron voor Security Operations Centers wanneer telemetrie wordt doorgestuurd naar Microsoft Sentinel of een ander SIEM. De correlatie tussen applicatiegedrag en beveiligingsgebeurtenissen maakt het eenvoudiger om aan te tonen dat detectie en respons op elkaar zijn afgestemd.

Ook privacywetgeving speelt een rol. De Algemene Verordening Gegevensbescherming vereist dat organisaties uitsluitend noodzakelijke persoonsgegevens verwerken en passende beveiligingsmaatregelen nemen. Door gevoelige velden vooraf te maskeren en telemetrie via managed identities te verzenden wordt voorkomen dat logs ongewenst PII bevatten. Documenteer in de verwerkingsregisters welke soorten gegevens worden vastgelegd en hoe lang ze worden bewaard; auditors verwachten inzicht in deze lifecycle.

Auditors verlangen tastbaar bewijs dat monitoring niet alleen is ingericht, maar ook actief wordt gebruikt. Exporteer daarom regelmatig rapporten uit Application Insights Workbooks, leg incidenttickets naast telemetriegegevens en bewaar configuratieback-ups van alertregels. Het auditdossier bevat minimaal het ontwerpbesluit, de goedgekeurde runbooks, voorbeelden van alertmeldingen en een overzicht van beheeractiviteiten. Deze aanpak sluit aan bij de eisen van de Algemene Rekenkamer en sectorale toezichthouders zoals de Autoriteit Nucleaire Veiligheid en Stralingsbescherming of de Rijksinspectie Digitale Infrastructuur.

Voor sectoren met aanvullende kaders (zoals IEC 62443 voor industriële automatisering of de Kaderregeling Informatiebeveiliging Rijk) moet worden vastgelegd hoe Application Insights samenwerkt met bestaande OT-monitoring. Binnen de "Nederlandse Baseline voor Veilige Cloud" adviseren we om een architectuurdiagram op te nemen waarin de datastromen tussen Application Insights, Log Analytics, SIEM en archiveringsoplossingen zichtbaar zijn. Daarmee wordt aangetoond dat telemetrie niet versnipperd raakt en dat er eenduidig eigenaarschap bestaat over incidentafhandeling en rapportage.

Monitoring

Gebruik PowerShell-script application-insights-configured.ps1 (functie Invoke-Monitoring) – Controleren.

Monitoring begint met het periodiek draaien van het script dat controleert of alle Application Insights-resources, gekoppelde action groups en diagnostische instellingen nog aanwezig zijn. Plan deze controle minimaal wekelijks via Azure Automation of GitHub Actions, zodat afwijkingen (bijvoorbeeld verwijderde componenten of verlopen keys) binnen vierentwintig uur aan het licht komen. De resultaten worden opgeslagen in een centrale werkboekpagina zodat zowel operations als CISO-office toegang hebben tot dezelfde waarheid.

Vervolgens wordt de telemetrie inhoudelijk beoordeeld. Teams hanteren standaard-Kusto-query's die responstijden, foutpercentages, dependencyduur en gebruikersactieve sessies in kaart brengen. Door query's te combineren met tags zoals "businessOwner" of "informationClass" kan dezelfde dataset dienen voor servicelevelrapportages én risicodialogen. Anomaliedetectie in Azure Monitor helpt om pieken in exceptions of uitval van specifieke regio's automatisch te signaleren.

Belangrijk onderdeel van monitoring is het bewaken van service level objectives. Voor elke applicatie worden targetwaarden voor P95-responstijden, beschikbaarheid en foutpercentages vastgelegd. Application Insights exporteert deze statistieken naar dashboards die worden gedeeld tijdens operationele overleggen. Afwijkingen leiden direct tot probleemtickets en, indien relevant, tot escalaties richting leveranciers of ketenpartners. Hiermee ontstaat een meetbare koppeling tussen telemetrie en bestuurlijke rapportages.

Daarnaast moet het dataverbruik zelf worden bewaakt. Beheerders volgen dagelijks hoeveel gigabytes per applicatie worden ingestroomd, waar sampling eventueel moet worden aangescherpt en of retention policies nog passen bij de huidige opslagkosten. Dit voorkomt verrassingen op de factuur en dwingt teams om bewuste keuzes te maken over welke logs daadwerkelijk waarde toevoegen.

Tot slot wordt monitoring verweven met de bredere securityoperatie. Telemetrie die duidt op ongeautoriseerde toegang, mislukte authenticaties of verdachte dependency-calls wordt via diagnostische instellingen doorgestuurd naar Microsoft Sentinel of een ander SIEM. Door deze koppeling kunnen SOC-analisten applicatiegedrag meenemen in hun detectielogica en staat Application Insights niet op zichzelf, maar als integraal onderdeel van de verdedigingslagen.

Remediatie

Gebruik PowerShell-script application-insights-configured.ps1 (functie Invoke-Remediation) – Herstellen.

Wanneer uit monitoring blijkt dat telemetrie uitblijft of onvolledig is, wordt het remediatiescript ingezet om resources opnieuw aan te maken, verbindingen te herstellen en configuraties te corrigeren. Het script controleert per applicatie of de instrumentation key nog actief is, of de workspace-koppeling intact is en of retentie-instellingen overeenkomen met het beleid. Afwijkingen worden automatisch hersteld of in een rapport geplaatst voor manuele opvolging.

Remediatie gaat verder dan het technisch herstellen van instellingen. Teams voeren een rootcauseanalyse uit waarin wordt vastgesteld of de verstoring is veroorzaakt door een mislukte release, ongeplande wijziging of resource-opschoning. De bevindingen worden teruggekoppeld aan het changeproces, zodat toekomstige deployments een extra validatiestap krijgen. Indien nodig worden pipelines aangevuld met kwaliteitscontroles die voorkomen dat instrumentatie tijdens refactors of versie-upgrades per ongeluk wordt verwijderd.

Ook inhoudelijke telemetrieproblemen vragen om een gestructureerde aanpak. Wanneer bijvoorbeeld PII onbedoeld in logging verschijnt, wordt direct een tijdelijke blokkade geactiveerd waarbij sampling op nul wordt gezet en bestaande data volgens de AVG-verwijderprocedure uit de workspace wordt verwijderd. Vervolgens passen ontwikkelteams de telemetry initializers aan en demonstreren zij via testcases dat de nieuwe implementatie de privacyrichtlijnen respecteert.

Voor mission-critical processen hoort bij remediatie eveneens een fallbackscenario. Als Application Insights langdurig niet beschikbaar is, moeten teams overschakelen op alternatieve logging (bijvoorbeeld Azure Diagnostics of custom health endpoints) om toch zicht te houden op de dienstverlening. Dit wordt beschreven in het runbook en regelmatig geoefend zodat operators precies weten welke stappen nodig zijn om servicelevelrapportages te blijven leveren.

Elke remediatie-actie wordt afgesloten met documentatie, lessons learned en een update van de configuratiebaseline. Door wijzigingen vast te leggen in Git-repositories en Infrastructure as Code blijft de omgeving reproduceerbaar. Beleidsafdelingen ontvangen een korte rapportage waarin staat welke risico's tijdelijk aanwezig waren, welke acties zijn genomen en hoe de controle opnieuw is gevalideerd. Zo blijft de maatregel aantoonbaar effectief binnen de "Nederlandse Baseline voor Veilige Cloud".

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<# ================================================================================ AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS Application Insights Configured .DESCRIPTION CIS Azure Foundations Benchmark - Control 5.14 Controleert of Application Insights is geconfigureerd voor applicaties. .NOTES Filename: application-insights-configured.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 5.14 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.ApplicationInsights [CmdletBinding()] param([Parameter()][switch]$Monitoring) $ErrorActionPreference = 'Stop' $PolicyName = "Application Insights Configured" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $appInsights = Get-AzApplicationInsights -ErrorAction SilentlyContinue $result = @{ TotalComponents = $appInsights.Count } return $result } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Application Insights Components: $($r.TotalComponents)" -ForegroundColor $(if ($r.TotalComponents -gt 0) { 'Green' } else { 'Yellow' }) if ($r.TotalComponents -eq 0) { Write-Host "`nℹ️ Overweeg Application Insights voor applicatie monitoring" -ForegroundColor Yellow } } else { $r = Test-Compliance Write-Host "`nApplication Insights: $($r.TotalComponents) components" } } catch { Write-Error $_; exit 1 } # ================================================================================ # Standaard Invoke-* Functions (Auto-generated) # ================================================================================ function Invoke-Implementation { <# .SYNOPSIS Implementeert de configuratie #> [CmdletBinding()] param() Invoke-Remediation } function Invoke-Monitoring { <# .SYNOPSIS Controleert de huidige configuratie status #> [CmdletBinding()] param() $Monitoring = $true try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Application Insights Components: $($r.TotalComponents)" -ForegroundColor $(if ($r.TotalComponents -gt 0) { 'Green' } else { 'Yellow' }) if ($r.TotalComponents -eq 0) { Write-Host "`nℹ️ Overweeg Application Insights voor applicatie monitoring" -ForegroundColor Yellow } } else { $r = Test-Compliance Write-Host "`nApplication Insights: $($r.TotalComponents) components" } } catch { Write-Error $_; exit 1 } } function Invoke-Remediation { <# .SYNOPSIS Herstelt de configuratie naar de gewenste staat .DESCRIPTION Dit is een monitoring-only control, remediation delegeert naar monitoring #> [CmdletBinding()] param() Write-Host "[INFO] Dit is een monitoring-only control" -ForegroundColor Yellow Write-Host "[INFO] Running monitoring check..." -ForegroundColor Cyan Invoke-Monitoring }

Risico zonder implementatie

Risico zonder implementatie
Low: Zonder consistente telemetrie ontbreekt zicht op prestatieverlies, ketenfouten en beveiligingsafwijkingen. Incidenten worden laat ontdekt, compliance met BIO 12.01 en NIS2 is lastig aantoonbaar en herstelkosten lopen op doordat rootcause-analyses langer duren.

Management Samenvatting

Application Insights levert end-to-end zicht op aanvragen, afhankelijkheden en gebruikersgedrag voor Azure-workloads. Door resources gestandaardiseerd uit te rollen, SDK's op te nemen in elke release en telemetrie te koppelen aan Azure Monitor ontstaat een betrouwbaar observability-platform. Kosten blijven beheersbaar via tagging en sampling, terwijl alerts direct aansluiten op SOC- en ITSM-processen.