<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://tech.uvoo.io/index.php?action=history&amp;feed=atom&amp;title=Azure_monitor_logs</id>
	<title>Azure monitor logs - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://tech.uvoo.io/index.php?action=history&amp;feed=atom&amp;title=Azure_monitor_logs"/>
	<link rel="alternate" type="text/html" href="https://tech.uvoo.io/index.php?title=Azure_monitor_logs&amp;action=history"/>
	<updated>2026-05-10T18:41:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>https://tech.uvoo.io/index.php?title=Azure_monitor_logs&amp;diff=5578&amp;oldid=prev</id>
		<title>Busk: Created page with &quot;To alert on VM‐level errors and push them into PagerDuty, you’ll use Azure Monitor’s **Log Alerts** (formerly “Log Search Alerts”) against a Log Analytics workspace,...&quot;</title>
		<link rel="alternate" type="text/html" href="https://tech.uvoo.io/index.php?title=Azure_monitor_logs&amp;diff=5578&amp;oldid=prev"/>
		<updated>2025-07-08T19:30:05Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;To alert on VM‐level errors and push them into PagerDuty, you’ll use Azure Monitor’s **Log Alerts** (formerly “Log Search Alerts”) against a Log Analytics workspace,...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;To alert on VM‐level errors and push them into PagerDuty, you’ll use Azure Monitor’s **Log Alerts** (formerly “Log Search Alerts”) against a Log Analytics workspace, plus an **Action Group** wired to PagerDuty via a webhook. In broad strokes the steps are:&lt;br /&gt;
&lt;br /&gt;
1. **Ingest your VM logs** into a Log Analytics workspace.&lt;br /&gt;
2. **Create an Action Group** that calls PagerDuty’s Events API v2 webhook.&lt;br /&gt;
3. **Define a log‐query alert rule** that fires when “Error” events appear and attaches the PagerDuty Action Group.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
### 1. Send VM logs to Log Analytics&lt;br /&gt;
&lt;br /&gt;
Ensure your VM is reporting its event logs (Windows) or syslog (Linux) to a Log Analytics workspace:&lt;br /&gt;
&lt;br /&gt;
* In the **Azure portal**, go to your VM → **Diagnostic settings** → **Add diagnostic setting**.&lt;br /&gt;
* Check **Send to Log Analytics** and select (or create) your workspace.&lt;br /&gt;
* Under **Log** categories include **Syslog** (for Linux) or **Windows Event Logs** (Application, System, Security).&lt;br /&gt;
* Save.&lt;br /&gt;
&lt;br /&gt;
Once configured, you’ll see data flow into the workspace’s **Logs** blade .&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
### 2. Create a PagerDuty–backed Action Group&lt;br /&gt;
&lt;br /&gt;
An **Action Group** bundles one or more notification “receivers.” To route Azure alerts into PagerDuty:&lt;br /&gt;
&lt;br /&gt;
1. In the Azure portal search for **Monitor** → **Alerts** → **Action groups** → **+ Create**.&lt;br /&gt;
2. Fill in name/resource group/short name.&lt;br /&gt;
3. Under **Actions** click **Add action**:&lt;br /&gt;
&lt;br /&gt;
   * **Action Type**: **Webhook**&lt;br /&gt;
   * **Name**: e.g. `PagerDutyWebhook`&lt;br /&gt;
   * **URI**: your PagerDuty Events API v2 endpoint, e.g.&lt;br /&gt;
     `https://events.pagerduty.com/v2/enqueue?integration_key=&amp;lt;YOUR_KEY&amp;gt;` ([learn.microsoft.com][1])&lt;br /&gt;
