3.8 Azure Activity Log, Diagnostics, and Resource Health

Key Takeaways

  • The Activity Log records management-plane (control-plane) operations — who created, changed, or deleted a resource, when, and from where — not data-plane reads/writes inside a resource.
  • Activity Log entries are kept 90 days in the portal for free; for longer retention or KQL analysis you export them via diagnostic settings to Log Analytics, Storage, or Event Hubs.
  • Diagnostic settings are the pipe that routes platform metrics and resource logs to a Log Analytics workspace, Storage Account, Event Hub, or partner solution.
  • Resource Health reports one resource's state as Available, Unavailable, Degraded, or Unknown, and distinguishes platform-caused from customer-caused problems.
  • Activity Log (audit trail) + diagnostic settings (data routing) + Azure Monitor alerts (notification) + Resource Health (status) form a complete management story.
Last updated: June 2026

Quick Answer: Activity Log = the audit trail of management actions (who created/deleted/changed a resource). Diagnostic settings = the pipe that routes metrics and logs to storage destinations. Resource Health = the live up/down state of one resource. These three are distinct — the exam tests that you do not blur them.

Control plane vs data plane (the key distinction)

Every Azure operation is either management-plane (control-plane) or data-plane, and the Activity Log captures only the first kind.

PlaneWhat it doesCaptured by
Management (control) planeManages the resource: create a VM, resize a disk, assign an RBAC role, delete a storage accountActivity Log
Data planeUses the resource: read a blob, run a SQL query, send a queue messageResource logs / diagnostics, NOT the Activity Log

Classic trap: "A user downloaded a file from blob storage — where is that recorded?" That is a data-plane event, so it is not in the Activity Log; you find it in the storage account's diagnostic (resource) logs. "A user deleted the storage account" is management-plane and is in the Activity Log.

Azure Activity Log

The Activity Log (formerly the Audit Log) answers four questions about every management operation: who (the caller), what (the operation), which resource, and when. Each entry also carries a status (Started / Succeeded / Failed) and a correlation ID that links related events.

Event categories

CategoryExample
AdministrativeCreate VM, delete storage, assign RBAC role
Service HealthOutage and maintenance events
Resource HealthA resource's health state changed
AlertAn Azure Monitor alert fired
AutoscaleA scale-out/scale-in event
PolicyAn Azure Policy evaluation result
SecurityA Microsoft Defender for Cloud alert
RecommendationA new Azure Advisor recommendation

Retention and export

DestinationRetentionWhy use it
Azure portal90 days (free, automatic)Quick lookup and recent troubleshooting
Log Analytics30 days up to 2 yearsKQL queries, correlate with other logs
Storage AccountUnlimited (you set lifecycle)Cheap long-term archival for compliance
Event HubReal-time streamFeed a SIEM or third-party analytics

The 90-day portal figure is heavily tested. Anything longer than 90 days requires an export — the portal does not store Activity Log history forever.

Diagnostic settings: the routing pipe

Diagnostic settings are how you send platform metrics and resource logs out of a service to where you want them analyzed or kept.

DestinationPurpose
Log Analytics workspaceQuery with KQL, build dashboards
Storage AccountLow-cost long-term archival
Event HubStream to an external SIEM or tool
Partner solutionHand off to a third-party monitoring product

Each resource type exposes its own diagnostic categories you enable individually — a storage account, for example, offers separate read, write, and delete log categories. Without a diagnostic setting, those resource logs are simply not collected. Memory hook: diagnostic settings move data; they do not analyze it. Analysis happens after it lands in Log Analytics.

Resource Health

Resource Health is a personalized, per-resource dashboard reporting the current and historical state of one specific resource.

StatusMeaning
AvailableFunctioning normally, no issues detected
UnavailableA platform or non-platform event has impacted it
DegradedReduced performance, still partially working
UnknownNo signal received for 10+ minutes

Crucially, when a resource is unavailable Resource Health tells you whether the cause is Azure (a platform event) or your own configuration, suggests remediation, and links to support — so you do not waste time blaming the wrong side.

Putting the four together

ToolRole in the story
Activity LogThe audit trail — who did what to a resource
Diagnostic settingsThe pipe — routes metrics/logs to a destination
Azure Monitor alertsThe trigger — notifies or automates a response
Resource HealthThe status — is this one resource up right now

Worked compliance scenario

A bank gets audited and must answer three questions about its Azure footprint:

  1. "Who deleted the production database last Tuesday?" — The Activity Log holds the management-plane delete event with the caller, timestamp, and correlation ID; if it is older than 90 days, you read it from the workspace or storage archive you exported to.
  2. "Prove every storage account write for the past year is retained." — Storage writes are data-plane events, so you must have a diagnostic setting routing the account's write log category to a Storage Account with a long retention lifecycle.
  3. "Was last month's outage Azure's fault or ours?"Resource Health records whether the impacting event was a platform event or a customer-side configuration problem.

Each question maps to exactly one tool, which is precisely the discrimination AZ-900 tests.

Common AZ-900 traps in this section

  • Activity Log captures management, not usage. Creating/deleting a resource is logged; reading data inside it is not.
  • 90 days is free and automatic; longer needs an export. The portal does not keep Activity Log history indefinitely.
  • Diagnostic settings route; Log Analytics analyzes. A setting with no destination collects nothing.
  • Resource Health is per-resource and tells you the blame side (platform vs customer) — it is not a global outage board (that is Azure Status).

On the Exam: Match the verb to the tool. "Who deleted this VM?" → Activity Log. "Send these logs to long-term storage" → diagnostic settings. "Is this VM healthy and is the outage Azure's fault?" → Resource Health. "Notify me when CPU spikes" → alerts. The AZ-900 (about 40–60 questions in 45 minutes, pass at 700/1000) almost always includes one of these discrimination items.

Test Your Knowledge

A user successfully downloaded a file from a blob storage container. Where is that specific action recorded?

A
B
C
D
Test Your Knowledge

How long does the Azure portal retain Activity Log events for free before you must export them for longer retention?

A
B
C
D
Test Your Knowledge

An operations engineer needs to stream a virtual machine's platform metrics and resource logs to an external SIEM in near real time. Which feature configures this routing?

A
B
C
D