What is Azure VM monitoring?

Azure VM monitoring is the combination of software and tasks that deals with monitoring Azure virtual machines. It is a subset of the larger Azure cloud monitoring. Azure cloud service offers various VM types, split into ‘series’, later in this article we will briefly describe the features specific to each series. 

The first important thing to know is that Azure VMs are used in a multitude of scenarios, hosting applications and servers of many types and scopes. Organizations exploiting the powers of the Azure cloud resources range from just a few to hundreds or thousands of active Azure virtual machines, concurrently, to power their infrastructure. It is thus natural that monitoring these VMs is of vital importance to sustain the operations and services for a company. This is of course the main objective of Azure VM monitoring.

Why is monitoring Azure virtual machines important?

Running on Azure virtual machines are key pieces of your infrastructure, in some cases even the whole of it, and it is common sense that you must be assured at all times that these pieces are doing their job to the best of their capabilities. And if not, be alerted of when there are issues.

That job may not include just running production virtual servers and software. It may include testing, for example, when developers need a specific operating system version or a machine with a specific setup. A VM is often used for testing in such situations, and monitoring it helps to verify that the testing is valid and successful.

Even just using an Azure VM for backups or testing beta releases of software has great importance. In both cases, monitoring your Azure virtual machines is a worthy endeavor to make sure that your data and tests are running as they should, and that no issues that occur are due to the VMs themselves.

Azure VM monitoring is important for any kind of use of these virtual machines. From the most vital ones for your infrastructure tasks, to the most ephemeral ones, a VM can play a key role in the functioning of any environment, so monitoring it is a duty for every IT administrator.

Dashboard in Checkmk for monitoring Azure VMs

Azure VM types

Explaining all of the differences between the many Azure VM types would require a book. As we are focused on Azure VM monitoring here, for orientation purposes we will only briefly describe the various Azure VMs available, and what their ‘specialty’ is. Azure offers a virtual machines selector that can help you identify the exact Azure VM type and size for your requirements.

Azure virtual machines are split into a number of series, depending on their intended use and what they are optimized for. They are identified by a letter followed by various numbers or other letters that specify their size.

A-Series

The entry-level of all Azure VM types, the A-Series was conceived for low workloads, such as development of or testing code, low-traffic databases or web servers, and more. Their advantage is in being economical compared to the other series. The Azure VM sizes of this series goes from 2 to 64GiB of memory and from 10 to 80GiB of storage space.

Bs-Series

The Bs-Series of Azure virtual machine instance types are similar to the A-Series, supporting only low workloads. The difference lies in that they are burstable, capable of sustaining short bursts of higher CPU utilization. There are many subtypes of these VMs, all having sizes between 1 and 128GiB of memory, and 4 to 120GiB of disk space.

D-Series

The D-Series is the most general purpose of all the Azure VM types. It is meant to sustain most production workloads, like enterprise-grade applications, e-commerce systems, desktop virtualization, web app, and any mid-range database, gaming, application, and web servers.

The default Azure VM sizes of this series are diverse, going from 3.5 to 384GiB of memory, and from 50 to 3,600GiB of storage space. There are dozens of subtypes in this series, depending on the operating system and intended workload.

E-Series

For memory-intensive applications, the Azure E-Series is the one to go for. These Azure VM types are configured with high memory-to-CPU ratios, thus having large memory space for each processor core. Any workload that makes large use of memory, such as SAP HANA, large relational database servers, data warehousing, business intelligence applications, in-memory analytics, and business critical applications like process transactions and financial data are well suited to use these types of VMs.

The sizes for E series go from 16 to 672GiB of memory, and from 50 to 3,800GiB of storage space.

F-Series

At the opposite end of the E-Series spectrum are the F-Series. With a higher CPU-to-memory ratio, they are Azure VM types which are computation-optimized for handling CPU intensive tasks. Anything from batch processing web servers to analytics to gaming workloads would be well-serviced by these types of Azure virtual machines.

The memory in these instances ranges from 4 to 1,008GiB, for up to 72 virtual CPUs. Storage space ranges from 16 to 2,016GiB.

G-Series

The G-Series increases both memory and storage sizes compared to the general purpose D series. Large SQL and noSQL databases, ERP, SAP, and data warehousing solutions are the intended workloads for these Azure VM types.

G-Series go up to 448GiB of RAM, 32 cores, and 6,596GiB of storage space.

H-Series

With the H-Series we enter the field of High Performance Computing virtual machines. These Azure VM types are optimized for HPC applications driven by intensive computation. Examples of these are financial analysis, weather simulation, silicon RTL modeling, rendering, quantum simulation, and many other scientific areas where performance is of key importance.

