If you are running workloads in Azure, it is important to monitor their uptime, health and performance. The basic tool offered by Azure for cloud monitoring is Azure monitor. It provides monitoring capabilities like metrics, activity and diagnostics logging for all Azure resources.
Azure Monitor is available through the Azure portal. The first time you sign in, you will not see metrics yet, but you can configure monitoring for any resources within your Azure account. Most of this article will cover Azure Monitor, but we will also touch on several other tools that can help you monitor Azure services and applications.
Azure provides several tools you can leverage for monitoring and related processes. Here are the main tools provided by Microsoft to enable monitoring and related activities in Azure:
Microsoft Azure Monitor—collects metrics and activity logs from any Azure resources and can send alerts on predefined conditions.
Azure Advisor—audits your Azure resources and suggests ways you can optimize performance, cost, improve availability or close security gaps.
Azure Automation—lets you create automated processes called runbooks, which can execute based on a trigger from Azure Monitor.
Azure Cost Management—lets you monitor spending on one or more Azure accounts, identify spikes in cost, remove unused resources or right-size resources to conserve costs.
Metrics in Azure Monitor
In Azure Monitor, a “metric” is a series of numbers that indicate how a resource on Azure is operating or performing. Azure Monitor collects metrics on an ongoing basis, letting you analyze the behavior of the monitored resource, and easily set up alerts when metric values are outside acceptable thresholds.
Azure Monitor stores metric data in a time-series database. Each metric is stored as a time series, and each value has several data points:
The resource being monitored
The Azure namespace (used to aggregate multiple metrics together)
Name of the metric
The time the metric was measures
Value measured at this time
You can also add up to 10 custom dimensions for metrics.
Azure Monitor Logs
Azure Monitor provides logs, which are different from metrics. They can be used for more complex analysis of data from multiple systems. A log is structured as a set of records, with several properties for each record. Logs can contain numeric values like metrics, but typically contain more detailed textual data.
Azure Monitor provides a Log Analytics workspace, with several tables that hold data from a different source. Each table may have different properties. This way you can bring together logs from many different systems, both native Azure services and custom applications.
Visualizing Monitoring Data in Azure Monitor
Azure Monitor provides the following visualizations to help you track and understand metrics:
Dashboards—can combine data from metrics collected via Azure Monitor, with logs taken directly from Azure resources, into a single visual interface.
Views—a view is a single panel within the dashboard. Views show metrics or log data in Azure Monitor. A view initially displays as a single dashboard tile. You can click it to drill down into additional charts that let you explore the data.
Power BI—Azure Monitor integrates with Microsoft Power BI, which lets you perform advanced analysis and visualization on metrics data. Power BI can import logs and metrics automatically from Azure Monitor and lets you analyze the data in more depth.
Azure Monitor Alerts
Alerts provide a push notification to let you know that specific conditions occurred in a system being monitored. Azure Monitor provides a set of alert rules, which are independent of the alerts themselves. An alert rule consists of a notification target, and a set of criteria for firing the alert. Each alert rule can be enabled or disabled individually.
An alert rule has the following settings:
Target Resource—the system being monitored, can be any resource running in Azure.
Signal—can be a metric, activity log, or Application Insights report.
Criteria—condition to trigger the alert.
Name/Description—a name and description for the alert, also used as part of notifications to indicate what went wrong.
Severity—how severe is the issue, a value between 0 to 4.
Action—an automated action to be taken when the alert triggers, can be an Azure Automation runbook.
Best Practices for Continuous Monitoring with Azure Monitor
Monitor All Applications
All cloud applications should be monitored to enable alerts on critical conditions, and troubleshooting by developers or administrators. If you maintain the code, instrument your code using the Azure Monitor and Application Insights SDKs (available for all popular programming languages). This also allows you to define custom metrics or events that can help you monitor important activities in your application.
Leverage Monitoring for Continuous Deployment
A continuous deployment process, in which new software releases are pushed to production automatically, you can leverage Azure Monitor to create quality gates. A quality gate is an automated check that determines whether a release should be promoted to production. You can define important performance metrics on your testing environment, and based on Azure Monitor metrics, decide whether a release is suitable for production use.
It is highly recommended to enable Activity Logs in Azure Monitor, which will start collecting logs from all monitored resources. It is also important to enable flow logging for network security groups, and enable database auditing for Azure SQL Server databases, because these can include critical production issues. Logs can be useful for debugging, can be the basis of alerts, and are important for compliance and auditing purposes.
Set Up Effective Notifications
Monitoring metrics is not enough, make sure to set alerts on all relevant metrics for your critical systems, and notify relevant staff. Azure Alerts provides basic notification capabilities such as SMS, voice notifications and push notifications. You can also integrate Azure Monitor with advanced on-call notification systems like PagerDuty, or with ITSM tools such as ServiceNow.
Azure Monitoring with NetApp Cloud Insights
NetApp Cloud Insights is an infrastructure monitoring tool that gives you visibility into your complete infrastructure. With Cloud Insights, you can monitor, troubleshoot and optimize all your resources including your public clouds and your private data centers.
Cloud Insights helps you find problems fast before they impact your business. Optimize usage so you can defer spend, do more with your limited budgets, detect ransomware attacks before it’s too late and easily report on data access for security compliance auditing.
In particular, NetApp Cloud Insights helps you discover your entire hybrid infrastructure, from the public cloud to the data center.