Microsoft Azure

Microsoft Azure is a cloud computing service created by Microsoft for building, testing, deploying, and managing applications and services through Microsoft-managed data centers.

Available solutions




This template is for Zabbix version: 6.2

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cloud/azure_http?at=release/6.2

Azure by HTTP

Overview

For Zabbix version: 6.2 and higher
The template to monitor Microsoft Azure by HTTP. It works without any external scripts and uses the script item.

Setup

See Zabbix template operation for basic instructions.

  1. Create an Azure service principal via Azure CLI for your subscription.

    az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/<subscription_id>

    See Azure documentation for more details.

  2. Link the template to a host.

  3. Configure macros {$AZURE.APP_ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT_ID} and {$AZURE.SUBSCRIPTION_ID}.

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$AZURE.APP_ID}

Microsoft Azure app ID.

``
{$AZURE.DATA.TIMEOUT}

Response timeout for API.

15s
{$AZURE.PASSWORD}

Microsoft Azure password.

``
{$AZURE.SUBSCRIPTION_ID}

Microsoft Azure subscription ID.

``
{$AZURE.TENANT_ID}

Microsoft Azure tenant ID.

``
{$AZURE.VM.LOCATION.MATCHES}

This macro used in virtual machines discovery rule.

.*
{$AZURE.VM.LOCATION.NOT_MATCHES}

This macro used in virtual machines discovery rule.

CHANGE_IF_NEEDED
{$AZURE.VM.NAME.MATCHES}

This macro used in virtual machines discovery rule.

.*
{$AZURE.VM.NAME.NOT_MATCHES}

This macro used in virtual machines discovery rule.

CHANGE_IF_NEEDED
{$AZURE.VM.RESOURCE_GROUP.MATCHES}

This macro used in virtual machines discovery rule.

.*
{$AZURE.VM.RESOURCE_GROUP.NOT_MATCHES}

This macro used in virtual machines discovery rule.

CHANGE_IF_NEEDED

Template links

There are no template links in this template.

Discovery rules

Name Description Type Key and additional info
Virtual machines discovery

A list of the virtual machines in the subscription.

DEPENDENT azure.vm.discovery

Preprocessing:

- JSONPATH: $.resources.value

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Filter:

AND