They are equipped with 228 to 1,408GiB of fast memory, up to 176 vCPUs, and a few terabytes of storage space.

Ls-Series

In scenarios where storage is the most important resource, the Ls-Series is the best choice. It is a series ideal for applications that need low latency, high throughput, and large local disk space, such as NoSQL databases, data warehousing, and large transactional databases in general.

The default Azure VM sizes of the Ls-Series of instances goes from 64 to 640GiB of memory, and from 1.92 to 10,92TiB of fast disk space.

M-Series and Mv2-Series

The M-Series and Mv2-Series are optimized for memory-heavy applications, such as SAP HANA, in-memory business critical workloads that require massive parallel computing power. Their sizes go from 192 to 11,400GiB of memory, and from 256 to 14,336GiB of temporary disk space, with hundreds of parallel vCPUs.

N-Series

When computing and graphics-intensive workloads are required, the Azure N-Series of VMs is optimized for such applications. With powerful GPU capabilities, these Azure VM types are ideal for simulations, deep learning, graphics rendering, video editing, and gaming workloads.

Size-wise, the N-Series types of virtual machines go from 28 to 19,00GiB of memory, and from 180 to 3,840GiB of storage space, with both AMD and Nvidia GPUs.

How to monitor Azure virtual machines?

Azure VM monitoring and its natural companion, Azure performance monitoring, are performed with a range of tools, one of which is naturally Azure Monitor, the monitoring dashboard integrated within Azure. Specifically for VM monitoring it is possible to use VM Insights, a guided experience to monitor all sorts of Azure VM types and sizes. This also includes monitoring of on-premises virtual machines, with hybrid setups. VM Insights provides a predefined set of workbooks to view trends and collected performance data over time. It can be used directly from each running VM or from within Azure Monitor.

Not only Azure performance monitoring is possible with the default instruments made available by Microsoft for Azure clouds. Azure virtual machines monitoring includes important checks for their security, and these can be done via Microsoft Defender for Cloud and Microsoft Sentinel. These collect security events and store the VMs logs for reading in Log Analytics. All of these tools use the Azure Monitor agent, which is enabled as soon as you create and start a virtual machine. The agent handles the collection of metrics and data from the VMs, exporting them to the various monitoring tools integrated within Azure itself.

Other third-party monitoring agents also do this. These external tools provide higher levels of customization and granularity than Azure Monitor alone, and can also present a performance advantage when dealing with large infrastructures. Checkmk is one such tool, and its agents collect many Azure monitoring metrics such as disk, CPU, and memory utilization, network I/O, and Azure VM burst CPU credits (a measure of the costs you will incur for the utilization of each VM).

Furthermore, the Azure REST API can be used for monitoring, as it makes a great volume of monitoring metrics accessible. Most third-party monitoring tools get their Azure monitoring metrics through these APIs.

Best practices with Azure VM monitoring

In monitoring Azure VMs, and more in general for Azure performance monitoring purposes, a set of best practices should be followed to receive meaningful and optimal monitoring data. For example, checking the availability of your VMs is important, not simply assuming that they will always be available. For this it is best, instead of checking every active VM, to set up an alert for all VMs in the scope of a particular region. This type of alert is easier to manage than one for each VM and will include any VM that is started after its creation.

Remember to filter data that you do not require coming from monitoring agents. Not only does this make it clearer to spot possible issues and performance trends, but if you are using Azure Monitor it can also help you to save costs. It may also be sensible to reduce the polling frequency of a few performance-related metrics to avoid producing more data than can easily be handled, and to reduce the network and storage utilization.

Develop a strategy on how to deploy agents, how to collect data, and what alerts to set up for any Azure virtual machines monitoring types. This is always good for every type of monitoring, and more so when hundreds or even thousands of similar resources, like VMs, are implemented.

These and more can be done with integrated tools like Azure Monitor and, even more simply, with external tools, such as Checkmk. Defining a strategy for monitoring and alerting is the first step in Azure VM monitoring. Agglomerated data and resources need to be filtered and categorized, and advanced monitoring tools like Checkmk can do that, even automatically. The more automated and complete your monitoring strategy, the easier it will be to identify potential problems, be proactive against them, and be at ease knowing that your Azure virtual machines are working efficiently.

FAQ

What is the difference between an Azure Virtual Desktop vs an Azure Virtual Machine?

Azure Virtual Desktop is a service that provides a virtual desktop infrastructure (VDI) for managing desktops and applications. Unlike Azure virtual machines these desktops are preconfigured and ready to use, with a defined set of applications and configuration settings. Azure Virtual Desktop is used when needed to replicate a whole desktop experience in the cloud, in contrast with a virtual machine that needs to be preconfigured to replicate the same.