Sending Azure Monitor outage notifications to Microsoft Teams
By: Vishwa Krishnakumar
Tags: Microsoft, DevOps, Operations, It, Azure

Microsoft Azure is a cloud computing service providing infrastructure as a service (IaaS), software as a service (SaaS) and platform as a service (PaaS) supporting multiple Microsoft Specific and third-party services and systems with 90+ compliance offerings and trusted by 95% of Fortune 500 companies to base their business on.

What is a system downtime and how does it affect me or my business?

According to Webopedia, “Downtime refers to periods of time during which a computer system, server, or network is shut off or unavailable for use. Systems go through periods of downtime for a variety of reasons, including power or hardware failure, system crashes, hacker attacks, system reboots, operating system and/or software updates, lack of network connectivity, and more”. While downtimes may be planned for maintenance, in most cases they are unplanned and unexpected.

The cost and impact of system downtime are rising rapidly due to the business’s increasing dependence on data and technology. System downtime can cause loss of opportunities, productivity loss, confidence erosion, potential employee overtime costs to recover work lost and catching up, service level agreement penalties, supply chain ripple effects, and most importantly, a damaged reputation. Effective communication with staff, customers, and service providers are very important to manage the impact of downtime.

Dispatching critical Azure alerts

A key feature of Azure is its alerting service which enables you to set up alerts to monitor the metrics and log data for the entire stack across your infrastructure. Azure dispatches these alerts via Email. However, for critical metrics indicative of degraded user experience, email may not be good enough to elicit a prompt response and resolution from your reliability and NOC teams. For high availability services with SLA timeframes in minutes, you need to be able to promptly alert the right engineers and teams about a critical issue, and also gather responders, subject matter experts and communicate to the relevant internal and external stakeholders while at the same time, keeping a watchful eye on the SLAs. This is where Zenduty can help you.

Integrating Azure alerts with Zenduty

Zenduty acts as a dispatcher for the alerts generated by Azure. Zenduty determines the right engineers to notify based on on-call schedules and escalations and notifies via using email, text messages (SMS), phone calls, Slack, Microsoft Teams, and Android & iOS push notifications.

Zenduty provides you with everything you need you to minimize your mean time to recovery with advanced routing rules, flexible scheduling, analytics and reporting, integrated ChatOps (with Slack and Microsoft Teams), stakeholder communications, and SLA alerts.

Steps to integrate Microsoft Teams and Azure with Zenduty

Below is a step-by-step guide to integrate Azure alerts with Zenduty.

In Zenduty:

Create a Zenduty account here Create a team(one is created by default on signup) In your team, create a service and add an Azure integration. In the Azure integration config page, find and copy the webhook URL for later use. Back in the service page, navigate to the Integrations tab and in the Outgoing integrations section, click on Add integration. Select Microsoft Teams Connector. Click on Configure for the connector integration. You will see an input box. We will fill this input box in Step 9. Open Microsoft Teams in another tab. In the Apps, search for Zenduty. Add Zenduty to a Teams channel and also add as a connector. Navigate to Chat and click on Zenduty(bot). In the chat window, type ‘login’.

8. Authenticate your Teams account. Zenduty is now configured for 1–1 alerts from Azure.

9. To send Azure alerts to a Teams channel, navigate to the Teams channel where you want to send the alerts. Click on the “…” button next to the channel and select Connectors. Select Zenduty from the application. Click on configure. Copy the webhook URL and paste in the MS Teams connector outgoing webhook configure section in Zenduty that we created in Step 4.

Configuration in Microsoft Azure:

Open the Azure portal and click on Alerts. Search on the search bar if not directly visible.

2. Create a new alert rule.

3. Select the resource which you want to monitor. Here we shall monitor a Virtual Machine.

4. Select the condition based on which the alert is to be triggered. Here we create an alert that is triggered when the CPU utilization of a Virtual Machine crosses 50%.

5. Create an Action Group (or use a previously created action group)

6. Enter the Action group name and short name:

7. Enter an action name and select Webhook under Action Type. A dialog box appears in the side.

8. Enter the webhook URL copied earlier from the Zenduty integration page.

9. Enable the common alert schema by toggling the button to yes and then click on OK.

10. Click on OK to add the action group.

The action group has now been created. It should visible under the section of Action Groups

11. Fill in the alert details appropriately. The alert rule name along with the severity will appear as the alert message and the alert description will appear as the summary in Zenduty

12. Click on create alert rule. You have now successfully created the alert.

Conclusion

Using the combination of Azure’s Application Insights along with webhook integration to Zenduty is a simple way to provide 24/7 monitoring and notification. Many aspects of application performance can be monitored with Azure alerts, including custom events detected within the application code. Now all essential Azure alerts and incidents will appear on the Zenduty dashboard enabling you to make use of all the power and capabilities of Zenduty to resolve incidents quickly and efficiently.