Take the free IT Readiness Test and see where you stand, 10 quick questions.
If you're managing cloud infrastructure in 2026, you know that reactive IT is dead. The difference between a team that sleeps soundly and one that's fielding midnight emergency calls is usually one thing: proper monitoring and alerting. Azure Monitor isn't optional anymore. It's the difference between catching a problem at 2am when it starts, or at 10am when your entire organisation knows about it.
The reality is blunt. A study from last year showed that 73 per cent of Azure outages were detected by users before the IT team knew there was an issue. That gap costs money, reputation, and very often, your job satisfaction. This guide walks you through setting up Azure monitoring and alerts properly, so you're always one step ahead.
Azure Monitor is Microsoft's unified platform for observability across your entire cloud estate. It's not just a dashboard that shows you pretty graphs. It's an active system that watches your infrastructure, collects data from every resource you run, and can trigger actions (like sending you an alert, or even auto-scaling your app) the moment something looks wrong.
Three core components work together:
The key insight most new Azure admins miss: monitoring is only useful if it actually alerts you to something actionable. A dashboard full of data you never check is just noise.
Start here, not with tools. Ask yourself: what would make my organisation lose money or reputation if it failed right now? For most teams, that's:
If you're running a healthcare system or any regulated service, you'll want to add audit logs and access attempts to that list. But start small. Five good alerts beat twenty mediocre ones every time.
An action group is where alerts go to do something. Without one, your alert fires into the void.
Navigate to Azure Portal > Monitor > Alerts > Action groups > Create action group.
Name it something obvious like `prod-critical-alerts`. Add notification types:
For healthcare-specific deployments, you'll want audit logs in here too. If a database query fails, you need to know who was querying it and when, not just that it failed.
Monitor > Alerts > Create > Alert rule.
Pick your resource (a specific VM, database, or app service). Then:
Here's the thing most people get wrong: they set the threshold too high because they're afraid of alert fatigue. Then the resource sits at 90% CPU and nobody knows until it hits 100% and crashes. Start with reasonable thresholds (80-85% for capacity metrics), and adjust down after a week if you're getting too many alerts. It's easier to be slightly noisy than to miss a real issue.
Metrics alone aren't enough. You also need log-based alerts.
Monitor > Logs > Create > New alert rule.
Write a Kusto Query Language (KQL) query that pulls the data you want to alert on. For example, if you want to know when authentication fails more than 5 times in 10 minutes:
```
SigninLogs
| where ResultType != "0"
| summarize FailureCount=count() by bin(TimeGenerated, 10m)
| where FailureCount > 5
```
This catches credential attacks and misconfigurations fast. Set the alert to fire when results are returned (meaning the condition was met).
Here's a checklist of alerts that have genuinely saved organisations from outages:
For healthcare specifically, add:
If you want a structured path to mastering this, our Microsoft Azure Administrator Course covers monitoring, alerting, and security in depth, including real-world lab exercises on a live Azure environment. It's the fastest way to move from "I know the theory" to "I've actually built this". Check the Azure course details here for start dates and waitlist information.
Here's a hard truth: if you send more than 20 alerts to someone's inbox per day, they stop reading them. Your brain literally can't process that volume and stay vigilant. So:
The goal isn't zero alerts. The goal is that every alert your team receives is something they should genuinely act on within the next 4 hours.
Set a 30-minute calendar reminder every Friday to review alert history. Ask:
This simple habit stops alert creep. It also helps you explain to your manager why monitoring matters. You'll have data showing how many potential incidents you caught and fixed before users noticed.
Azure monitoring is not a "set it and forget it" tool. It's a conversation between you and your infrastructure. The better you listen, the fewer conversations you'll have with an angry user at 3am.
A basic setup covering your most critical resources takes about 30 to 60 minutes. Creating action groups, defining five to ten alert rules, and testing notifications is an afternoon's work. A comprehensive setup covering everything (metrics, logs, advanced alerting, automation) takes two to four weeks as you learn what actually matters in your specific environment.
Yes. You use a Slack webhook with a Logic App or Azure Function to format the alert data nicely, or Azure Monitor can send directly to Slack via a third-party connector. Slack integration means your whole team sees alerts in real time without checking email.
Metrics are numerical, real-time data points (CPU percentage, response time). Logs are detailed event records that explain what happened and why. You typically alert on metrics for "something is wrong now", and logs for "this specific event happened and I need to know about it".
Azure Monitor data is free for the first 1GB of ingestion per month per subscription. Alerts themselves cost based on notification type (email is free, webhooks are cheap). However, if you're storing huge volumes of logs, costs can add up. Start with the essentials and expand once you understand your data volume.
Route alerts by severity and resource type. Use action groups to send critical alerts only to senior ops staff via SMS, high alerts to the on-call engineer via email, and medium alerts to a Slack channel. Also, aggregate related alerts into single rules (e.g. one rule for "any database performance issue" rather than ten separate rules).
SmoothOps 365 runs live instructor-led training every Saturday and Sunday. 3 months. 50 contact hours. Keep your job while you train.