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.4
Also available for: 6.2 6.0

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

Azure by HTTP

Overview

  • This template is designed to monitor Microsoft Azure by HTTP.
  • It works without any external scripts and uses the script item.
  • Currently, the template supports the discovery of virtual machines (VMs), Cosmos DB for MongoDB, storage accounts, Microsoft SQL, MySQL, and PostgreSQL servers.

Included Monitoring Templates

  • Azure Virtual Machine by HTTP
  • Azure MySQL Flexible Server by HTTP
  • Azure MySQL Single Server by HTTP
  • Azure PostgreSQL Flexible Server by HTTP
  • Azure PostgreSQL Single Server by HTTP
  • Azure Microsoft SQL Serverless Database by HTTP
  • Azure Microsoft SQL Database by HTTP
  • Azure Cost Management by HTTP

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • Microsoft Azure

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Create an Azure service principal via the Azure command-line interface (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.

  1. Link the template to a host.
  2. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, and {$AZURE.SUBSCRIPTION.ID}.

Macros used

Name Description Default
{$AZURE.PROXY}

Sets HTTP proxy value. If this macro is empty then no proxy is used.

{$AZURE.APP.ID}

The App ID of Microsoft Azure.

{$AZURE.PASSWORD}

Microsoft Azure password.

{$AZURE.DATA.TIMEOUT}

A response timeout for API.

15s
{$AZURE.TENANT.ID}

Microsoft Azure tenant ID.

{$AZURE.SUBSCRIPTION.ID}

Microsoft Azure subscription ID.

{$AZURE.VM.NAME.MATCHES}

This macro is used in virtual machines discovery rule.

.*
{$AZURE.VM.NAME.NOT.MATCHES}

This macro is used in virtual machines discovery rule.

CHANGE_IF_NEEDED
{$AZURE.VM.LOCATION.MATCHES}

This macro is used in virtual machines discovery rule.

.*
{$AZURE.VM.LOCATION.NOT.MATCHES}

This macro is used in virtual machines discovery rule.

CHANGE_IF_NEEDED
{$AZURE.STORAGE.ACC.NAME.MATCHES}

This macro is used in storage accounts discovery rule.

.*
{$AZURE.STORAGE.ACC.NAME.NOT.MATCHES}

This macro is used in storage accounts discovery rule.

CHANGE_IF_NEEDED
{$AZURE.STORAGE.ACC.LOCATION.MATCHES}

This macro is used in storage accounts discovery rule.

.*
{$AZURE.STORAGE.ACC.LOCATION.NOT.MATCHES}

This macro is used in storage accounts discovery rule.

CHANGE_IF_NEEDED
{$AZURE.STORAGE.ACC.AVAILABILITY}

The warning threshold of the storage account availability.

70
{$AZURE.STORAGE.ACC.BLOB.AVAILABILITY}

The warning threshold of the storage account blob services availability.

70
{$AZURE.STORAGE.ACC.TABLE.AVAILABILITY}

The warning threshold of the storage account table services availability.

70
{$AZURE.RESOURCE.GROUP.MATCHES}

This macro is used in discovery rules.

.*
{$AZURE.RESOURCE.GROUP.NOT.MATCHES}

This macro is used in discovery rules.

CHANGE_IF_NEEDED
{$AZURE.MYSQL.DB.NAME.MATCHES}

This macro is used in MySQL servers discovery rule.

.*
{$AZURE.MYSQL.DB.NAME.NOT.MATCHES}

This macro is used in MySQL servers discovery rule.

CHANGE_IF_NEEDED
{$AZURE.MYSQL.DB.LOCATION.MATCHES}

This macro is used in MySQL servers discovery rule.

.*
{$AZURE.MYSQL.DB.LOCATION.NOT.MATCHES}

This macro is used in MySQL servers discovery rule.

CHANGE_IF_NEEDED
{$AZURE.PGSQL.DB.NAME.MATCHES}

This macro is used in PostgreSQL servers discovery rule.

.*
{$AZURE.PGSQL.DB.NAME.NOT.MATCHES}

This macro is used in PostgreSQL servers discovery rule.

CHANGE_IF_NEEDED
{$AZURE.PGSQL.DB.LOCATION.MATCHES}

This macro is used in PostgreSQL servers discovery rule.

.*
{$AZURE.PGSQL.DB.LOCATION.NOT.MATCHES}

This macro is used in PostgreSQL servers discovery rule.

CHANGE_IF_NEEDED
{$AZURE.MSSQL.DB.NAME.MATCHES}

This macro is used in Microsoft SQL databases discovery rule.

.*
{$AZURE.MSSQL.DB.NAME.NOT.MATCHES}

This macro is used in Microsoft SQL databases discovery rule.

CHANGE_IF_NEEDED
{$AZURE.MSSQL.DB.LOCATION.MATCHES}

This macro is used in Microsoft SQL databases discovery rule.

.*
{$AZURE.MSSQL.DB.LOCATION.NOT.MATCHES}

This macro is used in Microsoft SQL databases discovery rule.

CHANGE_IF_NEEDED
{$AZURE.MSSQL.DB.SIZE.NOT.MATCHES}

This macro is used in Microsoft SQL databases discovery rule.

^System$
{$AZURE.COSMOS.MONGO.DB.NAME.MATCHES}

This macro is used in Microsoft Cosmos DB account discovery rule.

.*
{$AZURE.COSMOS.MONGO.DB.NAME.NOT.MATCHES}

This macro is used in Microsoft Cosmos DB account discovery rule.

CHANGE_IF_NEEDED
{$AZURE.COSMOS.MONGO.DB.LOCATION.MATCHES}

This macro is used in Microsoft Cosmos DB account discovery rule.

.*
{$AZURE.COSMOS.MONGO.DB.LOCATION.NOT.MATCHES}

This macro is used in Microsoft Cosmos DB account discovery rule.

CHANGE_IF_NEEDED

Items

Name Description Type Key and additional info
Azure: Get resources

The result of API requests is expressed in the JSON.

Script azure.get.resources
Azure: Get errors

A list of errors from API requests.

Dependent item azure.get.errors

Preprocessing

  • JSON Path: $.errors

  • Discard unchanged with heartbeat: 1h

Azure: Get storage accounts

The result of API requests is expressed in the JSON.

Script azure.get.storage.acc
Azure: Get storage accounts errors

The errors from API requests.

Dependent item azure.get.storage.acc.errors

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Set value to

  • Discard unchanged with heartbeat: 1h

Triggers

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

Zabbix has received errors in response to API requests.

length(last(/Azure by HTTP/azure.get.errors))>0 Average
Azure: There are errors in storages requests to API

Zabbix has received errors in response to API requests.

length(last(/Azure by HTTP/azure.get.storage.acc.errors))>0 Average Depends on:
  • Azure: There are errors in requests to API

LLD rule Storage accounts discovery

Name Description Type Key and additional info
Storage accounts discovery

The list of all storage accounts available under the subscription.

Dependent item azure.storage.acc.discovery

Preprocessing

  • Discard unchanged with heartbeat: 6h

Item prototypes for Storage accounts discovery

Name Description Type Key and additional info
Azure: Storage account [{#NAME}]: Get data

The HTTP API endpoint that returns storage metrics with the name [{#NAME}].

Script azure.get.storage.acc[{#NAME}]
Azure: Storage account [{#NAME}]: Used Capacity

The amount of storage used by the storage account with the name [{#NAME}], expressed in bytes.

For standard storage accounts, it's the sum of capacity used by blob, table, file, and queue.

For premium storage accounts and blob storage accounts, it is the same as BlobCapacity or FileCapacity.

Dependent item azure.storage.used.capacity[{#NAME}]

Preprocessing

  • JSON Path: $.storageAccount.UsedCapacity.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Transactions

The number of requests made to the storage service or a specified API operation.

This number includes successful and failed requests and also requests that produced errors.

Use ResponseType dimension for the number of different types of responses.

Dependent item azure.storage.transactions[{#NAME}]

Preprocessing

  • JSON Path: $.storageAccount.Transactions.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Ingress

The amount of ingress data, expressed in bytes. This number includes ingress from an external client into Azure Storage and also ingress within Azure.

Dependent item azure.storage.ingress[{#NAME}]

Preprocessing

  • JSON Path: $.storageAccount.Ingress.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Egress

The amount of egress data. This number includes egress to external client from Azure Storage and also egress within Azure.

As a result, this number does not reflect billable egress.

Dependent item azure.storage.engress[{#NAME}]

Preprocessing

  • JSON Path: $.storageAccount.Egress.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Success Server Latency

The average time used to process a successful request by Azure Storage.

This value does not include the network latency specified in SuccessE2ELatency.

Dependent item azure.storage.success.server.latency[{#NAME}]

Preprocessing

  • JSON Path: $.storageAccount.SuccessServerLatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Success E2E Latency

The average end-to-end latency of successful requests made to a storage service or the specified API operation, expressed in milliseconds.

This value includes the required processing time within Azure Storage to read the request, send the response, and receive acknowledgment of the response.

Dependent item azure.storage.success.e2e.latency[{#NAME}]

Preprocessing

  • JSON Path: $.storageAccount.SuccessE2ELatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Availability

The percentage of availability for the storage service or a specified API operation.

Availability is calculated by taking the TotalBillableRequests value and dividing it by the number of applicable requests, including those that produced unexpected errors.

All unexpected errors result in reduced availability for the storage service or the specified API operation.

Dependent item azure.storage.availability[{#NAME}]

Preprocessing

  • JSON Path: $.storageAccount.Availability.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Blob Capacity

The amount of storage used by the blob service of the storage account with the name [{#NAME}], expressed in bytes.

Dependent item azure.storage.blob.capacity[{#NAME}]

Preprocessing

  • JSON Path: $.blobServices.BlobCapacity.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Blob Count

The number of blob objects stored in the storage account with the name [{#NAME}].

Dependent item azure.storage.blob.count[{#NAME}]

Preprocessing

  • JSON Path: $.blobServices.BlobCount.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Blob Container Count

The number of containers in the storage account with the name [{#NAME}].

Dependent item azure.storage.blob.container.count[{#NAME}]

Preprocessing

  • JSON Path: $.blobServices.ContainerCount.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Blob Index Capacity

The amount of storage with the name [{#NAME}] used by the Azure Data Lake Storage Gen2 hierarchical index.

Dependent item azure.storage.blob.index.capacity[{#NAME}]

Preprocessing

  • JSON Path: $.blobServices.IndexCapacity.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Blob Transactions

The number of requests made to the storage service or a specified API operation.

This number includes successful and failed requests and also requests that produced errors.

Use ResponseType dimension for the number of different types of responses.

Dependent item azure.storage.blob.transactions[{#NAME}]

Preprocessing

  • JSON Path: $.blobServices.Transactions.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Blob Ingress

The amount of ingress data, expressed in bytes. This number includes ingress from an external client into Azure Storage and also ingress within Azure.

Dependent item azure.storage.blob.ingress[{#NAME}]

Preprocessing

  • JSON Path: $.blobServices.Ingress.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Blob Egress

The amount of egress data. This number includes egress to external client from Azure Storage and also egress within Azure.

As a result, this number does not reflect billable egress.

Dependent item azure.storage.blob.engress[{#NAME}]

Preprocessing

  • JSON Path: $.blobServices.Egress.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Blob Success Server Latency

The average time used to process a successful request by Azure Storage.

This value does not include the network latency specified in SuccessE2ELatency.

Dependent item azure.storage.blob.success.server.latency[{#NAME}]

Preprocessing

  • JSON Path: $.blobServices.SuccessServerLatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Blob Success E2E Latency

The average end-to-end latency of successful requests made to a storage service or the specified API operation, expressed in milliseconds.

This value includes the required processing time within Azure Storage to read the request, send the response, and receive acknowledgment of the response.

Dependent item azure.storage.blob.success.e2e.latency[{#NAME}]

Preprocessing

  • JSON Path: $.blobServices.SuccessE2ELatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Blob Availability

The percentage of availability for the storage service or a specified API operation.

Availability is calculated by taking the TotalBillableRequests value and dividing it by the number of applicable requests, including those that produced unexpected errors.

All unexpected errors result in reduced availability for the storage service or the specified API operation.

Dependent item azure.storage.blob.availability[{#NAME}]

Preprocessing

  • JSON Path: $.blobServices.Availability.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Table Capacity

The amount of storage used by the table service of the storage account with the name [{#NAME}], expressed in bytes.

Dependent item azure.storage.table.capacity[{#NAME}]

Preprocessing

  • JSON Path: $.tableServices.TableCapacity.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Table Count

The number of tables in the storage account with the name [{#NAME}].

Dependent item azure.storage.table.count[{#NAME}]

Preprocessing

  • JSON Path: $.tableServices.TableCount.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Table Entity Count

The number of table entities in the storage account with the name [{#NAME}].

Dependent item azure.storage.table.entity.count[{#NAME}]

Preprocessing

  • JSON Path: $.tableServices.TableEntityCount.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Table Transactions

The number of requests made to the storage service or a specified API operation.

This number includes successful and failed requests and also requests that produced errors.

Use ResponseType dimension for the number of different types of responses.

Dependent item azure.storage.table.transactions[{#NAME}]

Preprocessing

  • JSON Path: $.tableServices.Transactions.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Table Ingress

The amount of ingress data, expressed in bytes. This number includes ingress from an external client into Azure Storage and also ingress within Azure.

Dependent item azure.storage.table.ingress[{#NAME}]

Preprocessing

  • JSON Path: $.tableServices.Ingress.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Table Egress

The amount of egress data. This number includes egress to external client from Azure Storage and also egress within Azure.

As a result, this number does not reflect billable egress.

Dependent item azure.storage.table.engress[{#NAME}]

Preprocessing

  • JSON Path: $.tableServices.Egress.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Table Success Server Latency

The average time used to process a successful request by Azure Storage.

This value does not include the network latency specified in SuccessE2ELatency.

Dependent item azure.storage.table.success.server.latency[{#NAME}]

Preprocessing

  • JSON Path: $.tableServices.SuccessServerLatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Table Success E2E Latency

The average end-to-end latency of successful requests made to a storage service or the specified API operation, expressed in milliseconds.

This value includes the required processing time within Azure Storage to read the request, send the response, and receive acknowledgment of the response.

Dependent item azure.storage.table.success.e2e.latency[{#NAME}]

Preprocessing

  • JSON Path: $.tableServices.SuccessE2ELatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Table Availability

The percentage of availability for the storage service or a specified API operation.

Availability is calculated by taking the TotalBillableRequests value and dividing it by the number of applicable requests, including those that produced unexpected errors.

All unexpected errors result in reduced availability for the storage service or the specified API operation.

Dependent item azure.storage.table.availability[{#NAME}]

Preprocessing

  • JSON Path: $.tableServices.Availability.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Capacity

The amount of file storage used by the storage account with the name [{#NAME}], expressed in bytes.

Dependent item azure.storage.file.capacity[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.FileCapacity.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Count

The number of files in the storage account with the name [{#NAME}].

Dependent item azure.storage.file.count[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.FileCount.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Share Count

The number of file shares in the storage account.

Dependent item azure.storage.file.share.count[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.FileShareCount.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Share Snapshot Count

The number of snapshots present on the share in storage account's Files Service.

Dependent item azure.storage.file.shares.snapshot.count[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.FileShareSnapshotCount.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Share Snapshot Size

The amount of storage used by the snapshots in storage account's File service, in bytes.

Dependent item azure.storage.file.share.snapshot.size[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.FileShareSnapshotSize.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Share Capacity Quota

The upper limit on the amount of storage that can be used by Azure Files Service, in bytes.

Dependent item azure.storage.file.share.capacity.quota[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.FileShareCapacityQuota.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Transactions

The number of requests made to the storage service or a specified API operation.

This number includes successful and failed requests and also requests that produced errors.

Use ResponseType dimension for the number of different types of responses.

Dependent item azure.storage.file.transactions[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.Transactions.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Ingress

The amount of ingress data, expressed in bytes. This number includes ingress from an external client into Azure Storage and also ingress within Azure.

Dependent item azure.storage.file.ingress[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.Ingress.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Egress

The amount of egress data. This number includes egress to external client from Azure Storage and also egress within Azure.

As a result, this number does not reflect billable egress.

Dependent item azure.storage.file.engress[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.Egress.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Success Server Latency

The average time used to process a successful request by Azure Storage.

This value does not include the network latency specified in SuccessE2ELatency.

Dependent item azure.storage.file.success.server.latency[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.SuccessServerLatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: File Success E2E Latency

The average end-to-end latency of successful requests made to a storage service or the specified API operation, expressed in milliseconds.

This value includes the required processing time within Azure Storage to read the request, send the response, and receive acknowledgment of the response.

Dependent item azure.storage.file.success.e2e.latency[{#NAME}]

Preprocessing

  • JSON Path: $.fileServices.file.SuccessE2ELatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Queue Capacity

The amount of queue storage used by the storage account with the name [{#NAME}], expressed in bytes.

Dependent item azure.storage.queue.capacity[{#NAME}]

Preprocessing

  • JSON Path: $.queueServices.QueueCapacity.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Queue Count

The number of queues in the storage account with the name [{#NAME}].

Dependent item azure.storage.queue.count[{#NAME}]

Preprocessing

  • JSON Path: $.queueServices.QueueCount.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Queue Message Count

The number of unexpired queue messages in the storage account with the name [{#NAME}].

Dependent item azure.storage.queue.message.count[{#NAME}]

Preprocessing

  • JSON Path: $.queueServices.QueueMessageCount.average

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Queue Transactions

The number of requests made to the storage service or a specified API operation.

This number includes successful and failed requests and also requests that produced errors.

Use ResponseType dimension for the number of different types of responses.

Dependent item azure.storage.queue.transactions[{#NAME}]

Preprocessing

  • JSON Path: $.queueServices.Transactions.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Queue Ingress

The amount of ingress data, expressed in bytes. This number includes ingress from an external client into Azure Storage and also ingress within Azure.

Dependent item azure.storage.queue.ingress[{#NAME}]

Preprocessing

  • JSON Path: $.queueServices.Ingress.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Queue Egress

The amount of egress data. This number includes egress to external client from Azure Storage and also egress within Azure.

As a result, this number does not reflect billable egress.

Dependent item azure.storage.queue.engress[{#NAME}]

Preprocessing

  • JSON Path: $.queueServices.Egress.total

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Queue Success Server Latency

The average time used to process a successful request by Azure Storage.

This value does not include the network latency specified in SuccessE2ELatency.

Dependent item azure.storage.queue.success.server.latency[{#NAME}]

Preprocessing

  • JSON Path: $.queueServices.SuccessServerLatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

  • Discard unchanged with heartbeat: 3h

Azure: Storage account [{#NAME}]: Queue Success E2E Latency

The average end-to-end latency of successful requests made to a storage service or the specified API operation, expressed in milliseconds.

This value includes the required processing time within Azure Storage to read the request, send the response, and receive acknowledgment of the response.

Dependent item azure.storage.queue.success.e2e.latency[{#NAME}]

Preprocessing

  • JSON Path: $.queueServices.queue.SuccessE2ELatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

  • Discard unchanged with heartbeat: 3h

Trigger prototypes for Storage accounts discovery

Name Description Expression Severity Dependencies and additional info
Azure: Storage account [{#NAME}]: Availability is low (min(/Azure by HTTP/azure.storage.availability[{#NAME}],#3))<{$AZURE.STORAGE.ACC.AVAILABILITY:"{#NAME}"} Warning
Azure: Storage account [{#NAME}]: Blob Availability is low (min(/Azure by HTTP/azure.storage.blob.availability[{#NAME}],#3))<{$AZURE.STORAGE.ACC.BLOB.AVAILABILITY:"{#NAME}"} Warning
Azure: Storage account [{#NAME}]: Table Availability is low (min(/Azure by HTTP/azure.storage.table.availability[{#NAME}],#3))<{$AZURE.STORAGE.ACC.TABLE.AVAILABILITY:"{#NAME}"} Warning

LLD rule Virtual machines discovery

Name Description Type Key and additional info
Virtual machines discovery

The list of the virtual machines is provided by the subscription.

Dependent item azure.vm.discovery

Preprocessing

  • JSON Path: $.resources.value

  • Discard unchanged with heartbeat: 6h

LLD rule MySQL servers discovery

Name Description Type Key and additional info
MySQL servers discovery

The list of the MySQL servers is provided by the subscription.

Dependent item azure.mysql.servers.discovery

Preprocessing

  • JSON Path: $.resources.value

  • Discard unchanged with heartbeat: 6h

LLD rule PostgreSQL servers discovery

Name Description Type Key and additional info
PostgreSQL servers discovery

The list of the PostgreSQL servers is provided by the subscription.

Dependent item azure.pgsql.servers.discovery

Preprocessing

  • JSON Path: $.resources.value

  • Discard unchanged with heartbeat: 6h

LLD rule Microsoft SQL databases discovery

Name Description Type Key and additional info
Microsoft SQL databases discovery

The list of the Microsoft SQL databases is provided by the subscription.

Dependent item azure.mssql.databases.discovery

Preprocessing

  • JSON Path: $.resources.value

  • Discard unchanged with heartbeat: 6h

LLD rule Cosmos DB account discovery

Name Description Type Key and additional info
Cosmos DB account discovery

The list of the Cosmos databases is provided by the subscription.

Dependent item azure.cosmos.mongo.db.discovery

Preprocessing

  • JSON Path: $.resources.value

  • Discard unchanged with heartbeat: 6h

Azure Virtual Machine by HTTP

Overview

This template is designed to monitor Microsoft Azure virtual machines (VMs) by HTTP. It works without any external scripts and uses the script item.

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • Microsoft Azure virtual machines

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Create an Azure service principal via the Azure command-line interface (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.

  1. Link the template to a host.
  2. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.

Macros used

Name Description Default
{$AZURE.PROXY}

Sets HTTP proxy value. If this macro is empty then no proxy is used.

{$AZURE.APP.ID}

The App ID of Microsoft Azure.

{$AZURE.PASSWORD}

Microsoft Azure password.

{$AZURE.DATA.TIMEOUT}

A response timeout for API.

15s
{$AZURE.TENANT.ID}

Microsoft Azure tenant ID.

{$AZURE.SUBSCRIPTION.ID}

Microsoft Azure subscription ID.

{$AZURE.RESOURCE.ID}

Microsoft Azure virtual machine ID.

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

The critical threshold of CPU utilization, expressed in %.

90

Items

Name Description Type Key and additional info
Azure: Get data

The result of API requests is expressed in the JSON.

Script azure.vm.data.get
Azure: Get errors

A list of errors from API requests.

Dependent item azure.vm.data.errors

Preprocessing

  • JSON Path: $.errors

  • Discard unchanged with heartbeat: 1h

Azure: Availability state

The availability status of the resource.

Dependent item azure.vm.availability.state

Preprocessing

  • JSON Path: $.health.availabilityState

    ⛔️Custom on fail: Set value to: 3

  • Replace: Available -> 0

  • Replace: Degraded -> 1

  • Replace: Unavailable -> 2

  • Replace: Unknown -> 3

  • In range: 0 -> 3

    ⛔️Custom on fail: Set value to: 3

  • Discard unchanged with heartbeat: 1h

Azure: Availability status detailed

The summary description of availability status.

Dependent item azure.vm.availability.details

Preprocessing

  • JSON Path: $.health.summary

  • Discard unchanged with heartbeat: 1h

Azure: Percentage CPU

The percentage of allocated computing units that are currently in use by VMs.

Dependent item azure.vm.cpu.percentage

Preprocessing

  • JSON Path: $.metrics.PercentageCPU.average

Azure: Disk read rate

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

Dependent item azure.vm.disk.read.bytes

Preprocessing

  • JSON Path: $.metrics.DiskReadBytes.total

  • Custom multiplier: 0.0167

Azure: Disk write rate

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

Dependent item azure.vm.disk.write.bytes

Preprocessing

  • JSON Path: $.metrics.DiskWriteBytes.total

  • Custom multiplier: 0.0167

Azure: Disk read operations/sec

The count of read operations from the disk per second.

Dependent item azure.vm.disk.read.ops

Preprocessing

  • JSON Path: $.metrics.DiskReadOperationsSec.average

Azure: Disk write operations/sec

The count of write operations to the disk per second.

Dependent item azure.vm.disk.write.ops

Preprocessing

  • JSON Path: $.metrics.DiskWriteOperationsSec.average

Azure: CPU credits remaining

The total number of credits available to burst. Available only on B-series burstable VMs.

Dependent item azure.vm.cpu.credits.remaining

Preprocessing

  • JSON Path: $.metrics.CPUCreditsRemaining.average

    ⛔️Custom on fail: Discard value

Azure: CPU credits consumed

The total number of credits consumed by the virtual machine. Only available on B-series burstable VMs.

Dependent item azure.vm.cpu.credits.consumed

Preprocessing

  • JSON Path: $.metrics.CPUCreditsConsumed.average

    ⛔️Custom on fail: Discard value

Azure: Data disk read rate

Bytes per second read from a single disk during the monitoring period.

Dependent item azure.vm.data.disk.read.bps

Preprocessing

  • JSON Path: $.metrics.DataDiskReadBytessec.average

    ⛔️Custom on fail: Discard value

Azure: Data disk write rate

Bytes per second written to a single disk during the monitoring period.

Dependent item azure.vm.data.disk.write.bps

Preprocessing

  • JSON Path: $.metrics.DataDiskWriteBytessec.average

    ⛔️Custom on fail: Discard value

Azure: Data disk read operations/sec

The read IOPS from a single disk during the monitoring period.

Dependent item azure.vm.data.disk.read.ops

Preprocessing

  • JSON Path: $.metrics.DataDiskReadOperationsSec.average

    ⛔️Custom on fail: Discard value

Azure: Data disk write operations/sec

The write IOPS from a single disk during the monitoring period.

Dependent item azure.vm.data.disk.write.ops

Preprocessing

  • JSON Path: $.metrics.DataDiskWriteOperationsSec.average

    ⛔️Custom on fail: Discard value

Azure: Data disk queue depth

The number of outstanding IO requests that are waiting to be performed on a disk.

Dependent item azure.vm.data.disk.queue.depth

Preprocessing

  • JSON Path: $.metrics.DataDiskQueueDepth.average

    ⛔️Custom on fail: Discard value

Azure: Data disk bandwidth consumed percentage

The percentage of the data disk bandwidth consumed per minute.

Dependent item azure.vm.data.disk.bandwidth.consumed.percentage

Preprocessing

  • JSON Path: $.metrics.DataDiskBandwidthConsumedPercentage.average

    ⛔️Custom on fail: Discard value

Azure: Data disk IOPS consumed percentage

The percentage of the data disk input/output (I/O) consumed per minute.

Dependent item azure.vm.data.disk.iops.consumed.percentage

Preprocessing

  • JSON Path: $.metrics.DataDiskIOPSConsumedPercentage.average

    ⛔️Custom on fail: Discard value

Azure: Data disk target bandwidth

Baseline bytes per second throughput that the data disk can achieve without bursting.

Dependent item azure.vm.data.disk.target.bandwidth

Preprocessing

  • JSON Path: $.metrics.DataDiskTargetBandwidth.average

    ⛔️Custom on fail: Discard value

Azure: Data disk target IOPS

The baseline IOPS that the data disk can achieve without bursting.

Dependent item azure.vm.data.disk.target.iops

Preprocessing

  • JSON Path: $.metrics.DataDiskTargetIOPS.average

    ⛔️Custom on fail: Discard value

Azure: Data disk max burst bandwidth

The maximum bytes per second throughput that the data disk can achieve with bursting.

Dependent item azure.vm.data.disk.max.bandwidth

Preprocessing

  • JSON Path: $.metrics.DataDiskMaxBurstBandwidth.average

    ⛔️Custom on fail: Discard value

Azure: Data disk max burst IOPS

The maximum IOPS that the data disk can achieve with bursting.

Dependent item azure.vm.data.disk.max.iops

Preprocessing

  • JSON Path: $.metrics.DataDiskMaxBurstIOPS.average

    ⛔️Custom on fail: Discard value

Azure: Data disk used burst BPS credits percentage

The percentage of the data disk burst bandwidth credits used so far.

Dependent item azure.vm.data.disk.used.burst.bandwidth

Preprocessing

  • JSON Path: $.metrics.DataDiskUsedBurstBPSCreditsPercentage.average

    ⛔️Custom on fail: Discard value

Azure: Data disk used burst IO credits percentage

The percentage of the data disk burst I/O credits used so far.

Dependent item azure.vm.data.disk.used.burst.iops

Preprocessing

  • JSON Path: $.metrics.DataDiskUsedBurstIOCreditsPercentage.average

    ⛔️Custom on fail: Discard value

Azure: OS disk read rate

Bytes per second read from a single disk during the monitoring period for OS disk.

Dependent item azure.vm.os.disk.read.bps

Preprocessing

  • JSON Path: $.metrics.OSDiskReadBytessec.average

    ⛔️Custom on fail: Discard value

Azure: OS disk write rate

Bytes per second written to a single disk during the monitoring period for OS disk.

Dependent item azure.vm.os.disk.write.bps

Preprocessing

  • JSON Path: $.metrics.OSDiskWriteBytessec.average

    ⛔️Custom on fail: Discard value

Azure: OS disk read operations/sec

The read IOPS from a single disk during the monitoring period for OS disk.

Dependent item azure.vm.os.disk.read.ops

Preprocessing

  • JSON Path: $.metrics.OSDiskReadOperationsSec.average

    ⛔️Custom on fail: Discard value

Azure: OS disk write operations/sec

The write IOPS from a single disk during the monitoring period for OS disk.

Dependent item azure.vm.os.disk.write.ops

Preprocessing

  • JSON Path: $.metrics.OSDiskWriteOperationsSec.average

    ⛔️Custom on fail: Discard value

Azure: OS disk queue depth

The OS disk queue depth (or queue length).

Dependent item azure.vm.os.disk.queue.depth

Preprocessing

  • JSON Path: $.metrics.OSDiskQueueDepth.average

    ⛔️Custom on fail: Discard value

Azure: OS disk bandwidth consumed percentage

The percentage of the operating system's disk bandwidth consumed per minute.

Dependent item azure.vm.os.disk.bandwidth.consumed.percentage

Preprocessing

  • JSON Path: $.metrics.OSDiskBandwidthConsumedPercentage.average

    ⛔️Custom on fail: Discard value

Azure: OS disk IOPS consumed percentage

The percentage of the operating system's disk I/Os consumed per minute.

Dependent item azure.vm.os.disk.iops.consumed.percentage

Preprocessing

  • JSON Path: $.metrics.OSDiskIOPSConsumedPercentage.average

    ⛔️Custom on fail: Discard value

Azure: OS disk target bandwidth

Baseline bytes per second throughput that the OS disk can achieve without bursting.

Dependent item azure.vm.os.disk.target.bandwidth

Preprocessing

  • JSON Path: $.metrics.OSDiskTargetBandwidth.average

    ⛔️Custom on fail: Discard value

Azure: OS disk target IOPS

Baseline IOPS that the OS disk can achieve without bursting.

Dependent item azure.vm.os.disk.target.iops

Preprocessing

  • JSON Path: $.metrics.OSDiskTargetIOPS.average

    ⛔️Custom on fail: Discard value

Azure: OS disk max burst bandwidth

Maximum bytes per second throughput that the OS disk can achieve with bursting.

Dependent item azure.vm.os.disk.max.bandwidth

Preprocessing

  • JSON Path: $.metrics.OSDiskMaxBurstBandwidth.average

    ⛔️Custom on fail: Discard value

Azure: OS disk max burst IOPS

Maximum IOPS that the OS disk can achieve with bursting.

Dependent item azure.vm.os.disk.max.iops

Preprocessing

  • JSON Path: $.metrics.OSDiskMaxBurstIOPS.average

    ⛔️Custom on fail: Discard value

Azure: OS disk used burst BPS credits percentage

The percentage of the OS disk burst bandwidth credits used so far.

Dependent item azure.vm.os.disk.used.burst.bandwidth

Preprocessing

  • JSON Path: $.metrics.OSDiskUsedBurstBPSCreditsPercentage.average

    ⛔️Custom on fail: Discard value

Azure: OS disk used burst IO credits percentage

The percentage of the OS disk burst I/O credits used so far.

Dependent item azure.vm.os.disk.used.burst.iops

Preprocessing

  • JSON Path: $.metrics.OSDiskUsedBurstIOCreditsPercentage.average

    ⛔️Custom on fail: Discard value

Azure: Inbound flows

The number of current flows in the inbound direction (the traffic going into the VM).

Dependent item azure.vm.flows.inbound

Preprocessing

  • JSON Path: $.metrics.InboundFlows.average

    ⛔️Custom on fail: Discard value

Azure: Outbound flows

The number of current flows in the outbound direction (the traffic going out of the VM).

Dependent item azure.vm.flows.outbound

Preprocessing

  • JSON Path: $.metrics.OutboundFlows.average

    ⛔️Custom on fail: Discard value

Azure: Inbound flows max creation rate

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

Dependent item azure.vm.flows.inbound.max

Preprocessing

  • JSON Path: $.metrics.InboundFlowsMaximumCreationRate.average

    ⛔️Custom on fail: Discard value

Azure: Outbound flows max creation rate

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

Dependent item azure.vm.flows.outbound.max

Preprocessing

  • JSON Path: $.metrics.OutboundFlowsMaximumCreationRate.average

    ⛔️Custom on fail: Discard value

Azure: Premium data disk cache read hit

Premium data disk cache read hit.

Dependent item azure.vm.premium.data.disk.cache.read.hit

Preprocessing

  • JSON Path: $.metrics.PremiumDataDiskCacheReadHit.average

    ⛔️Custom on fail: Discard value

Azure: Premium data disk cache read miss

Premium data disk cache read miss.

Dependent item azure.vm.premium.data.disk.cache.read.miss

Preprocessing

  • JSON Path: $.metrics.PremiumDataDiskCacheReadMiss.average

    ⛔️Custom on fail: Discard value

Azure: Premium OS disk cache read hit

Premium OS disk cache read hit.

Dependent item azure.vm.premium.os.disk.cache.read.hit

Preprocessing

  • JSON Path: $.metrics.PremiumOSDiskCacheReadHit.average

    ⛔️Custom on fail: Discard value

Azure: Premium OS disk cache read miss

Premium OS disk cache read miss.

Dependent item azure.vm.premium.os.disk.cache.read.miss

Preprocessing

  • JSON Path: $.metrics.PremiumOSDiskCacheReadMiss.average

    ⛔️Custom on fail: Discard value

Azure: VM cached bandwidth consumed percentage

The percentage of the cached disk bandwidth consumed by the VM.

Dependent item azure.vm.cached.bandwidth.consumed.percentage

Preprocessing

  • JSON Path: $.metrics.VMCachedBandwidthConsumedPercentage.average

Azure: VM cached IOPS consumed percentage

The percentage of the cached disk IOPS consumed by the VM.

Dependent item azure.vm.cached.iops.consumed.percentage

Preprocessing

  • JSON Path: $.metrics.VMCachedIOPSConsumedPercentage.average

Azure: VM uncached bandwidth consumed percentage

The percentage of the uncached disk bandwidth consumed by the VM.

Dependent item azure.vm.uncached.bandwidth.consumed.percentage

Preprocessing

  • JSON Path: $.metrics.VMUncachedBandwidthConsumedPercentage.average

Azure: VM uncached IOPS consumed percentage

The percentage of the uncached disk IOPS consumed by the VM.

Dependent item azure.vm.uncached.iops.consumed.percentage

Preprocessing

  • JSON Path: $.metrics.VMUncachedIOPSConsumedPercentage.average

Azure: Network in total

The number of bytes received by the VMs via all network interfaces (incoming traffic).

Dependent item azure.vm.network.in.total

Preprocessing

  • JSON Path: $.metrics.NetworkInTotal.total

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1333

Azure: Network out total

The number of bytes sent by the VMs via all network interfaces (outgoing traffic).

Dependent item azure.vm.network.out.total

Preprocessing

  • JSON Path: $.metrics.NetworkOutTotal.total

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1333

Azure: Available memory

The amount of physical memory (in bytes) immediately available for the allocation to a process or for a system use in the VM.

Dependent item azure.vm.memory.available

Preprocessing

  • JSON Path: $.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 response to API requests.

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

The 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

Azure MySQL Flexible Server by HTTP

Overview

This template is designed to monitor Microsoft Azure MySQL flexible servers by HTTP. It works without any external scripts and uses the script item.

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • Microsoft Azure MySQL flexible servers

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Create an Azure service principal via the Azure command-line interface (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.

  1. Link the template to a host.
  2. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.

Macros used

Name Description Default
{$AZURE.PROXY}

Sets HTTP proxy value. If this macro is empty then no proxy is used.

{$AZURE.APP.ID}

The App ID of Microsoft Azure.

{$AZURE.PASSWORD}

Microsoft Azure password.

{$AZURE.DATA.TIMEOUT}

A response timeout for API.

15s
{$AZURE.TENANT.ID}

Microsoft Azure tenant ID.

{$AZURE.SUBSCRIPTION.ID}

Microsoft Azure subscription ID.

{$AZURE.RESOURCE.ID}

Microsoft Azure MySQL server ID.

{$AZURE.DB.CPU.UTIL.CRIT}

The critical threshold of CPU utilization, expressed in %.

90
{$AZURE.DB.STORAGE.PUSED.WARN}

The warning threshold of the storage utilization, expressed in %.

80
{$AZURE.DB.STORAGE.PUSED.CRIT}

The critical threshold of the storage utilization, expressed in %.

90
{$AZURE.DB.ABORTED.CONN.MAX.WARN}

The number of failed attempts to connect to the MySQL server for a trigger expression.

25

Items

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

The result of API requests is expressed in the JSON.

Script azure.db.mysql.data.get
Azure MySQL: Get errors

A list of errors from API requests.

Dependent item azure.db.mysql.data.errors

Preprocessing

  • JSON Path: $.errors

  • Discard unchanged with heartbeat: 1h

Azure MySQL: Availability state

The availability status of the resource.

Dependent item azure.db.mysql.availability.state

Preprocessing

  • JSON Path: $.health.availabilityState

    ⛔️Custom on fail: Set value to: 3

  • Replace: Available -> 0

  • Replace: Degraded -> 1

  • Replace: Unavailable -> 2

  • Replace: Unknown -> 3

  • In range: 0 -> 3

    ⛔️Custom on fail: Set value to: 3

  • Discard unchanged with heartbeat: 1h

Azure MySQL: Availability status detailed

The summary description of the availability status.

Dependent item azure.db.mysql.availability.details

Preprocessing

  • JSON Path: $.health.summary

  • Discard unchanged with heartbeat: 1h

Azure MySQL: Percentage CPU

The CPU percent of a host.

Dependent item azure.db.mysql.cpu.percentage

Preprocessing

  • JSON Path: $.metrics.cpu_percent.maximum

Azure MySQL: Memory utilization

The memory percent of a host.

Dependent item azure.db.mysql.memory.percentage

Preprocessing

  • JSON Path: $.metrics.memory_percent.maximum

Azure MySQL: Network out

Network egress of a host, expressed in bytes.

Dependent item azure.db.mysql.network.egress

Preprocessing

  • JSON Path: $.metrics.network_bytes_egress.total

  • Custom multiplier: 0.0088

Azure MySQL: Network in

Network ingress of a host, expressed in bytes.

Dependent item azure.db.mysql.network.ingress

Preprocessing

  • JSON Path: $.metrics.network_bytes_ingress.total

  • Custom multiplier: 0.0088

Azure MySQL: Connections active

The count of active connections.

Dependent item azure.db.mysql.connections.active

Preprocessing

  • JSON Path: $.metrics.active_connections.maximum

Azure MySQL: Connections total

The count of total connections.

Dependent item azure.db.mysql.connections.total

Preprocessing

  • JSON Path: $.metrics.total_connections.total

Azure MySQL: Connections aborted

The count of aborted connections.

Dependent item azure.db.mysql.connections.aborted

Preprocessing

  • JSON Path: $.metrics.aborted_connections.total

Azure MySQL: Queries

The count of queries.

Dependent item azure.db.mysql.queries

Preprocessing

  • JSON Path: $.metrics.Queries.total

Azure MySQL: IO consumption percent

The consumption percent of I/O.

Dependent item azure.db.mysql.io.consumption.percent

Preprocessing

  • JSON Path: $.metrics.io_consumption_percent.maximum

Azure MySQL: Storage percent

The storage utilization, expressed in %.

Dependent item azure.db.mysql.storage.percent

Preprocessing

  • JSON Path: $.metrics.storage_percent.maximum

Azure MySQL: Storage used

Used storage space, expressed in bytes.

Dependent item azure.db.mysql.storage.used

Preprocessing

  • JSON Path: $.metrics.storage_used.maximum

Azure MySQL: Storage limit

The storage limit, expressed in bytes.

Dependent item azure.db.mysql.storage.limit

Preprocessing

  • JSON Path: $.metrics.storage_limit.maximum

Azure MySQL: Backup storage used

Used backup storage, expressed in bytes.

Dependent item azure.db.mysql.storage.backup.used

Preprocessing

  • JSON Path: $.metrics.backup_storage_used.maximum

Azure MySQL: Replication lag

The replication lag, expressed in seconds.

Dependent item azure.db.mysql.replication.lag

Preprocessing

  • JSON Path: $.metrics.replication_lag.maximum

    ⛔️Custom on fail: Discard value

Azure MySQL: CPU credits remaining

The remaining CPU credits.

Dependent item azure.db.mysql.cpu.credits.remaining

Preprocessing

  • JSON Path: $.metrics.cpu_credits_remaining.maximum

    ⛔️Custom on fail: Discard value

Azure MySQL: CPU credits consumed

The consumed CPU credits.

Dependent item azure.db.mysql.cpu.credits.consumed

Preprocessing

  • JSON Path: $.metrics.cpu_credits_consumed.maximum

    ⛔️Custom on fail: Discard value

Triggers

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

Zabbix has received errors in response to API requests.

length(last(/Azure MySQL Flexible Server by HTTP/azure.db.mysql.data.errors))>0 Average
Azure MySQL: MySQL server is unavailable

The resource state is unavailable.

last(/Azure MySQL Flexible Server by HTTP/azure.db.mysql.availability.state)=2 High
Azure MySQL: MySQL server is degraded

The resource is in degraded state.

last(/Azure MySQL Flexible Server by HTTP/azure.db.mysql.availability.state)=1 Average
Azure MySQL: MySQL server is in unknown state

The resource state is unknown.

last(/Azure MySQL Flexible Server by HTTP/azure.db.mysql.availability.state)=3 Warning
Azure MySQL: High CPU utilization

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

min(/Azure MySQL Flexible Server by HTTP/azure.db.mysql.cpu.percentage,5m)>{$AZURE.DB.CPU.UTIL.CRIT} High
Azure MySQL: Server has aborted connections

The number of failed attempts to connect to the MySQL server is more than {$AZURE.DB.ABORTED.CONN.MAX.WARN}.

min(/Azure MySQL Flexible Server by HTTP/azure.db.mysql.connections.aborted,5m)>{$AZURE.DB.ABORTED.CONN.MAX.WARN} Average
Azure MySQL: Storage space is critically low

Critical utilization of the storage space.

last(/Azure MySQL Flexible Server by HTTP/azure.db.mysql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.CRIT} Average
Azure MySQL: Storage space is low

High utilization of the storage space.

last(/Azure MySQL Flexible Server by HTTP/azure.db.mysql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.WARN} Warning

Azure MySQL Single Server by HTTP

Overview

This template is designed to monitor Microsoft Azure MySQL single servers by HTTP. It works without any external scripts and uses the script item.

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • Microsoft Azure MySQL single servers

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Create an Azure service principal via the Azure command-line interface (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.

  1. Link the template to a host.
  2. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.

Macros used

Name Description Default
{$AZURE.PROXY}

Sets HTTP proxy value. If this macro is empty then no proxy is used.

{$AZURE.APP.ID}

The App ID of Microsoft Azure.

{$AZURE.PASSWORD}

Microsoft Azure password.

{$AZURE.DATA.TIMEOUT}

A response timeout for API.

15s
{$AZURE.TENANT.ID}

Microsoft Azure tenant ID.

{$AZURE.SUBSCRIPTION.ID}

Microsoft Azure subscription ID.

{$AZURE.RESOURCE.ID}

Microsoft Azure MySQL server ID.

{$AZURE.DB.CPU.UTIL.CRIT}

The critical threshold of CPU utilization, expressed in %.

90
{$AZURE.DB.MEMORY.UTIL.CRIT}

The critical threshold of memory utilization, expressed in %.

90
{$AZURE.DB.STORAGE.PUSED.WARN}

The warning threshold of storage utilization, expressed in %.

80
{$AZURE.DB.STORAGE.PUSED.CRIT}

The critical threshold of storage utilization, expressed in %.

90
{$AZURE.DB.FAILED.CONN.MAX.WARN}

The number of failed attempts to connect to the MySQL server for trigger expression.

25

Items

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

The result of API requests is expressed in the JSON.

Script azure.db.mysql.data.get
Azure MySQL: Get errors

A list of errors from API requests.

Dependent item azure.db.mysql.data.errors

Preprocessing

  • JSON Path: $.errors

  • Discard unchanged with heartbeat: 1h

Azure MySQL: Availability state

The availability status of the resource.

Dependent item azure.db.mysql.availability.state

Preprocessing

  • JSON Path: $.health.availabilityState

    ⛔️Custom on fail: Set value to: 3

  • Replace: Available -> 0

  • Replace: Degraded -> 1

  • Replace: Unavailable -> 2

  • Replace: Unknown -> 3

  • In range: 0 -> 3

    ⛔️Custom on fail: Set value to: 3

  • Discard unchanged with heartbeat: 1h

Azure MySQL: Availability status detailed

The summary description of the availability status.

Dependent item azure.db.mysql.availability.details

Preprocessing

  • JSON Path: $.health.summary

  • Discard unchanged with heartbeat: 1h

Azure MySQL: Percentage CPU

The CPU percent of a host.

Dependent item azure.db.mysql.cpu.percentage

Preprocessing

  • JSON Path: $.metrics.cpu_percent.average

Azure MySQL: Memory utilization

The memory percent of a host.

Dependent item azure.db.mysql.memory.percentage

Preprocessing

  • JSON Path: $.metrics.memory_percent.average

Azure MySQL: Network out

The network outbound traffic across the active connections.

Dependent item azure.db.mysql.network.egress

Preprocessing

  • JSON Path: $.metrics.network_bytes_egress.total

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.0088

Azure MySQL: Network in

The network inbound traffic across the active connections.

Dependent item azure.db.mysql.network.ingress

Preprocessing

  • JSON Path: $.metrics.network_bytes_ingress.total

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.0088

Azure MySQL: Connections active

The count of active connections.

Dependent item azure.db.mysql.connections.active

Preprocessing

  • JSON Path: $.metrics.active_connections.average

Azure MySQL: Connections failed

The count of failed connections.

Dependent item azure.db.mysql.connections.failed

Preprocessing

  • JSON Path: $.metrics.connections_failed.total

    ⛔️Custom on fail: Discard value

Azure MySQL: IO consumption percent

The consumption percent of I/O.

Dependent item azure.db.mysql.io.consumption.percent

Preprocessing

  • JSON Path: $.metrics.io_consumption_percent.average

Azure MySQL: Storage percent

The storage utilization, expressed in %.

Dependent item azure.db.mysql.storage.percent

Preprocessing

  • JSON Path: $.metrics.storage_percent.average

Azure MySQL: Storage used

Used storage space, expressed in bytes.

Dependent item azure.db.mysql.storage.used

Preprocessing

  • JSON Path: $.metrics.storage_used.average

Azure MySQL: Storage limit

The storage limit, expressed in bytes.

Dependent item azure.db.mysql.storage.limit

Preprocessing

  • JSON Path: $.metrics.storage_limit.maximum

Azure MySQL: Backup storage used

Used backup storage, expressed in bytes.

Dependent item azure.db.mysql.storage.backup.used

Preprocessing

  • JSON Path: $.metrics.backup_storage_used.average

Azure MySQL: Replication lag

The replication lag, expressed in seconds.

Dependent item azure.db.mysql.replication.lag

Preprocessing

  • JSON Path: $.metrics.seconds_behind_master.maximum

    ⛔️Custom on fail: Discard value

Azure MySQL: Server log storage percent

The storage utilization by server log, expressed in %.

Dependent item azure.db.mysql.storage.server.log.percent

Preprocessing

  • JSON Path: $.metrics.serverlog_storage_percent.average

Azure MySQL: Server log storage used

The storage space used by server log, expressed in bytes.

Dependent item azure.db.mysql.storage.server.log.used

Preprocessing

  • JSON Path: $.metrics.serverlog_storage_usage.average

Azure MySQL: Server log storage limit

The storage limit of server log, expressed in bytes.

Dependent item azure.db.mysql.storage.server.log.limit

Preprocessing

  • JSON Path: $.metrics.serverlog_storage_limit.maximum

Triggers

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

Zabbix has received errors in response to API requests.

length(last(/Azure MySQL Single Server by HTTP/azure.db.mysql.data.errors))>0 Average
Azure MySQL: MySQL server is unavailable

The resource state is unavailable.

last(/Azure MySQL Single Server by HTTP/azure.db.mysql.availability.state)=2 High
Azure MySQL: MySQL server is degraded

The resource is in degraded state.

last(/Azure MySQL Single Server by HTTP/azure.db.mysql.availability.state)=1 Average
Azure MySQL: MySQL server is in unknown state

The resource state is unknown.

last(/Azure MySQL Single Server by HTTP/azure.db.mysql.availability.state)=3 Warning
Azure MySQL: High CPU utilization

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

min(/Azure MySQL Single Server by HTTP/azure.db.mysql.cpu.percentage,5m)>{$AZURE.DB.CPU.UTIL.CRIT} High
Azure MySQL: High memory utilization

The system is running out of free memory.

min(/Azure MySQL Single Server by HTTP/azure.db.mysql.memory.percentage,5m)>{$AZURE.DB.MEMORY.UTIL.CRIT} Average
Azure MySQL: Server has failed connections

The number of failed attempts to connect to the MySQL server is more than {$AZURE.DB.FAILED.CONN.MAX.WARN}.

min(/Azure MySQL Single Server by HTTP/azure.db.mysql.connections.failed,5m)>{$AZURE.DB.FAILED.CONN.MAX.WARN} Average
Azure MySQL: Storage space is critically low

Critical utilization of the storage space.

last(/Azure MySQL Single Server by HTTP/azure.db.mysql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.CRIT} Average
Azure MySQL: Storage space is low

High utilization of the storage space.

last(/Azure MySQL Single Server by HTTP/azure.db.mysql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.WARN} Warning

Azure PostgreSQL Flexible Server by HTTP

Overview

This template is designed to monitor Microsoft Azure PostgreSQL flexible servers by HTTP. It works without any external scripts and uses the script item.

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • Microsoft Azure PostgreSQL flexible servers

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Create an Azure service principal via the Azure command-line interface (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.

  1. Link the template to a host.
  2. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.

Macros used

Name Description Default
{$AZURE.PROXY}

Sets HTTP proxy value. If this macro is empty then no proxy is used.

{$AZURE.APP.ID}

The App ID of Microsoft Azure.

{$AZURE.PASSWORD}

Microsoft Azure password.

{$AZURE.DATA.TIMEOUT}

A response timeout for API.

15s
{$AZURE.TENANT.ID}

Microsoft Azure tenant ID.

{$AZURE.SUBSCRIPTION.ID}

Microsoft Azure subscription ID.

{$AZURE.RESOURCE.ID}

Microsoft Azure PostgreSQL server ID.

{$AZURE.DB.CPU.UTIL.CRIT}

The critical threshold of CPU utilization, expressed in %.

90
{$AZURE.DB.MEMORY.UTIL.CRIT}

The critical threshold of memory utilization, expressed in %.

90
{$AZURE.DB.STORAGE.PUSED.WARN}

The warning threshold of storage utilization, expressed in %.

80
{$AZURE.DB.STORAGE.PUSED.CRIT}

The critical threshold of storage utilization, expressed in %.

90

Items

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

The result of API requests is expressed in the JSON.

Script azure.db.pgsql.data.get
Azure PostgreSQL: Get errors

A list of errors from API requests.

Dependent item azure.db.pgsql.data.errors

Preprocessing

  • JSON Path: $.errors

  • Discard unchanged with heartbeat: 1h

Azure PostgreSQL: Availability state

The availability status of the resource.

Dependent item azure.db.pgsql.availability.state

Preprocessing

  • JSON Path: $.health.availabilityState

    ⛔️Custom on fail: Set value to: 3

  • Replace: Available -> 0

  • Replace: Degraded -> 1

  • Replace: Unavailable -> 2

  • Replace: Unknown -> 3

  • In range: 0 -> 3

    ⛔️Custom on fail: Set value to: 3

  • Discard unchanged with heartbeat: 1h

Azure PostgreSQL: Availability status detailed

The summary description of the availability status.

Dependent item azure.db.pgsql.availability.details

Preprocessing

  • JSON Path: $.health.summary

  • Discard unchanged with heartbeat: 1h

Azure PostgreSQL: Percentage CPU

The CPU percent of a host.

Dependent item azure.db.pgsql.cpu.percentage

Preprocessing

  • JSON Path: $.metrics.cpu_percent.average

Azure PostgreSQL: Memory utilization

The memory percent of a host.

Dependent item azure.db.pgsql.memory.percentage

Preprocessing

  • JSON Path: $.metrics.memory_percent.average

Azure PostgreSQL: Network out

The network outbound traffic across the active connections.

Dependent item azure.db.pgsql.network.egress

Preprocessing

  • JSON Path: $.metrics.network_bytes_egress.total

  • Custom multiplier: 0.1333

Azure PostgreSQL: Network in

The network inbound traffic across the active connections.

Dependent item azure.db.pgsql.network.ingress

Preprocessing

  • JSON Path: $.metrics.network_bytes_ingress.total

  • Custom multiplier: 0.1333

Azure PostgreSQL: Connections active

The count of active connections.

Dependent item azure.db.pgsql.connections.active

Preprocessing

  • JSON Path: $.metrics.active_connections.average

Azure PostgreSQL: Connections succeeded

The count of succeeded connections.

Dependent item azure.db.pgsql.connections.succeeded

Preprocessing

  • JSON Path: $.metrics.connections_succeeded.total

Azure PostgreSQL: Connections failed

The count of failed connections.

Dependent item azure.db.pgsql.connections.failed

Preprocessing

  • JSON Path: $.metrics.connections_failed.total

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: Storage percent

The storage utilization, expressed in %.

Dependent item azure.db.pgsql.storage.percent

Preprocessing

  • JSON Path: $.metrics.storage_percent.average

Azure PostgreSQL: Storage used

Used storage space, expressed in bytes.

Dependent item azure.db.pgsql.storage.used

Preprocessing

  • JSON Path: $.metrics.storage_used.average

Azure PostgreSQL: Storage free

Free storage space, expressed in bytes.

Dependent item azure.db.pgsql.storage.free

Preprocessing

  • JSON Path: $.metrics.storage_free.average

Azure PostgreSQL: Backup storage used

Used backup storage, expressed in bytes.

Dependent item azure.db.pgsql.storage.backup.used

Preprocessing

  • JSON Path: $.metrics.backup_storage_used.average

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: CPU credits remaining

The total number of credits available to burst.

Dependent item azure.db.pgsql.cpu.credits.remaining

Preprocessing

  • JSON Path: $.metrics.cpu_credits_remaining.average

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: CPU credits consumed

The total number of credits consumed by the database server.

Dependent item azure.db.pgsql.cpu.credits.consumed

Preprocessing

  • JSON Path: $.metrics.cpu_credits_consumed.average

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: Data disk queue depth

The number of outstanding I/O operations to the data disk.

Dependent item azure.db.pgsql.disk.queue.depth

Preprocessing

  • JSON Path: $.metrics.disk_queue_depth.average

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: Data disk IOPS

I/O operations per second.

Dependent item azure.db.pgsql.iops

Preprocessing

  • JSON Path: $.metrics.iops.average

Azure PostgreSQL: Data disk read IOPS

The number of the data disk I/O read operations per second.

Dependent item azure.db.pgsql.iops.read

Preprocessing

  • JSON Path: $.metrics.read_iops.average

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: Data disk write IOPS

The number of the data disk I/O write operations per second.

Dependent item azure.db.pgsql.iops.write

Preprocessing

  • JSON Path: $.metrics.write_iops.average

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: Data disk read Bps

Bytes read per second from the data disk during the monitoring period.

Dependent item azure.db.pgsql.disk.bps.read

Preprocessing

  • JSON Path: $.metrics.read_throughput.average

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: Data disk write Bps

Bytes written per second to the data disk during the monitoring period.

Dependent item azure.db.pgsql.disk.bps.write

Preprocessing

  • JSON Path: $.metrics.write_throughput.average

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: Transaction log storage used

The storage space used by transaction log, expressed in bytes.

Dependent item azure.db.pgsql.storage.txlogs.used

Preprocessing

  • JSON Path: $.metrics.txlogs_storage_used.average

Azure PostgreSQL: Maximum used transaction IDs

The maximum number of used transaction IDs.

Dependent item azure.db.pgsql.txid.used.max

Preprocessing

  • JSON Path: $.metrics.maximum_used_transactionIDs.average

Triggers

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

Zabbix has received errors in response to API requests.

length(last(/Azure PostgreSQL Flexible Server by HTTP/azure.db.pgsql.data.errors))>0 Average
Azure PostgreSQL: PostgreSQL server is unavailable

The resource state is unavailable.

last(/Azure PostgreSQL Flexible Server by HTTP/azure.db.pgsql.availability.state)=2 High
Azure PostgreSQL: PostgreSQL server is degraded

The resource is in degraded state.

last(/Azure PostgreSQL Flexible Server by HTTP/azure.db.pgsql.availability.state)=1 Average
Azure PostgreSQL: PostgreSQL server is in unknown state

The resource state is unknown.

last(/Azure PostgreSQL Flexible Server by HTTP/azure.db.pgsql.availability.state)=3 Warning
Azure PostgreSQL: High CPU utilization

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

min(/Azure PostgreSQL Flexible Server by HTTP/azure.db.pgsql.cpu.percentage,5m)>{$AZURE.DB.CPU.UTIL.CRIT} High
Azure PostgreSQL: High memory utilization

The system is running out of free memory.

min(/Azure PostgreSQL Flexible Server by HTTP/azure.db.pgsql.memory.percentage,5m)>{$AZURE.DB.MEMORY.UTIL.CRIT} Average
Azure PostgreSQL: Storage space is critically low

Critical utilization of the storage space.

last(/Azure PostgreSQL Flexible Server by HTTP/azure.db.pgsql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.CRIT} Average
Azure PostgreSQL: Storage space is low

High utilization of the storage space.

last(/Azure PostgreSQL Flexible Server by HTTP/azure.db.pgsql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.WARN} Warning

Azure PostgreSQL Single Server by HTTP

Overview

This template is designed to monitor Microsoft Azure PostgreSQL servers by HTTP. It works without any external scripts and uses the script item.

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • Microsoft Azure PostgreSQL servers

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Create an Azure service principal via the Azure command-line interface (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.

  1. Link the template to a host.
  2. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.

Macros used

Name Description Default
{$AZURE.PROXY}

Sets HTTP proxy value. If this macro is empty then no proxy is used.

{$AZURE.APP.ID}

The App ID of Microsoft Azure.

{$AZURE.PASSWORD}

Microsoft Azure password.

{$AZURE.DATA.TIMEOUT}

A response timeout for API.

15s
{$AZURE.TENANT.ID}

Microsoft Azure tenant ID.

{$AZURE.SUBSCRIPTION.ID}

Microsoft Azure subscription ID.

{$AZURE.RESOURCE.ID}

Microsoft Azure PostgreSQL server ID.

{$AZURE.DB.CPU.UTIL.CRIT}

The critical threshold of CPU utilization, expressed in %.

90
{$AZURE.DB.MEMORY.UTIL.CRIT}

The critical threshold of memory utilization, expressed in %.

90
{$AZURE.DB.STORAGE.PUSED.WARN}

The warning threshold of storage utilization, expressed in %.

80
{$AZURE.DB.STORAGE.PUSED.CRIT}

The critical threshold of storage utilization, expressed in %.

90

Items

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

The result of API requests is expressed in the JSON.

Script azure.db.pgsql.data.get
Azure PostgreSQL: Get errors

A list of errors from API requests.

Dependent item azure.db.pgsql.data.errors

Preprocessing

  • JSON Path: $.errors

  • Discard unchanged with heartbeat: 1h

Azure PostgreSQL: Availability state

The availability status of the resource.

Dependent item azure.db.pgsql.availability.state

Preprocessing

  • JSON Path: $.health.availabilityState

    ⛔️Custom on fail: Set value to: 3

  • Replace: Available -> 0

  • Replace: Degraded -> 1

  • Replace: Unavailable -> 2

  • Replace: Unknown -> 3

  • In range: 0 -> 3

    ⛔️Custom on fail: Set value to: 3

  • Discard unchanged with heartbeat: 1h

Azure PostgreSQL: Availability status detailed

The summary description of the availability status.

Dependent item azure.db.pgsql.availability.details

Preprocessing

  • JSON Path: $.health.summary

  • Discard unchanged with heartbeat: 1h

Azure PostgreSQL: Percentage CPU

The CPU percent of a host.

Dependent item azure.db.pgsql.cpu.percentage

Preprocessing

  • JSON Path: $.metrics.cpu_percent.average

Azure PostgreSQL: Memory utilization

The memory percent of a host.

Dependent item azure.db.pgsql.memory.percentage

Preprocessing

  • JSON Path: $.metrics.memory_percent.average

Azure PostgreSQL: Network out

The network outbound traffic across the active connections.

Dependent item azure.db.pgsql.network.egress

Preprocessing

  • JSON Path: $.metrics.network_bytes_egress.total

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1333

Azure PostgreSQL: Network in

The network inbound traffic across the active connections.

Dependent item azure.db.pgsql.network.ingress

Preprocessing

  • JSON Path: $.metrics.network_bytes_ingress.total

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1333

Azure PostgreSQL: Connections active

The count of active connections.

Dependent item azure.db.pgsql.connections.active

Preprocessing

  • JSON Path: $.metrics.active_connections.average

Azure PostgreSQL: Connections failed

The count of failed connections.

Dependent item azure.db.pgsql.connections.failed

Preprocessing

  • JSON Path: $.metrics.connections_failed.total

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: IO consumption percent

The consumption percent of I/O.

Dependent item azure.db.pgsql.io.consumption.percent

Preprocessing

  • JSON Path: $.metrics.io_consumption_percent.average

Azure PostgreSQL: Storage percent

The storage utilization, expressed in %.

Dependent item azure.db.pgsql.storage.percent

Preprocessing

  • JSON Path: $.metrics.storage_percent.average

Azure PostgreSQL: Storage used

Used storage space, expressed in bytes.

Dependent item azure.db.pgsql.storage.used

Preprocessing

  • JSON Path: $.metrics.storage_used.average

Azure PostgreSQL: Storage limit

The storage limit, expressed in bytes.

Dependent item azure.db.pgsql.storage.limit

Preprocessing

  • JSON Path: $.metrics.storage_limit.maximum

Azure PostgreSQL: Backup storage used

Used backup storage, expressed in bytes.

Dependent item azure.db.pgsql.storage.backup.used

Preprocessing

  • JSON Path: $.metrics.backup_storage_used.average

Azure PostgreSQL: Replication lag

The replication lag, expressed in seconds.

Dependent item azure.db.pgsql.replica.log.delay

Preprocessing

  • JSON Path: $.metrics.pg_replica_log_delay_in_seconds.maximum

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: Max lag across replicas in bytes

Lag for the most lagging replica, expressed in bytes.

Dependent item azure.db.pgsql.replica.log.delay.bytes

Preprocessing

  • JSON Path: $.metrics.pg_replica_log_delay_in_bytes.maximum

    ⛔️Custom on fail: Discard value

Azure PostgreSQL: Server log storage percent

The storage utilization by server log, expressed in %.

Dependent item azure.db.pgsql.storage.server.log.percent

Preprocessing

  • JSON Path: $.metrics.serverlog_storage_percent.average

Azure PostgreSQL: Server log storage used

The storage space used by server log, expressed in bytes.

Dependent item azure.db.pgsql.storage.server.log.used

Preprocessing

  • JSON Path: $.metrics.serverlog_storage_usage.average

Azure PostgreSQL: Server log storage limit

The storage limit of server log, expressed in bytes.

Dependent item azure.db.pgsql.storage.server.log.limit

Preprocessing

  • JSON Path: $.metrics.serverlog_storage_limit.maximum

Triggers

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

Zabbix has received errors in response to API requests.

length(last(/Azure PostgreSQL Single Server by HTTP/azure.db.pgsql.data.errors))>0 Average
Azure PostgreSQL: PostgreSQL server is unavailable

The resource state is unavailable.

last(/Azure PostgreSQL Single Server by HTTP/azure.db.pgsql.availability.state)=2 High
Azure PostgreSQL: PostgreSQL server is degraded

The resource is in degraded state.

last(/Azure PostgreSQL Single Server by HTTP/azure.db.pgsql.availability.state)=1 Average
Azure PostgreSQL: PostgreSQL server is in unknown state

The resource state is unknown.

last(/Azure PostgreSQL Single Server by HTTP/azure.db.pgsql.availability.state)=3 Warning
Azure PostgreSQL: High CPU utilization

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

min(/Azure PostgreSQL Single Server by HTTP/azure.db.pgsql.cpu.percentage,5m)>{$AZURE.DB.CPU.UTIL.CRIT} High
Azure PostgreSQL: High memory utilization

The system is running out of free memory.

min(/Azure PostgreSQL Single Server by HTTP/azure.db.pgsql.memory.percentage,5m)>{$AZURE.DB.MEMORY.UTIL.CRIT} Average
Azure PostgreSQL: Storage space is critically low

Critical utilization of the storage space.

last(/Azure PostgreSQL Single Server by HTTP/azure.db.pgsql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.CRIT} Average
Azure PostgreSQL: Storage space is low

High utilization of the storage space.

last(/Azure PostgreSQL Single Server by HTTP/azure.db.pgsql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.WARN} Warning

Azure Microsoft SQL Serverless Database by HTTP

Overview

This template is designed to monitor Microsoft SQL serverless databases by HTTP. It works without any external scripts and uses the script item.

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • Microsoft Azure SQL serverless databases

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Create an Azure service principal via the Azure command-line interface (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.

  1. Link the template to a host.
  2. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.

Macros used

Name Description Default
{$AZURE.PROXY}

Sets HTTP proxy value. If this macro is empty then no proxy is used.

{$AZURE.APP.ID}

The App ID of Microsoft Azure.

{$AZURE.PASSWORD}

Microsoft Azure password.

{$AZURE.DATA.TIMEOUT}

A response timeout for API.

15s
{$AZURE.TENANT.ID}

Microsoft Azure tenant ID.

{$AZURE.SUBSCRIPTION.ID}

Microsoft Azure subscription ID.

{$AZURE.RESOURCE.ID}

Microsoft Azure Microsoft SQL database ID.

{$AZURE.DB.CPU.UTIL.CRIT}

The critical threshold of CPU utilization, expressed in %.

90
{$AZURE.DB.MEMORY.UTIL.CRIT}

The critical threshold of memory utilization, expressed in %.

90
{$AZURE.DB.STORAGE.PUSED.WARN}

The warning threshold of storage utilization, expressed in %.

80
{$AZURE.DB.STORAGE.PUSED.CRIT}

The critical threshold of storage utilization, expressed in %.

90

Items

Name Description Type Key and additional info
Azure Microsoft SQL: Get data

The result of API requests is expressed in the JSON.

Script azure.db.mssql.data.get
Azure Microsoft SQL: Get errors

A list of errors from API requests.

Dependent item azure.db.mssql.data.errors

Preprocessing

  • JSON Path: $.errors

  • Discard unchanged with heartbeat: 1h

Azure Microsoft SQL: Availability state

The availability status of the resource.

Dependent item azure.db.mssql.availability.state

Preprocessing

  • JSON Path: $.health.availabilityState

    ⛔️Custom on fail: Set value to: 3

  • Replace: Available -> 0

  • Replace: Degraded -> 1

  • Replace: Unavailable -> 2

  • Replace: Unknown -> 3

  • In range: 0 -> 3

    ⛔️Custom on fail: Set value to: 3

  • Discard unchanged with heartbeat: 1h

Azure Microsoft SQL: Availability status detailed

The summary description of the availability status.

Dependent item azure.db.mssql.availability.details

Preprocessing

  • JSON Path: $.health.summary

  • Discard unchanged with heartbeat: 1h

Azure Microsoft SQL: Percentage CPU

The CPU percent of a host.

Dependent item azure.db.mssql.cpu.percentage

Preprocessing

  • JSON Path: $.metrics.cpu_percent.average

Azure Microsoft SQL: Data IO percentage

The physical data read percentage.

Dependent item azure.db.mssql.data.read.percentage

Preprocessing

  • JSON Path: $.metrics.physical_data_read_percent.average

Azure Microsoft SQL: Log IO percentage

The percentage of I/O log. Not applicable to the data warehouses.

Dependent item azure.db.mssql.log.write.percentage

Preprocessing

  • JSON Path: $.metrics.log_write_percent.average

Azure Microsoft SQL: Data space used

Data space used. Not applicable to the data warehouses.

Dependent item azure.db.mssql.storage.used

Preprocessing

  • JSON Path: $.metrics.storage.maximum

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: Connections successful

The count of successful connections.

Dependent item azure.db.mssql.connections.successful

Preprocessing

  • JSON Path: $.metrics.connection_successful.total

Azure Microsoft SQL: Connections failed: System errors

The count of failed connections with system errors.

Dependent item azure.db.mssql.connections.failed.system

Preprocessing

  • JSON Path: $.metrics.connection_failed.total

Azure Microsoft SQL: Connections blocked by firewall

The count of connections blocked by firewall.

Dependent item azure.db.mssql.firewall.blocked

Preprocessing

  • JSON Path: $.metrics.blocked_by_firewall.total

Azure Microsoft SQL: Deadlocks

The count of deadlocks. Not applicable to the data warehouses.

Dependent item azure.db.mssql.deadlocks

Preprocessing

  • JSON Path: $.metrics.deadlock.total

Azure Microsoft SQL: Data space used percent

The percentage of used data space. Not applicable to the data warehouses or Hyperscale databases.

Dependent item azure.db.mssql.storage.percent

Preprocessing

  • JSON Path: $.metrics.storage_percent.maximum

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: In-Memory OLTP storage percent

In-Memory OLTP storage percent. Not applicable to the data warehouses.

Dependent item azure.db.mssql.storage.xtp.percent

Preprocessing

  • JSON Path: $.metrics.xtp_storage_percent.average

Azure Microsoft SQL: Workers percentage

The percentage of workers. Not applicable to the data warehouses.

Dependent item azure.db.mssql.workers.percent

Preprocessing

  • JSON Path: $.metrics.workers_percent.average

Azure Microsoft SQL: Sessions percentage

The percentage of sessions. Not applicable to the data warehouses.

Dependent item azure.db.mssql.sessions.percent

Preprocessing

  • JSON Path: $.metrics.sessions_percent.average

Azure Microsoft SQL: CPU limit

The CPU limit. Applies to the vCore-based databases.

Dependent item azure.db.mssql.cpu.limit

Preprocessing

  • JSON Path: $.metrics.cpu_limit.average

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: CPU used

The CPU used. Applies to the vCore-based databases.

Dependent item azure.db.mssql.cpu.used

Preprocessing

  • JSON Path: $.metrics.cpu_used.average

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: SQL Server process core percent

The CPU usage as a percentage of the SQL DB process. Not applicable to the data warehouses.

Dependent item azure.db.mssql.server.cpu.percent

Preprocessing

  • JSON Path: $.metrics.sqlserver_process_core_percent.maximum

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: SQL Server process memory percent

Memory usage as a percentage of the SQL DB process. Not applicable to the data warehouses.

Dependent item azure.db.mssql.server.memory.percent

Preprocessing

  • JSON Path: $.metrics.sqlserver_process_memory_percent.maximum

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: Tempdb data file size

Space used in tempdb data files, expressed in bytes. Not applicable to the data warehouses.

Dependent item azure.db.mssql.tempdb.data.size

Preprocessing

  • JSON Path: $.metrics.tempdb_data_size.maximum

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 1024

Azure Microsoft SQL: Tempdb log file size

Space used in tempdb transaction log files, expressed in bytes. Not applicable to the data warehouses.

Dependent item azure.db.mssql.tempdb.log.size

Preprocessing

  • JSON Path: $.metrics.tempdb_log_size.maximum

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 1024

Azure Microsoft SQL: Tempdb log used percent

The percentage of space used in tempdb transaction log files. Not applicable to the data warehouses.

Dependent item azure.db.mssql.tempdb.log.percent

Preprocessing

  • JSON Path: $.metrics.tempdb_log_used_percent.maximum

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: App CPU billed

App CPU billed. Applies to serverless databases.

Dependent item azure.db.mssql.app.cpu.billed

Preprocessing

  • JSON Path: $.metrics.app_cpu_billed.total

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: App CPU percentage

App CPU percentage. Applies to serverless databases.

Dependent item azure.db.mssql.app.cpu.percent

Preprocessing

  • JSON Path: $.metrics.app_cpu_percent.average

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: App memory percentage

App memory percentage. Applies to serverless databases.

Dependent item azure.db.mssql.app.memory.percent

Preprocessing

  • JSON Path: $.metrics.app_memory_percent.average

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: Data space allocated

The allocated data storage. Not applicable to the data warehouses.

Dependent item azure.db.mssql.storage.allocated

Preprocessing

  • JSON Path: $.metrics.allocated_data_storage.average

    ⛔️Custom on fail: Discard value

Triggers

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

Zabbix has received errors in response to API requests.

length(last(/Azure Microsoft SQL Serverless Database by HTTP/azure.db.mssql.data.errors))>0 Average
Azure Microsoft SQL: Microsoft SQL database is unavailable

The resource state is unavailable.

last(/Azure Microsoft SQL Serverless Database by HTTP/azure.db.mssql.availability.state)=2 High
Azure Microsoft SQL: Microsoft SQL database is degraded

The resource is in degraded state.

last(/Azure Microsoft SQL Serverless Database by HTTP/azure.db.mssql.availability.state)=1 Average
Azure Microsoft SQL: Microsoft SQL database is in unknown state

The resource state is unknown.

last(/Azure Microsoft SQL Serverless Database by HTTP/azure.db.mssql.availability.state)=3 Warning
Azure Microsoft SQL: High CPU utilization

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

min(/Azure Microsoft SQL Serverless Database by HTTP/azure.db.mssql.cpu.percentage,5m)>{$AZURE.DB.CPU.UTIL.CRIT} High
Azure Microsoft SQL: Storage space is critically low

Critical utilization of the storage space.

last(/Azure Microsoft SQL Serverless Database by HTTP/azure.db.mssql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.CRIT} Average
Azure Microsoft SQL: Storage space is low

High utilization of the storage space.

last(/Azure Microsoft SQL Serverless Database by HTTP/azure.db.mssql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.WARN} Warning

Azure Microsoft SQL Database by HTTP

Overview

This template is designed to monitor Microsoft SQL databases by HTTP. It works without any external scripts and uses the script item.

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • Microsoft Azure SQL databases

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Create an Azure service principal via the Azure command-line interface (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.

  1. Link the template to a host.
  2. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.

Macros used

Name Description Default
{$AZURE.PROXY}

Sets HTTP proxy value. If this macro is empty then no proxy is used.

{$AZURE.APP.ID}

The App ID of Microsoft Azure.

{$AZURE.PASSWORD}

Microsoft Azure password.

{$AZURE.DATA.TIMEOUT}

A response timeout for API.

15s
{$AZURE.TENANT.ID}

Microsoft Azure tenant ID.

{$AZURE.SUBSCRIPTION.ID}

Microsoft Azure subscription ID.

{$AZURE.RESOURCE.ID}

Microsoft Azure Microsoft SQL database ID.

{$AZURE.DB.CPU.UTIL.CRIT}

The critical threshold of CPU utilization, expressed in %.

90
{$AZURE.DB.MEMORY.UTIL.CRIT}

The critical threshold of memory utilization, expressed in %.

90
{$AZURE.DB.STORAGE.PUSED.WARN}

The warning threshold of storage utilization, expressed in %.

80
{$AZURE.DB.STORAGE.PUSED.CRIT}

The critical threshold of storage utilization, expressed in %.

90

Items

Name Description Type Key and additional info
Azure Microsoft SQL: Get data

The result of API requests is expressed in the JSON.

Script azure.db.mssql.data.get
Azure Microsoft SQL: Get errors

A list of errors from API requests.

Dependent item azure.db.mssql.data.errors

Preprocessing

  • JSON Path: $.errors

  • Discard unchanged with heartbeat: 1h

Azure Microsoft SQL: Availability state

The availability status of the resource.

Dependent item azure.db.mssql.availability.state

Preprocessing

  • JSON Path: $.health.availabilityState

    ⛔️Custom on fail: Set value to: 3

  • Replace: Available -> 0

  • Replace: Degraded -> 1

  • Replace: Unavailable -> 2

  • Replace: Unknown -> 3

  • In range: 0 -> 3

    ⛔️Custom on fail: Set value to: 3

  • Discard unchanged with heartbeat: 1h

Azure Microsoft SQL: Availability status detailed

The summary description of the availability status.

Dependent item azure.db.mssql.availability.details

Preprocessing

  • JSON Path: $.health.summary

  • Discard unchanged with heartbeat: 1h

Azure Microsoft SQL: Percentage CPU

The CPU percent of a host.

Dependent item azure.db.mssql.cpu.percentage

Preprocessing

  • JSON Path: $.metrics.cpu_percent.average

Azure Microsoft SQL: Data IO percentage

The percentage of physical data read.

Dependent item azure.db.mssql.data.read.percentage

Preprocessing

  • JSON Path: $.metrics.physical_data_read_percent.average

Azure Microsoft SQL: Log IO percentage

The percentage of I/O log. Not applicable to the data warehouses.

Dependent item azure.db.mssql.log.write.percentage

Preprocessing

  • JSON Path: $.metrics.log_write_percent.average

Azure Microsoft SQL: Data space used

Data space used. Not applicable to the data warehouses.

Dependent item azure.db.mssql.storage.used

Preprocessing

  • JSON Path: $.metrics.storage.maximum

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: Connections successful

The count of successful connections.

Dependent item azure.db.mssql.connections.successful

Preprocessing

  • JSON Path: $.metrics.connection_successful.total

Azure Microsoft SQL: Connections failed: System errors

The count of failed connections with system errors.

Dependent item azure.db.mssql.connections.failed.system

Preprocessing

  • JSON Path: $.metrics.connection_failed.total

Azure Microsoft SQL: Connections blocked by firewall

The count of connections blocked by firewall.

Dependent item azure.db.mssql.firewall.blocked

Preprocessing

  • JSON Path: $.metrics.blocked_by_firewall.total

Azure Microsoft SQL: Deadlocks

The count of deadlocks. Not applicable to the data warehouses.

Dependent item azure.db.mssql.deadlocks

Preprocessing

  • JSON Path: $.metrics.deadlock.total

Azure Microsoft SQL: Data space used percent

Data space used percent. Not applicable to the data warehouses or Hyperscale databases.

Dependent item azure.db.mssql.storage.percent

Preprocessing

  • JSON Path: $.metrics.storage_percent.maximum

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: In-Memory OLTP storage percent

In-Memory OLTP storage percent. Not applicable to the data warehouses.

Dependent item azure.db.mssql.storage.xtp.percent

Preprocessing

  • JSON Path: $.metrics.xtp_storage_percent.average

Azure Microsoft SQL: Workers percentage

The percentage of workers. Not applicable to the data warehouses.

Dependent item azure.db.mssql.workers.percent

Preprocessing

  • JSON Path: $.metrics.workers_percent.average

Azure Microsoft SQL: Sessions percentage

The percentage of sessions. Not applicable to the data warehouses.

Dependent item azure.db.mssql.sessions.percent

Preprocessing

  • JSON Path: $.metrics.sessions_percent.average

Azure Microsoft SQL: Sessions count

The number of active sessions. Not applicable to Synapse DW Analytics.

Dependent item azure.db.mssql.sessions.count

Preprocessing

  • JSON Path: $.metrics.sessions_count.average

Azure Microsoft SQL: CPU limit

The CPU limit. Applies to the vCore-based databases.

Dependent item azure.db.mssql.cpu.limit

Preprocessing

  • JSON Path: $.metrics.cpu_limit.average

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: CPU used

The CPU used. Applies to the vCore-based databases.

Dependent item azure.db.mssql.cpu.used

Preprocessing

  • JSON Path: $.metrics.cpu_used.average

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: SQL Server process core percent

The CPU usage as a percentage of the SQL DB process. Not applicable to the data warehouses.

Dependent item azure.db.mssql.server.cpu.percent

Preprocessing

  • JSON Path: $.metrics.sqlserver_process_core_percent.maximum

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: SQL Server process memory percent

Memory usage as a percentage of the SQL DB process. Not applicable to data warehouses.

Dependent item azure.db.mssql.server.memory.percent

Preprocessing

  • JSON Path: $.metrics.sqlserver_process_memory_percent.maximum

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: Tempdb data file size

The space used in tempdb data files, expressed in bytes. Not applicable to the data warehouses.

Dependent item azure.db.mssql.tempdb.data.size

Preprocessing

  • JSON Path: $.metrics.tempdb_data_size.maximum

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 1024

Azure Microsoft SQL: Tempdb log file size

The space used in tempdb transaction log file, expressed in bytes. Not applicable to the data warehouses.

Dependent item azure.db.mssql.tempdb.log.size

Preprocessing

  • JSON Path: $.metrics.tempdb_log_size.maximum

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 1024

Azure Microsoft SQL: Tempdb log used percent

The percentage of space used in tempdb transaction log file. Not applicable to the data warehouses.

Dependent item azure.db.mssql.tempdb.log.percent

Preprocessing

  • JSON Path: $.metrics.tempdb_log_used_percent.maximum

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: Data space allocated

The allocated data storage. Not applicable to the data warehouses.

Dependent item azure.db.mssql.storage.allocated

Preprocessing

  • JSON Path: $.metrics.allocated_data_storage.average

    ⛔️Custom on fail: Discard value

Azure Microsoft SQL: Full backup storage size

Cumulative full backup storage size. Applies to the vCore-based databases. Not applicable to the Hyperscale databases.

Dependent item azure.db.mssql.storage.backup.size

Preprocessing

  • JSON Path: $.metrics.full_backup_size_bytes.maximum

  • Discard unchanged with heartbeat: 1d

Azure Microsoft SQL: Differential backup storage size

Cumulative differential backup storage size. Applies to the vCore-based databases. Not applicable to the Hyperscale databases.

Dependent item azure.db.mssql.storage.backup.diff.size

Preprocessing

  • JSON Path: $.metrics.diff_backup_size_bytes.maximum

  • Discard unchanged with heartbeat: 1d

Azure Microsoft SQL: Log backup storage size

Cumulative log backup storage size. Applies to the vCore-based and Hyperscale databases.

Dependent item azure.db.mssql.storage.backup.log.size

Preprocessing

  • JSON Path: $.metrics.log_backup_size_bytes.maximum

  • Discard unchanged with heartbeat: 1d

Triggers

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

Zabbix has received errors in response to API requests.

length(last(/Azure Microsoft SQL Database by HTTP/azure.db.mssql.data.errors))>0 Average
Azure Microsoft SQL: Microsoft SQL database is unavailable

The resource state is unavailable.

last(/Azure Microsoft SQL Database by HTTP/azure.db.mssql.availability.state)=2 High
Azure Microsoft SQL: Microsoft SQL database is degraded

The resource is in degraded state.

last(/Azure Microsoft SQL Database by HTTP/azure.db.mssql.availability.state)=1 Average
Azure Microsoft SQL: Microsoft SQL database is in unknown state

The resource state is unknown.

last(/Azure Microsoft SQL Database by HTTP/azure.db.mssql.availability.state)=3 Warning
Azure Microsoft SQL: High CPU utilization

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

min(/Azure Microsoft SQL Database by HTTP/azure.db.mssql.cpu.percentage,5m)>{$AZURE.DB.CPU.UTIL.CRIT} High
Azure Microsoft SQL: Storage space is critically low

Critical utilization of the storage space.

last(/Azure Microsoft SQL Database by HTTP/azure.db.mssql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.CRIT} Average
Azure Microsoft SQL: Storage space is low

High utilization of the storage space.

last(/Azure Microsoft SQL Database by HTTP/azure.db.mssql.storage.percent)>{$AZURE.DB.STORAGE.PUSED.WARN} Warning

Azure Cosmos DB for MongoDB by HTTP

Overview

This template is designed for the effortless deployment of Azure Cosmos DB for MongoDB monitoring by Zabbix via HTTP and doesn't require any external scripts.

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • Microsoft Azure Cosmos DB

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Create an Azure service principal via the Azure command-line interface (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.

  1. Link the template to a host.
  2. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.

Macros used

Name Description Default
{$AZURE.PROXY}

Sets HTTP proxy value. If this macro is empty then no proxy is used.

{$AZURE.APP.ID}

The App ID of Microsoft Azure.

{$AZURE.PASSWORD}

Microsoft Azure password.

{$AZURE.DATA.TIMEOUT}

A response timeout for API.

15s
{$AZURE.TENANT.ID}

Microsoft Azure tenant ID.

{$AZURE.SUBSCRIPTION.ID}

Microsoft Azure subscription ID.

{$AZURE.RESOURCE.ID}

Microsoft Azure Cosmos DB ID.

{$AZURE.DB.COSMOS.MONGO.AVAILABILITY}

The warning threshold of the Cosmos DB for MongoDB service availability.

70

Items

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

The result of API requests is expressed in the JSON.

Script azure.cosmosdb.data.get
Azure MongoDB: Get errors

A list of errors from API requests.

Dependent item azure.cosmosdb.data.errors

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Set value to

  • Discard unchanged with heartbeat: 1h

Azure MongoDB: Total requests

Number of requests per minute.

Dependent item azure.cosmosdb.total.requests

Preprocessing

  • JSON Path: $.requests.TotalRequests.count

    ⛔️Custom on fail: Discard value

Azure MongoDB: Total request units

The request units consumed per minute.

Dependent item azure.cosmosdb.total.request.units

Preprocessing

  • JSON Path: $.requests.TotalRequestUnits.total

    ⛔️Custom on fail: Discard value

Azure MongoDB: Metadata requests

The count of metadata requests.

Cosmos DB maintains system metadata collection for each account, which allows you to enumerate collections, databases, etc., and their configurations, free of charge.

Dependent item azure.cosmosdb.metadata.requests

Preprocessing

  • JSON Path: $.requests.MetadataRequests.count

    ⛔️Custom on fail: Discard value

Azure MongoDB: Mongo requests

The number of Mongo requests made.

Dependent item azure.cosmosdb.mongo.requests

Preprocessing

  • JSON Path: $.requests.MongoRequests.count

    ⛔️Custom on fail: Discard value

Azure MongoDB: Mongo request charge

The Mongo request units consumed.

Dependent item azure.cosmosdb.mongo.requests.charge

Preprocessing

  • JSON Path: $.requests.MongoRequestCharge.total

    ⛔️Custom on fail: Discard value

Azure MongoDB: Server side latency

The server side latency.

Dependent item azure.cosmosdb.server.side.latency

Preprocessing

  • JSON Path: $.requests.ServerSideLatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

Azure MongoDB: Server side latency, gateway

The server side latency in gateway connection mode.

Dependent item azure.cosmosdb.server.side.latency.gateway

Preprocessing

  • JSON Path: $.requests.ServerSideLatencyGateway.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

Azure MongoDB: Server side latency, direct

The server side latency in direct connection mode.

Dependent item azure.cosmosdb.server.side.latency.direct

Preprocessing

  • JSON Path: $.requests.ServerSideLatencyDirect.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

Azure MongoDB: Replication latency, P99

The P99 replication latency across source and target regions for geo-enabled account.

Dependent item azure.cosmosdb.replication.latency

Preprocessing

  • JSON Path: $.requests.ReplicationLatency.average

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.001

Azure MongoDB: Service availability

The account requests availability at one hour granularity.

Dependent item azure.cosmosdb.service.availability

Preprocessing

  • JSON Path: $.availability.ServiceAvailability.average

    ⛔️Custom on fail: Discard value

Azure MongoDB: Data usage

The total data usage.

Dependent item azure.cosmosdb.data.usage

Preprocessing

  • JSON Path: $.requests.DataUsage.total

    ⛔️Custom on fail: Discard value

Azure MongoDB: Index usage

The total index usage.

Dependent item azure.cosmosdb.index.usage

Preprocessing

  • JSON Path: $.requests.IndexUsage.total

    ⛔️Custom on fail: Discard value

Azure MongoDB: Document quota

The total storage quota.

Dependent item azure.cosmosdb.document.quota

Preprocessing

  • JSON Path: $.requests.DocumentQuota.total

    ⛔️Custom on fail: Discard value

Azure MongoDB: Document count

The total document count.

Dependent item azure.cosmosdb.document.count

Preprocessing

  • JSON Path: $.requests.DocumentCount.total

    ⛔️Custom on fail: Discard value

Azure MongoDB: Normalized RU consumption

The max RU consumption percentage per minute.

Dependent item azure.cosmosdb.normalized.ru.consumption

Preprocessing

  • JSON Path: $.requests.NormalizedRUConsumption.maximum

    ⛔️Custom on fail: Discard value

Azure MongoDB: Physical partition throughput

The physical partition throughput.

Dependent item azure.cosmosdb.physical.partition.throughput

Preprocessing

  • JSON Path: $.requests.PhysicalPartitionThroughputInfo.maximum

    ⛔️Custom on fail: Discard value

Azure MongoDB: Autoscale max throughput

The autoscale max throughput.

Dependent item azure.cosmosdb.autoscale.max.throughput

Preprocessing

  • JSON Path: $.requests.AutoscaleMaxThroughput.maximum

    ⛔️Custom on fail: Discard value

Azure MongoDB: Provisioned throughput

The provisioned throughput.

Dependent item azure.cosmosdb.provisioned.throughput

Preprocessing

  • JSON Path: $.requests.ProvisionedThroughput.maximum

    ⛔️Custom on fail: Discard value

Azure MongoDB: Physical partition size

The physical partition size in bytes.

Dependent item azure.cosmosdb.physical.partition.size

Preprocessing

  • JSON Path: $.requests.PhysicalPartitionSizeInfo.maximum

    ⛔️Custom on fail: Discard value

Triggers

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

Zabbix has received errors in response to API requests.

length(last(/Azure Cosmos DB for MongoDB by HTTP/azure.cosmosdb.data.errors))>0 Average
Azure MongoDB: Cosmos DB for MongoDB account: Availability is low (min(/Azure Cosmos DB for MongoDB by HTTP/azure.cosmosdb.service.availability,#3))<{$AZURE.DB.COSMOS.MONGO.AVAILABILITY} Warning

Azure Cost Management by HTTP

Overview

This template is designed to monitor Microsoft Cost Management by HTTP. It works without any external scripts and uses the script item.

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • Microsoft Azure

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Create an Azure service principal via the Azure command-line interface (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.

  1. Link the template to a host.
  2. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}.

Macros used

Name Description Default
{$AZURE.PROXY}

Sets HTTP proxy value. If this macro is empty then no proxy is used.

{$AZURE.APP.ID}

The App ID of Microsoft Azure.

{$AZURE.PASSWORD}

Microsoft Azure password.

{$AZURE.DATA.TIMEOUT}

A response timeout for API.

15s
{$AZURE.TENANT.ID}

Microsoft Azure tenant ID.

{$AZURE.BILLING.MONTH}

Months to get historical data from Azure Cost Management API, no more than 11 (plus current month). The time period for pulling the data cannot exceed 1 year.

11
{$AZURE.LLD.FILTER.SERVICE.MATCHES}

Filter of discoverable services by name.

.*
{$AZURE.LLD.FILTER.SERVICE.NOT_MATCHES}

Filter to exclude discovered services by name.

CHANGE_IF_NEEDED
{$AZURE.LLD.FILTER.RESOURCE.LOCATION.MATCHES}

Filter of discoverable locations by name.

.*
{$AZURE.LLD.FILTER.RESOURCE.LOCATION.NOT_MATCHES}

Filter to exclude discovered locations by name.

CHANGE_IF_NEEDED
{$AZURE.LLD.FILTER.RESOURCE.GROUP.MATCHES}

Filter of discoverable resource groups by name.

.*
{$AZURE.LLD.FILTER.RESOURCE.GROUP.NOT_MATCHES}

Filter to exclude discovered resource groups by name.

CHANGE_IF_NEEDED

Items

Name Description Type Key and additional info
Azure Cost: Get monthly costs

The result of API requests is expressed in the JSON.

Script azure.get.monthly.costs
Azure Cost: Get daily costs

The result of API requests is expressed in the JSON.

Script azure.get.daily.costs

LLD rule Azure daily costs by services discovery

Name Description Type Key and additional info
Azure daily costs by services discovery

Discovery of daily costs by services.

Dependent item azure.daily.services.costs.discovery

Preprocessing

  • JSON Path: $.data

    ⛔️Custom on fail: Discard value

Item prototypes for Azure daily costs by services discovery

Name Description Type Key and additional info
Azure Cost: Service ["{#AZURE.SERVICE.NAME}"]: Meter ["{#AZURE.BILLING.METER}"]: Subcategory ["{#AZURE.BILLING.METER.SUBCATEGORY}"] daily cost

The daily cost by service {#AZURE.SERVICE.NAME}, meter {#AZURE.BILLING.METER}, subcategory {#AZURE.BILLING.METER.SUBCATEGORY}.

Dependent item azure.daily.cost["{#AZURE.SERVICE.NAME}", "{#AZURE.BILLING.METER}", "{#AZURE.BILLING.METER.SUBCATEGORY}","{#AZURE.RESOURCE.GROUP}"]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

LLD rule Azure monthly costs by services discovery

Name Description Type Key and additional info
Azure monthly costs by services discovery

Discovery of monthly costs by services.

Dependent item azure.monthly.services.costs.discovery

Preprocessing

  • JSON Path: $.serviceCost.data

    ⛔️Custom on fail: Discard value

Item prototypes for Azure monthly costs by services discovery

Name Description Type Key and additional info
Azure Cost: Service ["{#AZURE.SERVICE.NAME}"]: Month ["{#AZURE.BILLING.MONTH}"] cost

The monthly cost by service {#AZURE.SERVICE.NAME}.

Dependent item azure.monthly.service.cost["{#AZURE.SERVICE.NAME}", "{#AZURE.BILLING.MONTH}"]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

LLD rule Azure monthly costs by location discovery

Name Description Type Key and additional info
Azure monthly costs by location discovery

Discovery of monthly costs by location.

Dependent item azure.monthly.location.costs.discovery

Preprocessing

  • JSON Path: $.resourceLocationCost.data

    ⛔️Custom on fail: Discard value

Item prototypes for Azure monthly costs by location discovery

Name Description Type Key and additional info
Azure Cost: Location: ["{#AZURE.RESOURCE.LOCATION}"]: Month ["{#AZURE.BILLING.MONTH}"] cost

The monthly cost by location {#AZURE.RESOURCE.LOCATION}.

Dependent item azure.monthly.location.cost["{#AZURE.RESOURCE.LOCATION}", "{#AZURE.BILLING.MONTH}"]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

LLD rule Azure monthly costs by resource group discovery

Name Description Type Key and additional info
Azure monthly costs by resource group discovery

Discovery of monthly costs by resource group.

Dependent item azure.monthly.resource.group.costs.discovery

Preprocessing

  • JSON Path: $.resourceGroupCost.data

    ⛔️Custom on fail: Discard value

Item prototypes for Azure monthly costs by resource group discovery

Name Description Type Key and additional info
Azure Cost: Resource group: ["{#AZURE.RESOURCE.GROUP}"]: Month ["{#AZURE.BILLING.MONTH}"] cost

The monthly cost by resource group {#AZURE.RESOURCE.GROUP}.

Dependent item azure.monthly.resource.group.cost["{#AZURE.RESOURCE.GROUP}", "{#AZURE.BILLING.MONTH}"]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

LLD rule Azure monthly costs discovery

Name Description Type Key and additional info
Azure monthly costs discovery

Discovery of monthly costs.

Dependent item azure.monthly.costs.discovery

Preprocessing

  • JSON Path: $.monthCost.data

    ⛔️Custom on fail: Discard value

Item prototypes for Azure monthly costs discovery

Name Description Type Key and additional info
Azure Cost: Month ["{#AZURE.BILLING.MONTH}"] cost

The monthly cost.

Dependent item azure.monthly.cost["{#AZURE.BILLING.MONTH}"]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

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 at ZABBIX forums

Articles and documentation

+ Propose new article

No se encuentra la integración que necesitas?