4. Review + Create.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **Tip:** You obtain that Integration Key by adding a “Custom Events API v2” integration to a PagerDuty Service in the PagerDuty UI ([pagerduty.com][2]).&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
### 3. Define a Log-query alert rule&lt;br /&gt;
&lt;br /&gt;
You can do this in the portal or via CLI/ARM/Terraform. We’ll show both:&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
#### A. Portal approach&lt;br /&gt;
&lt;br /&gt;
1. In **Monitor** → **Alerts** → **+ New alert rule**.&lt;br /&gt;
&lt;br /&gt;
2. **Scope**: click **Select resource**, choose your Log Analytics workspace.&lt;br /&gt;
&lt;br /&gt;
3. **Condition**: click **Add condition** → under **Log**, pick **Custom log search**.&lt;br /&gt;
&lt;br /&gt;
4. In the query editor enter a Kusto query that filters for errors. For example:&lt;br /&gt;
&lt;br /&gt;
   ```kusto&lt;br /&gt;
   union&lt;br /&gt;
     (Syslog | where SeverityLevel &amp;gt;= 3),&lt;br /&gt;
     (Event | where EventLevelName == &amp;quot;Error&amp;quot;)&lt;br /&gt;
   | where TimeGenerated &amp;gt; ago(5m)&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
5. Set **Alert logic**: “When the number of results is **Greater than** **0**.”&lt;br /&gt;
&lt;br /&gt;
6. **Action group**: click **Select action groups**, pick the one you created with the PagerDuty webhook.&lt;br /&gt;
&lt;br /&gt;
7. Define **Alert rule details** (severity, name, description) and **Review + Create** ([learn.microsoft.com][3]).&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
#### B. Azure CLI example&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
# 1. Variables&lt;br /&gt;
rg=&amp;quot;MyResourceGroup&amp;quot;&lt;br /&gt;
ws=&amp;quot;MyLogAnalyticsWorkspace&amp;quot;&lt;br /&gt;
ag=&amp;quot;PagerDutyAG&amp;quot;&lt;br /&gt;
key=&amp;quot;&amp;lt;YOUR_PAGERDUTY_KEY&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 2. Create action group with webhook&lt;br /&gt;
az monitor action-group create \&lt;br /&gt;
  --resource-group $rg \&lt;br /&gt;
  --name $ag \&lt;br /&gt;
  --short-name pd \&lt;br /&gt;
  --action webhook PagerDutyWebhook \&lt;br /&gt;
    https://events.pagerduty.com/v2/enqueue?integration_key=$key \&lt;br /&gt;
  --verbose&lt;br /&gt;
&lt;br /&gt;
# 3. Get workspace resource ID&lt;br /&gt;
ws_id=$(az monitor log-analytics workspace show \&lt;br /&gt;
  --resource-group $rg \&lt;br /&gt;
  --workspace-name $ws \&lt;br /&gt;
  --query id --output tsv)&lt;br /&gt;
&lt;br /&gt;
# 4. Create scheduled (log) query alert&lt;br /&gt;
az monitor scheduled-query create \&lt;br /&gt;
  --resource-group $rg \&lt;br /&gt;
  --name &amp;quot;VMErrorAlert&amp;quot; \&lt;br /&gt;
  --scopes $ws_id \&lt;br /&gt;
  --description &amp;quot;Alert on VM error logs&amp;quot; \&lt;br /&gt;
  --severity 2 \&lt;br /&gt;
  --evaluation-frequency 5m \&lt;br /&gt;
  --window-size 5m \&lt;br /&gt;
  --condition &amp;quot;count 'ErrorQuery' &amp;gt; 0&amp;quot; \&lt;br /&gt;
  --condition-query 'union (Syslog | where SeverityLevel&amp;gt;=3),(Event | where EventLevelName==&amp;quot;Error&amp;quot;) | where TimeGenerated&amp;gt;ago(5m)' \&lt;br /&gt;
  --action &amp;quot;/subscriptions/&amp;lt;subId&amp;gt;/resourceGroups/$rg/providers/microsoft.insights/actionGroups/$ag&amp;quot; \&lt;br /&gt;
  --verbose&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; In this CLI snippet, `--condition` references a placeholder name (`'ErrorQuery'`) defined by `--condition-query`, so Azure knows when the alert should fire ([learn.microsoft.com][4]).&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
### Validation &amp;amp; Next Steps&lt;br /&gt;
&lt;br /&gt;
* **Test** by generating an error on the VM (e.g. an event in Windows Event Viewer or a logged `logger &amp;quot;something error&amp;quot;` on Linux). Within 5 minutes you should see an incident in PagerDuty.&lt;br /&gt;
* **Tune** your Kusto query to filter only the logs you care about (by computer name, log source, text pattern, etc.).&lt;br /&gt;
* **Manage** via IaC: if you use Terraform, you can use [`azurerm_monitor_action_group`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/monitor_action_group) and [`azurerm_monitor_scheduled_query_rules_alert`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/monitor_scheduled_query_rules_alert).&lt;br /&gt;
&lt;br /&gt;
That’s it – you now have VM‐level log monitoring in Azure, with real‐time error incidents routed straight into your PagerDuty on-call rotation.&lt;br /&gt;
&lt;br /&gt;
[1]: https://learn.microsoft.com/en-us/azure/service-health/service-health-alert-webhook-pagerduty?utm_source=chatgpt.com &amp;quot;Send Azure service health alerts with PagerDuty using webhooks&amp;quot;&lt;br /&gt;
[2]: https://www.pagerduty.com/docs/guides/azure-integration-guide/?utm_source=chatgpt.com &amp;quot;Microsoft Azure Alerts Integration Guide - PagerDuty&amp;quot;&lt;br /&gt;
[3]: https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/tutorial-log-alert?utm_source=chatgpt.com &amp;quot;Tutorial - Create a log search alert for an Azure resource&amp;quot;&lt;br /&gt;
[4]: https://learn.microsoft.com/en-us/cli/azure/monitor/scheduled-query?view=azure-cli-latest&amp;amp;utm_source=chatgpt.com &amp;quot;az monitor scheduled-query - Learn Microsoft&amp;quot;&lt;/div&gt;</summary>
		<author><name>Busk</name></author>
	</entry>
</feed>