- {#TYPE} MATCHES_REGEX ^Microsoft.Compute/virtualMachines$

- {#NAME} MATCHES_REGEX {$AZURE.VM.NAME.MATCHES}

- {#NAME} NOT_MATCHES_REGEX {$AZURE.VM.NAME.NOT_MATCHES}

- {#LOCATION} MATCHES_REGEX {$AZURE.VM.LOCATION.MATCHES}

- {#LOCATION} NOT_MATCHES_REGEX {$AZURE.VM.LOCATION.NOT_MATCHES}

- {#GROUP} MATCHES_REGEX {$AZURE.VM.RESOURCE_GROUP.MATCHES}

- {#GROUP} NOT_MATCHES_REGEX {$AZURE.VM.RESOURCE_GROUP.NOT_MATCHES}

Items collected

Group Name Description Type Key and additional info
Azure Azure: Get resources

The JSON with result of API requests.

SCRIPT azure.get.resources

Expression:

The text is too long. Please see the template.
Azure Azure: Get errors

A list of errors from API requests.

DEPENDENT azure.get.errors

Preprocessing:

- JSONPATH: $.errors

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Triggers

Name Description Expression Severity Dependencies and additional info
Azure: There are errors in requests to API

Zabbix has received errors in requests to API.

length(last(/Azure by HTTP/azure.get.errors))>0 AVERAGE

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.

Azure virtual machine by HTTP

Overview

For Zabbix version: 6.2 and higher
The template to monitor Microsoft Azure virtual machines by HTTP. It works without any external scripts and uses the script item.

Setup

See Zabbix template operation for basic instructions.

  1. Create an Azure service principal via Azure CLI for your subscription.

    az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/<subscription_id>

    See Azure documentation for more details.

  2. Link the template to a host.

  3. Configure macros {$AZURE.APP_ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT_ID} and {$AZURE.SUBSCRIPTION_ID}.

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$AZURE.APP_ID}

Microsoft Azure app ID.

``
{$AZURE.DATA.TIMEOUT}

Response timeout for API.

60s
{$AZURE.PASSWORD}

Microsoft Azure password.

``
{$AZURE.RESOURCE_ID}

Microsoft Azure virtual machine ID.

``
{$AZURE.SUBSCRIPTION_ID}

Microsoft Azure subscription ID.

``
{$AZURE.TENANT_ID}

Microsoft Azure tenant ID.

``
{$AZURE.VM.CPU.UTIL.CRIT}

The critical threshold of the CPU utilization in %.

90

Template links

There are no template links in this template.

Discovery rules

Items collected

Group Name Description Type Key and additional info
Azure Azure: Get data

The JSON with result of API requests.

SCRIPT azure.vm.data.get

Expression:

The text is too long. Please see the template.
Azure Azure: Get errors

A list of errors from API requests.

DEPENDENT azure.vm.data.errors

Preprocessing:

- JSONPATH: $.errors

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Azure Azure: Availability state

Availability status of the resource.

DEPENDENT azure.vm.availability.state

Preprocessing:

- JSONPATH: $.health.availabilityState

⛔️ON_FAIL: CUSTOM_VALUE -> 3

- STR_REPLACE: Available 0

- STR_REPLACE: Degraded 1

- STR_REPLACE: Unavailable 2

- STR_REPLACE: Unknown 3

- IN_RANGE: 0 3

⛔️ON_FAIL: CUSTOM_VALUE -> 3

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Azure Azure: Availability status detailed

Summary description of the availability status.

DEPENDENT azure.vm.availability.details

Preprocessing:

- JSONPATH: $.health.summary

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Azure Azure: Percentage CPU

The percentage of allocated compute units that are currently in use by the Virtual Machine(s).

DEPENDENT azure.vm.cpu.percentage

Preprocessing:

- JSONPATH: $.metrics.PercentageCPU.average

Azure Azure: Disk read rate

Bytes read from disk during monitoring period (1 minute).

DEPENDENT azure.vm.disk.read.bytes

Preprocessing:

- JSONPATH: $.metrics.DiskReadBytes.total

- MULTIPLIER: 0.0167

Azure Azure: Disk write rate

Bytes written to disk during monitoring period (1 minute).

DEPENDENT azure.vm.disk.write.bytes

Preprocessing:

- JSONPATH: $.metrics.DiskWriteBytes.total

- MULTIPLIER: 0.0167

Azure Azure: Disk read Operations/Sec

Disk read IOPS.

DEPENDENT azure.vm.disk.read.ops

Preprocessing:

- JSONPATH: $.metrics.DiskReadOperationsSec.average

Azure Azure: Disk write Operations/Sec

Disk write IOPS.

DEPENDENT azure.vm.disk.write.ops

Preprocessing:

- JSONPATH: $.metrics.DiskWriteOperationsSec.average

Azure Azure: CPU credits remaining

Total number of credits available to burst. Only available on B-series burstable VMs.

DEPENDENT azure.vm.cpu.credits.remaining

Preprocessing:

- JSONPATH: $.metrics.CPUCreditsRemaining.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: CPU credits consumed

Total number of credits consumed by the Virtual Machine. Only available on B-series burstable VMs.

DEPENDENT azure.vm.cpu.credits.consumed

Preprocessing:

- JSONPATH: $.metrics.CPUCreditsConsumed.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk read rate

Bytes/Sec read from a single disk during monitoring period.

DEPENDENT azure.vm.data.disk.read.bps

Preprocessing:

- JSONPATH: $.metrics.DataDiskReadBytessec.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk write rate

Bytes/Sec written to a single disk during monitoring period.

DEPENDENT azure.vm.data.disk.write.bps

Preprocessing:

- JSONPATH: $.metrics.DataDiskWriteBytessec.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk read operations/sec

Read IOPS from a single disk during monitoring period.

DEPENDENT azure.vm.data.disk.read.ops

Preprocessing:

- JSONPATH: $.metrics.DataDiskReadOperationsSec.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk write operations/sec

Write IOPS from a single disk during monitoring period.

DEPENDENT azure.vm.data.disk.write.ops

Preprocessing:

- JSONPATH: $.metrics.DataDiskWriteOperationsSec.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk queue depth

Data Disk Queue Depth(or Queue Length).

DEPENDENT azure.vm.data.disk.queue.depth

Preprocessing:

- JSONPATH: $.metrics.DataDiskQueueDepth.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk bandwidth consumed percentage

Percentage of data disk bandwidth consumed per minute.

DEPENDENT azure.vm.data.disk.bandwidth.consumed.percentage

Preprocessing:

- JSONPATH: $.metrics.DataDiskBandwidthConsumedPercentage.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk IOPS consumed percentage

Percentage of data disk I/Os consumed per minute.

DEPENDENT azure.vm.data.disk.iops.consumed.percentage

Preprocessing:

- JSONPATH: $.metrics.DataDiskIOPSConsumedPercentage.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk target bandwidth

Baseline bytes per second throughput Data Disk can achieve without bursting.

DEPENDENT azure.vm.data.disk.target.bandwidth

Preprocessing:

- JSONPATH: $.metrics.DataDiskTargetBandwidth.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk target IOPS

Baseline IOPS Data Disk can achieve without bursting.

DEPENDENT azure.vm.data.disk.target.iops

Preprocessing:

- JSONPATH: $.metrics.DataDiskTargetIOPS.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk max burst bandwidth

Maximum bytes per second throughput Data Disk can achieve with bursting.

DEPENDENT azure.vm.data.disk.max.bandwidth

Preprocessing:

- JSONPATH: $.metrics.DataDiskMaxBurstBandwidth.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk max burst IOPS

Maximum IOPS Data Disk can achieve with bursting.

DEPENDENT azure.vm.data.disk.max.iops

Preprocessing:

- JSONPATH: $.metrics.DataDiskMaxBurstIOPS.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk used burst BPS credits percentage

Percentage of Data Disk burst bandwidth credits used so far.

DEPENDENT azure.vm.data.disk.used.burst.bandwidth

Preprocessing:

- JSONPATH: $.metrics.DataDiskUsedBurstBPSCreditsPercentage.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Data disk used burst IO credits percentage

Percentage of Data Disk burst I/O credits used so far.

DEPENDENT azure.vm.data.disk.used.burst.iops

Preprocessing:

- JSONPATH: $.metrics.DataDiskUsedBurstIOCreditsPercentage.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk read rate

Bytes/Sec read from a single disk during monitoring period for OS disk.

DEPENDENT azure.vm.os.disk.read.bps

Preprocessing:

- JSONPATH: $.metrics.OSDiskReadBytessec.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk write rate

Bytes/Sec written to a single disk during monitoring period for OS disk.

DEPENDENT azure.vm.os.disk.write.bps

Preprocessing:

- JSONPATH: $.metrics.OSDiskWriteBytessec.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk read operations/sec

Read IOPS from a single disk during monitoring period for OS disk.

DEPENDENT azure.vm.os.disk.read.ops

Preprocessing:

- JSONPATH: $.metrics.OSDiskReadOperationsSec.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk write operations/sec

Write IOPS from a single disk during monitoring period for OS disk.

DEPENDENT azure.vm.os.disk.write.ops

Preprocessing:

- JSONPATH: $.metrics.OSDiskWriteOperationsSec.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk queue depth

OS Disk Queue Depth(or Queue Length).

DEPENDENT azure.vm.os.disk.queue.depth

Preprocessing:

- JSONPATH: $.metrics.OSDiskQueueDepth.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk bandwidth consumed percentage

Percentage of operating system disk bandwidth consumed per minute.

DEPENDENT azure.vm.os.disk.bandwidth.consumed.percentage

Preprocessing:

- JSONPATH: $.metrics.OSDiskBandwidthConsumedPercentage.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk IOPS consumed percentage

Percentage of operating system disk I/Os consumed per minute.

DEPENDENT azure.vm.os.disk.iops.consumed.percentage

Preprocessing:

- JSONPATH: $.metrics.OSDiskIOPSConsumedPercentage.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk target bandwidth

Baseline bytes per second throughput OS Disk can achieve without bursting.

DEPENDENT azure.vm.os.disk.target.bandwidth

Preprocessing:

- JSONPATH: $.metrics.OSDiskTargetBandwidth.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk target IOPS

Baseline IOPS OS Disk can achieve without bursting.

DEPENDENT azure.vm.os.disk.target.iops

Preprocessing:

- JSONPATH: $.metrics.OSDiskTargetIOPS.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk max burst bandwidth

Maximum bytes per second throughput OS Disk can achieve with bursting.

DEPENDENT azure.vm.os.disk.max.bandwidth

Preprocessing:

- JSONPATH: $.metrics.OSDiskMaxBurstBandwidth.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk max burst IOPS

Maximum IOPS OS Disk can achieve with bursting.

DEPENDENT azure.vm.os.disk.max.iops

Preprocessing:

- JSONPATH: $.metrics.OSDiskMaxBurstIOPS.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk used burst BPS credits percentage

Percentage of OS Disk burst bandwidth credits used so far.

DEPENDENT azure.vm.os.disk.used.burst.bandwidth

Preprocessing:

- JSONPATH: $.metrics.OSDiskUsedBurstBPSCreditsPercentage.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: OS disk used burst IO credits percentage

Percentage of OS Disk burst I/O credits used so far.

DEPENDENT azure.vm.os.disk.used.burst.iops

Preprocessing:

- JSONPATH: $.metrics.OSDiskUsedBurstIOCreditsPercentage.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Inbound flows

Inbound Flows are number of current flows in the inbound direction (traffic going into the VM).

DEPENDENT azure.vm.flows.inbound

Preprocessing:

- JSONPATH: $.metrics.InboundFlows.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Outbound flows

Outbound Flows are number of current flows in the outbound direction (traffic going out of the VM).

DEPENDENT azure.vm.flows.outbound

Preprocessing:

- JSONPATH: $.metrics.OutboundFlows.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Inbound flows max creation rate

The maximum creation rate of inbound flows (traffic going into the VM).

DEPENDENT azure.vm.flows.inbound.max

Preprocessing:

- JSONPATH: $.metrics.InboundFlowsMaximumCreationRate.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Outbound flows max creation rate

The maximum creation rate of outbound flows (traffic going out of the VM).

DEPENDENT azure.vm.flows.outbound.max

Preprocessing:

- JSONPATH: $.metrics.OutboundFlowsMaximumCreationRate.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Premium data disk cache read hit

Premium data disk cache read hit.

DEPENDENT azure.vm.premium.data.disk.cache.read.hit

Preprocessing:

- JSONPATH: $.metrics.PremiumDataDiskCacheReadHit.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Premium data disk cache read miss

Premium data disk cache read miss.

DEPENDENT azure.vm.premium.data.disk.cache.read.miss

Preprocessing:

- JSONPATH: $.metrics.PremiumDataDiskCacheReadMiss.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Premium OS disk cache read hit

Premium OS disk cache read hit.

DEPENDENT azure.vm.premium.os.disk.cache.read.hit

Preprocessing:

- JSONPATH: $.metrics.PremiumOSDiskCacheReadHit.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: Premium OS disk cache read miss

Premium OS disk cache read miss.

DEPENDENT azure.vm.premium.os.disk.cache.read.miss

Preprocessing:

- JSONPATH: $.metrics.PremiumOSDiskCacheReadMiss.average

⛔️ON_FAIL: DISCARD_VALUE ->

Azure Azure: VM cached bandwidth consumed percentage

Percentage of cached disk bandwidth consumed by the VM.

DEPENDENT azure.vm.cached.bandwidth.consumed.percentage

Preprocessing:

- JSONPATH: $.metrics.VMCachedBandwidthConsumedPercentage.average

Azure Azure: VM cached IOPS consumed percentage

Percentage of cached disk IOPS consumed by the VM.

DEPENDENT azure.vm.cached.iops.consumed.percentage

Preprocessing:

- JSONPATH: $.metrics.VMCachedIOPSConsumedPercentage.average

Azure Azure: VM uncached bandwidth consumed percentage

Percentage of uncached disk bandwidth consumed by the VM.

DEPENDENT azure.vm.uncached.bandwidth.consumed.percentage

Preprocessing:

- JSONPATH: $.metrics.VMUncachedBandwidthConsumedPercentage.average

Azure Azure: VM uncached IOPS consumed percentage

Percentage of uncached disk IOPS consumed by the VM.

DEPENDENT azure.vm.uncached.iops.consumed.percentage

Preprocessing:

- JSONPATH: $.metrics.VMUncachedIOPSConsumedPercentage.average

Azure Azure: Network in total

The number of bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic).

DEPENDENT azure.vm.network.in.total

Preprocessing:

- JSONPATH: $.metrics.NetworkInTotal.total

⛔️ON_FAIL: DISCARD_VALUE ->

- MULTIPLIER: 0.1333

Azure Azure: Network out total

The number of bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic).

DEPENDENT azure.vm.network.out.total

Preprocessing:

- JSONPATH: $.metrics.NetworkOutTotal.total

⛔️ON_FAIL: DISCARD_VALUE ->

- MULTIPLIER: 0.1333

Azure Azure: Available memory

Amount of physical memory, in bytes, immediately available for allocation to a process or for system use in the Virtual Machine.

DEPENDENT azure.vm.memory.available

Preprocessing:

- JSONPATH: $.metrics.AvailableMemoryBytes.average

Triggers

Name Description Expression Severity Dependencies and additional info
Azure: There are errors in requests to API

Zabbix has received errors in requests to API.

length(last(/Azure virtual machine by HTTP/azure.vm.data.errors))>0 AVERAGE
Azure: Virtual machine is unavailable

The resource state is unavailable.

last(/Azure virtual machine by HTTP/azure.vm.availability.state)=2 HIGH
Azure: Virtual machine is degraded

The resource is in degraded state.

last(/Azure virtual machine by HTTP/azure.vm.availability.state)=1 AVERAGE
Azure: Virtual machine is in unknown state

The resource state is unknown.

last(/Azure virtual machine by HTTP/azure.vm.availability.state)=3 WARNING
Azure: High CPU utilization

CPU utilization is too high. the system might be slow to respond.

min(/Azure virtual machine by HTTP/azure.vm.cpu.percentage,5m)>{$AZURE.VM.CPU.UTIL.CRIT} HIGH

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.

Articles and documentation

+ Propose new article

Didn't find what you are looking for?