AWS RDS

Amazon Relational Database Service (RDS) is a managed SQL database service provided by Amazon Web Services (AWS). Amazon RDS supports an array of database engines to store and organize data. It also helps with relational database management tasks, such as data migration, backup, recovery and patching.

Available solutions




This template is for Zabbix version: 6.2

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

AWS RDS instance by HTTP

Overview

For Zabbix version: 6.2 and higher
The template to monitor AWS RDS instance by HTTP via Zabbix that works without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection. NOTE This template uses the GetMetricData CloudWatch API calls to list and retrieve metrics. For more information, please refer to the (CloudWatch pricing)[https://aws.amazon.com/cloudwatch/pricing/] page.

Additional information about metrics and used API methods:

Setup

See Zabbix template operation for basic instructions.

The template get AWS RDS instance metrics and uses the script item to make HTTP requests to the CloudWatch API.

Before using the template, you need to create an IAM policy with the necessary permissions for the Zabbix role in your AWS account.

Add the following required permissions to your Zabbix IAM policy in order to collect Amazon RDS metrics.

{
    "Version":"2012-10-17",
    "Statement":[
        {
          "Action":[
              "cloudwatch:Describe*",
              "cloudwatch:Get*",
              "cloudwatch:List*",
              "rds:Describe*"
          ],
          "Effect":"Allow",
          "Resource":"*"
        }
    ]
  }

Set macros "{$AWS.ACCESS.KEY.ID}", "{$AWS.SECRET.ACCESS.KEY}", "{$AWS.REGION}", "{$AWS.RDS.INSTANCE.ID}"

For more information about manage access keys, see official documentation

Also, see the Macros section for a list of macros used for LLD filters.

Additional information about metrics and used API methods:

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$AWS.ACCESS.KEY.ID}

Access key ID.

``
{$AWS.EBS.BYTE.CREDIT.BALANCE.MIN.WARN}

Minimum percentage of Byte credits remaining for trigger expression.

20
{$AWS.EBS.IO.CREDIT.BALANCE.MIN.WARN}

Minimum percentage of I/O credits remaining for trigger expression.

20
{$AWS.RDS.BURST.CREDIT.BALANCE.MIN.WARN}

Minimum percentage of Byte credits remaining for trigger expression.

20
{$AWS.RDS.CPU.CREDIT.BALANCE.MIN.WARN}

Minimum number of free earned CPU credits for trigger expression.

50
{$AWS.RDS.CPU.UTIL.WARN.MAX}

The warning threshold of the CPU utilization in %.

85
{$AWS.RDS.INSTANCE.ID}

RDS DB Instance identifier.

``
{$AWS.RDS.LLD.FILTER.ALARM_NAME.MATCHES}

Filter of discoverable alarms by namespace.

.*
{$AWS.RDS.LLD.FILTER.ALARM_NAME.NOT_MATCHES}

Filter to exclude discovered alarms by namespace.

CHANGE_IF_NEEDED
{$AWS.RDS.LLD.FILTER.ALARM_SERVICE_NAMESPACE.MATCHES}

Filter of discoverable alarms by namespace.

.*
{$AWS.RDS.LLD.FILTER.ALARM_SERVICE_NAMESPACE.NOT_MATCHES}

Filter to exclude discovered alarms by namespace.

CHANGE_IF_NEEDED
{$AWS.RDS.LLD.FILTER.EVENT_CATEGORY.MATCHES}

Filter of discoverable events by category.

.*
{$AWS.RDS.LLD.FILTER.EVENT_CATEGORY.NOT_MATCHES}

Filter to exclude discovered events by category.

CHANGE_IF_NEEDED
{$AWS.RDS.LLD.FILTER.EVENT_SOURCE_TYPE.MATCHES}

Filter of discoverable events by source type.

.*
{$AWS.RDS.LLD.FILTER.EVENT_SOURCE_TYPE.NOT_MATCHES}

Filter to exclude discovered events by source type.

CHANGE_IF_NEEDED
{$AWS.REGION}

Amazon RDS Region code.

us-west-1
{$AWS.SECRET.ACCESS.KEY}

Secret access key.

``

Template links

There are no template links in this template.

Discovery rules

Name Description Type Key and additional info
Aurora metrics discovery

Discovery Amazon Aurora metrics.

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html#Aurora.AuroraMySQL.Monitoring.Metrics.instances

DEPENDENT aws.rds.aurora.discovery

Preprocessing:

- JAVASCRIPT: return JSON.stringify(value.includes('aurora') ? [{'{#SINGLETON}': ''}] : []);

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Aurora MySQL metrics discovery

Discovery Aurora MySQL metrics.

Storage types:

aurora (for MySQL 5.6-compatible Aurora)

aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

DEPENDENT aws.rds.postgresql.discovery

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Instance Alarms discovery

Discovery instance alarms.

DEPENDENT aws.rds.alarms.discovery

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 3h

Filter:

AND

- {#ALARM_SERVICE_NAMESPACE} MATCHES_REGEX {$AWS.RDS.LLD.FILTER.ALARM_SERVICE_NAMESPACE.MATCHES}

- {#ALARM_SERVICE_NAMESPACE} NOT_MATCHES_REGEX {$AWS.RDS.LLD.FILTER.ALARM_SERVICE_NAMESPACE.NOT_MATCHES}

- {#ALARM_NAME} MATCHES_REGEX {$AWS.RDS.LLD.FILTER.ALARM_NAME.MATCHES}

- {#ALARM_NAME} NOT_MATCHES_REGEX {$AWS.RDS.LLD.FILTER.ALARM_NAME.NOT_MATCHES}

Instance Events discovery

Discovery instance events.

DEPENDENT aws.rds.events.discovery

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 3h

Filter:

AND

- {#EVENT_CATEGORY} MATCHES_REGEX {$AWS.RDS.LLD.FILTER.EVENT_CATEGORY.MATCHES}

- {#EVENT_CATEGORY} NOT_MATCHES_REGEX {$AWS.RDS.LLD.FILTER.EVENT_CATEGORY.NOT_MATCHES}

- {#EVENT_SOURCE_TYPE} MATCHES_REGEX {$AWS.RDS.LLD.FILTER.EVENT_SOURCE_TYPE.MATCHES}

- {#EVENT_SOURCE_TYPE} NOT_MATCHES_REGEX {$AWS.RDS.LLD.FILTER.EVENT_SOURCE_TYPE.NOT_MATCHES}

PostgreSQL metrics discovery

Discovery PostgreSQL metrics.

Storage types:

aurora-postgresql

postgres

DEPENDENT aws.rds.postgresql.discovery

Preprocessing:

- JAVASCRIPT: return JSON.stringify(value.includes('postgresql') ? [{'{#SINGLETON}': ''}] : []);

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Items collected

Group Name Description Type Key and additional info
AWS RDS AWS RDS: Get metrics check

Data collection check.

DEPENDENT aws.rds.metrics.check

Preprocessing:

- JSONPATH: $.error

⛔️ON_FAIL: CUSTOM_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Get instance info check

Data collection check.

DEPENDENT aws.rds.instance_info.check

Preprocessing:

- JSONPATH: $.error

⛔️ON_FAIL: CUSTOM_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Get alarms check

Data collection check.

DEPENDENT aws.rds.alarms.check

Preprocessing:

- JSONPATH: $.error

⛔️ON_FAIL: CUSTOM_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Get events check

Data collection check.

DEPENDENT aws.rds.events.check

Preprocessing:

- JSONPATH: $.error

⛔️ON_FAIL: CUSTOM_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Class

Contains the name of the compute and memory capacity class of the DB instance.

DEPENDENT aws.rds.class

Preprocessing:

- JSONPATH: $[*].DBInstanceClass.first()

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Engine

Database engine.

DEPENDENT aws.rds.engine

Preprocessing:

- JSONPATH: $..Engine.first()

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Engine version

Indicates the database engine version.

DEPENDENT aws.rds.engine.version

Preprocessing:

- JSONPATH: $[*].EngineVersion.first()

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Status

Specifies the current state of this database.

All possible status values and their description: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status

DEPENDENT aws.rds.status

Preprocessing:

- JSONPATH: $..DBInstanceStatus.first()

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Storage type

Specifies the storage type associated with DB instance.

DEPENDENT aws.rds.storage_type

Preprocessing:

- JSONPATH: $[*].StorageType.first()

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Create time

Provides the date and time the DB instance was created.

DEPENDENT aws.rds.create_time

Preprocessing:

- JSONPATH: $..InstanceCreateTime.first()

AWS RDS AWS RDS: Storage: Allocated

Specifies the allocated storage size specified in gibibytes (GiB).

DEPENDENT aws.rds.storage.allocated

Preprocessing:

- JSONPATH: $[*].AllocatedStorage.first()

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Storage: Max allocated

The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance.

If limit is not specified returns -1.

DEPENDENT aws.rds.storage.max_allocated

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Read replica: State

The status of a read replica. If the instance isn't a read replica, this is blank.

Boolean value that is true if the instance is operating normally, or false if the instance is in an error state.

DEPENDENT aws.rds.read_replica_state

Preprocessing:

- JSONPATH: $..StatusInfos..Normal.first()

⛔️ON_FAIL: DISCARD_VALUE ->

- BOOL_TO_DECIMAL

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Read replica: Status

The status of a read replica. If the instance isn't a read replica, this is blank.

Status of the DB instance. For a StatusType of read replica, the values can be replicating, replication stop point set, replication stop point reached, error, stopped, or terminated.

DEPENDENT aws.rds.read_replica_status

Preprocessing:

- JSONPATH: $..StatusInfos..Status.first()

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS: Swap usage

The amount of swap space used.

This metric is available for the Aurora PostgreSQL DB instance classes db.t3.medium, db.t3.large, db.r4.large, db.r4.xlarge, db.r5.large, db.r5.xlarge, db.r6g.large, and db.r6g.xlarge.

For Aurora MySQL, this metric applies only to db.t* DB instance classes.

This metric is not available for SQL Server.

DEPENDENT aws.rds.swap_usage

Preprocessing:

- JSONPATH: $.[?(@.Label == "SwapUsage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Write IOPS

The number of write records generated per second. This is more or less the number of log records generated by the database. These do not correspond to 8K page writes, and do not correspond to network packets sent.

DEPENDENT aws.rds.write_iops.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "WriteIOPS")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Write latency

The average amount of time taken per disk I/O operation.

DEPENDENT aws.rds.write_latency

Preprocessing:

- JSONPATH: $.[?(@.Label == "WriteLatency")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Write throughput

The average number of bytes written to persistent storage every second.

DEPENDENT aws.rds.write_throughput.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "WriteThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Network: Receive throughput

The incoming (Receive) network traffic on the DB instance, including both customer database traffic and Amazon RDS traffic used for monitoring and replication.

DEPENDENT aws.rds.network_receive_throughput.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "NetworkReceiveThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Burst balance

The percent of General Purpose SSD (gp2) burst-bucket I/O credits available.

DEPENDENT aws.rds.burst_balance

Preprocessing:

- JSONPATH: $.[?(@.Label == "BurstBalance")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: CPU: Utilization

The percentage of CPU utilization.

DEPENDENT aws.rds.cpu.utilization

Preprocessing:

- JSONPATH: $.[?(@.Label == "CPUUtilization")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Credit CPU: Balance

The number of CPU credits that an instance has accumulated, reported at 5-minute intervals.

You can use this metric to determine how long a DB instance can burst beyond its baseline performance level at a given rate.

When an instance is running, credits in the CPUCreditBalance don't expire. When the instance stops, the CPUCreditBalance does not persist, and all accrued credits are lost.

This metric applies only to db.t2.small and db.t2.medium instances for Aurora MySQL, and to db.t3 instances for Aurora PostgreSQL.

DEPENDENT aws.rds.cpu.credit_balance

Preprocessing:

- JSONPATH: $.[?(@.Label == "CPUCreditBalance")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Credit CPU: Usage

The number of CPU credits consumed during the specified period, reported at 5-minute intervals.

This metric measures the amount of time during which physical CPUs have been used for processing instructions by virtual CPUs allocated to the DB instance.

This metric applies only to db.t2.small and db.t2.medium instances for Aurora MySQL, and to db.t3 instances for Aurora PostgreSQL

DEPENDENT aws.rds.cpu.credit_usage

Preprocessing:

- JSONPATH: $.[?(@.Label == "CPUCreditUsage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Connections

The number of client network connections to the database instance.

The number of database sessions can be higher than the metric value because the metric value doesn't include the following:

- Sessions that no longer have a network connection but which the database hasn't cleaned up

- Sessions created by the database engine for its own purposes

- Sessions created by the database engine's parallel execution capabilities

- Sessions created by the database engine job scheduler

- Amazon Aurora/RDS connections

DEPENDENT aws.rds.database_connections

Preprocessing:

- JSONPATH: $.[?(@.Label == "DatabaseConnections")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Queue depth

The number of outstanding read/write requests waiting to access the disk.

DEPENDENT aws.rds.disk_queue_depth

Preprocessing:

- JSONPATH: $.[?(@.Label == "DiskQueueDepth")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: EBS: Byte balance

The percentage of throughput credits remaining in the burst bucket of your RDS database. This metric is available for basic monitoring only.

To find the instance sizes that support this metric, see the instance sizes with an asterisk (*) in the EBS optimized by default table (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html#current) in Amazon RDS User Guide for Linux Instances.

DEPENDENT aws.rds.ebs_byte_balance

Preprocessing:

- JSONPATH: $.[?(@.Label == "EBSByteBalance%")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: EBS: IO balance

The percentage of I/O credits remaining in the burst bucket of your RDS database. This metric is available for basic monitoring only.

To find the instance sizes that support this metric, see the instance sizes with an asterisk (*) in the EBS optimized by default table (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html#current) in Amazon RDS User Guide for Linux Instances.

DEPENDENT aws.rds.ebs_io_balance

Preprocessing:

- JSONPATH: $.[?(@.Label == "EBSIOBalance%")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Memory, freeable

The amount of available random access memory.

For MariaDB, MySQL, Oracle, and PostgreSQL DB instances, this metric reports the value of the MemAvailable field of /proc/meminfo.

DEPENDENT aws.rds.freeable_memory

Preprocessing:

- JSONPATH: $.[?(@.Label == "FreeableMemory")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Storage: Local free

The amount of local storage available, in bytes.

Unlike for other DB engines, for Aurora DB instances this metric reports the amount of storage available to each DB instance.

This value depends on the DB instance class. You can increase the amount of free storage space for an instance by choosing a larger DB instance class for your instance.

(This doesn't apply to Aurora Serverless v2.)

DEPENDENT aws.rds.free_local_storage

Preprocessing:

- JSONPATH: $.[?(@.Label == "FreeLocalStorage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Network: Receive throughput

The incoming (receive) network traffic on the DB instance, including both customer database traffic and Amazon RDS traffic used for monitoring and replication.

For Amazon Aurora: The amount of network throughput received from the Aurora storage subsystem by each instance in the DB cluster.

DEPENDENT aws.rds.storage_network_receive_throughput

Preprocessing:

- JSONPATH: $.[?(@.Label == "StorageNetworkReceiveThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Network: Transmit throughput

The outgoing (transmit) network traffic on the DB instance, including both customer database traffic and Amazon RDS traffic used for monitoring and replication.

For Amazon Aurora: The amount of network throughput sent to the Aurora storage subsystem by each instance in the Aurora MySQL DB cluster.

DEPENDENT aws.rds.storage_network_transmit_throughput

Preprocessing:

- JSONPATH: $.[?(@.Label == "StorageNetworkTransmitThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Read IOPS

The average number of disk I/O operations per second. Aurora PostgreSQL-Compatible Edition reports read and write IOPS separately, in 1-minute intervals.

DEPENDENT aws.rds.read_iops.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "ReadIOPS")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Read latency

The average amount of time taken per disk I/O operation.

DEPENDENT aws.rds.read_latency

Preprocessing:

- JSONPATH: $.[?(@.Label == "ReadLatency")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Read throughput

The average number of bytes read from disk per second.

DEPENDENT aws.rds.read_throughput.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "ReadThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Network: Transmit throughput

The outgoing (Transmit) network traffic on the DB instance, including both customer database traffic and Amazon RDS traffic used for monitoring and replication.

DEPENDENT aws.rds.network_transmit_throughput.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "NetworkTransmitThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Network: Throughput

The amount of network throughput both received from and transmitted to clients by each instance in the Aurora MySQL DB cluster, in bytes per second. This throughput doesn't include network traffic between instances in the DB cluster and the cluster volume.

DEPENDENT aws.rds.network_throughput.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "NetworkThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Storage: Space free

The amount of available storage space.

DEPENDENT aws.rds.free_storage_space

Preprocessing:

- JSONPATH: $.[?(@.Label == "FreeStorageSpace")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Read IOPS, local storage

The average number of disk read I/O operations to local storage per second. Only applies to Multi-AZ DB clusters.

DEPENDENT aws.rds.read_iops_local_storage.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "ReadIOPSLocalStorage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Read latency, local storage

The average amount of time taken per disk I/O operation for local storage. Only applies to Multi-AZ DB clusters.

DEPENDENT aws.rds.read_latency_local_storage

Preprocessing:

- JSONPATH: $.[?(@.Label == "ReadLatencyLocalStorage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Read throughput, local storage

The average number of bytes read from disk per second for local storage. Only applies to Multi-AZ DB clusters.

DEPENDENT aws.rds.read_throughput_local_storage.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "ReadThroughputLocalStorage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Replication: Lag

The amount of time a read replica DB instance lags behind the source DB instance. Applies to MySQL, MariaDB, Oracle, PostgreSQL, and SQL Server read replicas.

DEPENDENT aws.rds.replica_lag

Preprocessing:

- JSONPATH: $.[?(@.Label == "ReplicaLag")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Write IOPS, local storage

The average number of disk write I/O operations per second on local storage in a Multi-AZ DB cluster.

DEPENDENT aws.rds.write_iops_local_storage.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "WriteIOPSLocalStorage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Write latency, local storage

The average amount of time taken per disk I/O operation on local storage in a Multi-AZ DB cluster.

DEPENDENT aws.rds.write_latency_local_storage

Preprocessing:

- JSONPATH: $.[?(@.Label == "WriteLatencyLocalStorage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Write throughput, local storage

The average number of bytes written to disk per second for local storage.

DEPENDENT aws.rds.write_throughput_local_storage.rate

Preprocessing:

- JSONPATH: $.[?(@.Label == "WriteThroughputLocalStorage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: SQLServer: Failed agent jobs

The number of failed Microsoft SQL Server Agent jobs during the last minute.

DEPENDENT aws.rds.failed_sql_server_agent_jobs_count

Preprocessing:

- JSONPATH: $.[?(@.Label == "FailedSQLServerAgentJobsCount")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Binlog Usage

The amount of disk space occupied by binary logs on the master. Applies to MySQL read replicas.

DEPENDENT aws.rds.bin_log_disk_usage

Preprocessing:

- JSONPATH: $.[?(@.Label == "BinLogDiskUsage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS Alarms: ["{#ALARM_NAME}"]: State reason

An explanation for the alarm state, in text format.

Alarm description:

{#ALARM_DESCRIPTION}

DEPENDENT aws.rds.alarm.state_reason["{#ALARM_NAME}"]

Preprocessing:

- JSONPATH: $.[?(@.AlarmName == "{#ALARM_NAME}")].StateReason.first()

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS Alarms: ["{#ALARM_NAME}"]: State

The state value for the alarm. Possible values: 0 (OK), 1 (INSUFFICIENT_DATA), 2 (ALARM).

Alarm description:

{#ALARM_DESCRIPTION}

DEPENDENT aws.rds.alarm.state["{#ALARM_NAME}"]

Preprocessing:

- JSONPATH: $.[?(@.AlarmName == "{#ALARM_NAME}")].StateValue.first()

⛔️ON_FAIL: CUSTOM_VALUE -> 3

- JAVASCRIPT: var state = ['OK', 'INSUFFICIENT_DATA', 'ALARM']; return state.indexOf(value.trim()) === -1 ? 255 : state.indexOf(value.trim());

AWS RDS AWS RDS: Replication: Lag, max

The maximum amount of lag between the primary instance and each Aurora DB instance in the DB cluster.

DEPENDENT aws.rds.aurora_replica_lag.max[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "AuroraReplicaLagMaximum")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Replication: Lag, min

The minimum amount of lag between the primary instance and each Aurora DB instance in the DB cluster.

DEPENDENT aws.rds.aurora_replica_lag.min[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "AuroraReplicaLagMinimum")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Replication: Lag

For an Aurora replica, the amount of lag when replicating updates from the primary instance.

DEPENDENT aws.rds.aurora_replica_lag[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "AuroraReplicaLag")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Buffer Cache hit ratio

The percentage of requests that are served by the buffer cache.

DEPENDENT aws.rds.buffer_cache_hit_ratio[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "BufferCacheHitRatio")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Operations: Commit latency

The amount of latency for commit operations.

DEPENDENT aws.rds.commit_latency[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "CommitLatency")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Operations: Commit throughput

The average number of commit operations per second.

DEPENDENT aws.rds.commit_throughput.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "CommitThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Deadlocks, rate

The average number of deadlocks in the database per second.

DEPENDENT aws.rds.deadlocks.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "Deadlocks")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Engine uptime

The amount of time that the instance has been running.

DEPENDENT aws.rds.engine_uptime[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "EngineUptime")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Rollback segment history list length

The undo logs that record committed transactions with delete-marked records. These records are scheduled to be processed by the InnoDB purge operation.

DEPENDENT aws.rds.rollback_segment_history_list_length[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "RollbackSegmentHistoryListLength")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Network: Throughput

The amount of network throughput received from and sent to the Aurora storage subsystem by each instance in the Aurora MySQL DB cluster.

DEPENDENT aws.rds.storage_network_throughput[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "StorageNetworkThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: RDS to Aurora PostgreSQL replicaLag

The lag when replicating updates from the primary RDS PostgreSQL instance to other nodes in the cluster.

DEPENDENT aws.rds.rds_to_aurora_postgresql_replica_lag[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "RDSToAuroraPostgreSQLReplicaLag")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Maximum Used transaction ID

The age of the oldest unvacuumed transaction ID, in transactions. If this value reaches 2,146,483,648 (2^31 - 1,000,000), the database is forced into read-only mode, to avoid transaction ID wraparound.

DEPENDENT aws.rds.maximum_used_transaction_ids[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "MaximumUsedTransactionIDs")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Disk: Replication slot usage

The amount of disk space consumed by replication slot files.

DEPENDENT aws.rds.replication_slot_disk_usage[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "ReplicationSlotDiskUsage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Checkpoint lag

The amount of time since the most recent checkpoint. Applies to only RDS for PostgreSQL.

DEPENDENT aws.rds.checkpoint_lag[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "CheckpointLag")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Replication: Oldest slot lag

The lagging size of the replica lagging the most in terms of write-ahead log (WAL) data received. Applies to PostgreSQL.

DEPENDENT aws.rds.oldest_replication_slot_lag[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "OldestReplicationSlotLag")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Transaction log: Disk usage

The disk space used by transaction logs. Applies to PostgreSQL, primary for Aurora PostgreSQL.

By default, Aurora PostgreSQL uses log records, not transaction logs. When transaction logs aren't in use, the value for this metric is -1.

DEPENDENT aws.rds.transaction_logs_disk_usage[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "TransactionLogsDiskUsage")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Transaction log: Generation

The size of transaction logs generated per second. Applies to PostgreSQL.

DEPENDENT aws.rds.transaction_logs_generation[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "TransactionLogsGeneration")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Operations: Delete latency

The amount of latency for delete queries.

DEPENDENT aws.rds.delete_latency[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "DeleteLatency")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Operations: Delete throughput

The average number of delete queries per second.

DEPENDENT aws.rds.delete_throughput.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "DeleteThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: DML: Latency

The amount of latency for inserts, updates, and deletes.

DEPENDENT aws.rds.dml_latency[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "DMLLatency")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: DML: Throughput

The average number of inserts, updates, and deletes per second.

DEPENDENT aws.rds.dml_throughput.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "DMLThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: DDL: Latency

The amount of latency for data definition language (DDL) requests - for example, create, alter, and drop requests.

DEPENDENT aws.rds.ddl_latency[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "DDLLatency")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: DDL: Throughput

The average number of DDL requests per second.

DEPENDENT aws.rds.ddl_throughput.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "DDLThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Backtrack: Window, actual

The difference between the target backtrack window and the actual backtrack window.

DEPENDENT aws.rds.backtrack_window_actual[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "BacktrackWindowActual")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Backtrack: Window, alert

The number of times that the actual backtrack window is smaller than the target backtrack window for a given period of time.

DEPENDENT aws.rds.backtrack_window_alert[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "BacktrackWindowAlert")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Transactions: Blocked, rate

The average number of transactions in the database that are blocked per second.

DEPENDENT aws.rds.blocked_transactions.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "BlockedTransactions")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Row lock time

The total time spent acquiring row locks for InnoDB tables.

DEPENDENT aws.rds.row_locktime[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "RowLockTime")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Operations: Select latency

The amount of latency for select queries.

DEPENDENT aws.rds.select_latency[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "SelectLatency")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Operations: Select throughput

The average number of select queries per second.

DEPENDENT aws.rds.select_throughput.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "SelectThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Replication: Binlog lag

The amount of time that a binary log replica DB cluster running on Aurora MySQL-Compatible Edition lags behind the binary log replication source.

A lag means that the source is generating records faster than the replica can apply them.

The metric value indicates the following:

A high value: The replica is lagging the replication source.

0 or a value close to 0: The replica process is active and current.

-1: Aurora can't determine the lag, which can happen during replica setup or when the replica is in an error state

DEPENDENT aws.rds.aurora_replication_binlog_lag[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "AuroraBinlogReplicaLag")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Transactions: Active, rate

The average number of current transactions executing on an Aurora database instance per second.

By default, Aurora doesn't enable this metric. To begin measuring this value, set innodb_monitor_enable='all' in the DB parameter group for a specific DB instance.

DEPENDENT aws.rds.aurora_transactions_active.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "ActiveTransactions")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Connections: Aborted

The number of client connections that have not been closed properly.

DEPENDENT aws.rds.aurora_clients_aborted[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "AbortedClients")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Operations: Insert latency

The amount of latency for insert queries, in milliseconds.

DEPENDENT aws.rds.insert_latency[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "InsertLatency")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Operations: Insert throughput

The average number of insert queries per second.

DEPENDENT aws.rds.insert_throughput.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "InsertThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Login failures, rate

The average number of failed login attempts per second.

DEPENDENT aws.rds.login_failures.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "LoginFailures")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Queries, rate

The average number of queries executed per second.

DEPENDENT aws.rds.queries.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "Queries")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Resultset cache hit ratio

The percentage of requests that are served by the Resultset cache.

DEPENDENT aws.rds.result_set_cache_hit_ratio[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "ResultSetCacheHitRatio")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Binary log files, number

The number of binlog files generated.

DEPENDENT aws.rds.num_binary_log_files[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "NumBinaryLogFiles")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Binary log files, size

The total size of the binlog files.

DEPENDENT aws.rds.sum_binary_log_files[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "SumBinaryLogSize")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Operations: Update latency

The amount of latency for update queries.

DEPENDENT aws.rds.update_latency[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "UpdateLatency")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS: Operations: Update throughput

The average number of update queries per second.

DEPENDENT aws.rds.update_throughput.rate[{#SINGLETON}]

Preprocessing:

- JSONPATH: $.[?(@.Label == "UpdateThroughput")].Values.first().first()

⛔️ON_FAIL: DISCARD_VALUE ->

AWS RDS AWS RDS Events: [{#EVENT_CATEGORY}]: {#EVENT_SOURCE_TYPE}/{#EVENT_SOURCE_ID}: Message

Provides the text of this event.

DEPENDENT aws.rds.event_message["{#EVENT_CATEGORY}/{#EVENT_SOURCE_TYPE}/{#EVENT_SOURCE_ID}"]

Preprocessing:

- JSONPATH: $.[?(@.SourceIdentifier == "{#EVENT_SOURCE_ID}" && @.SourceType == "{#EVENT_SOURCE_TYPE}" && @.EventCategories == "{#EVENT_CATEGORY}")].Message

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[-1]

- DISCARD_UNCHANGED_HEARTBEAT: 3h

AWS RDS AWS RDS Events: [{#EVENT_CATEGORY}]: {#EVENT_SOURCE_TYPE}/{#EVENT_SOURCE_ID} : Date

Provides the text of this event.

DEPENDENT aws.rds.event_date["{#EVENT_CATEGORY}/{#EVENT_SOURCE_TYPE}/{#EVENT_SOURCE_ID}"]

Preprocessing:

- JSONPATH: $.[?(@.SourceIdentifier == "{#EVENT_SOURCE_ID}" && @.SourceType == "{#EVENT_SOURCE_TYPE}" && @.EventCategories == "{#EVENT_CATEGORY}")].Date

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[-1]

- DISCARD_UNCHANGED_HEARTBEAT: 3h

Zabbix raw items AWS RDS: Get metrics data

Get instance metrics.

Full metrics list related to RDS: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html

Full metrics list related to Amazon Aurora: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html#Aurora.AuroraMySQL.Monitoring.Metrics.instances

SCRIPT aws.rds.get_metrics

Preprocessing:

- CHECK_NOT_SUPPORTED

⛔️ON_FAIL: DISCARD_VALUE ->

Expression:

The text is too long. Please see the template.
Zabbix raw items AWS RDS: Get instance info

Get instance info.

DescribeDBInstances API method: https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html

SCRIPT aws.rds.get_instance_info

Preprocessing:

- CHECK_NOT_SUPPORTED

⛔️ON_FAIL: DISCARD_VALUE ->

Expression:

The text is too long. Please see the template.
Zabbix raw items AWS CloudWatch: Get instance alarms data

DescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html

SCRIPT aws.rds.get_alarms

Preprocessing:

- CHECK_NOT_SUPPORTED

⛔️ON_FAIL: DISCARD_VALUE ->

Expression:

The text is too long. Please see the template.
Zabbix raw items AWS RDS: Get instance events data

DescribeEvents API method: https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html

SCRIPT aws.rds.get_events

Preprocessing:

- CHECK_NOT_SUPPORTED

⛔️ON_FAIL: DISCARD_VALUE ->

Expression:

The text is too long. Please see the template.

Triggers

Name Description Expression Severity Dependencies and additional info
AWS RDS: Failed to get metrics data

-

length(last(/AWS RDS instance by HTTP/aws.rds.metrics.check))>0 WARNING
AWS RDS: Failed to get instance data

-

length(last(/AWS RDS instance by HTTP/aws.rds.instance_info.check))>0 WARNING
AWS RDS: Failed to get alarms data

-

length(last(/AWS RDS instance by HTTP/aws.rds.alarms.check))>0 WARNING
AWS RDS: Failed to get events data

-

length(last(/AWS RDS instance by HTTP/aws.rds.events.check))>0 WARNING
AWS RDS: Read replica in error state

The status of a read replica.

False if the instance is in an error state.

last(/AWS RDS instance by HTTP/aws.rds.read_replica_state)=0 AVERAGE
AWS RDS: Burst balance is too low

-

max(/AWS RDS instance by HTTP/aws.rds.burst_balance,5m)<{$AWS.RDS.BURST.CREDIT.BALANCE.MIN.WARN} WARNING
AWS RDS: High CPU utilization

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

min(/AWS RDS instance by HTTP/aws.rds.cpu.utilization,15m)>{$AWS.RDS.CPU.UTIL.WARN.MAX} WARNING
AWS RDS: Instance CPU Credit balance is too low

The number of earned CPU credits has been less than {$AWS.RDS.CPU.CREDIT.BALANCE.MIN.WARN} in the last 5 minutes.

max(/AWS RDS instance by HTTP/aws.rds.cpu.credit_balance,5m)<{$AWS.RDS.CPU.CREDIT.BALANCE.MIN.WARN} WARNING
AWS RDS: Byte Credit balance is too low

-

max(/AWS RDS instance by HTTP/aws.rds.ebs_byte_balance,5m)<{$AWS.EBS.BYTE.CREDIT.BALANCE.MIN.WARN} WARNING
AWS RDS: I/O Credit balance is too low

-

max(/AWS RDS instance by HTTP/aws.rds.ebs_io_balance,5m)<{$AWS.EBS.IO.CREDIT.BALANCE.MIN.WARN} WARNING
AWS RDS Alarms: "{#ALARM_NAME}" has 'Alarm' state

Alarm "{#ALARM_NAME}" has 'Alarm' state.

Reason: {ITEM.LASTVALUE2}

last(/AWS RDS instance by HTTP/aws.rds.alarm.state["{#ALARM_NAME}"])=2 and length(last(/AWS RDS instance by HTTP/aws.rds.alarm.state_reason["{#ALARM_NAME}"]))>0 AVERAGE
AWS RDS Alarms: "{#ALARM_NAME}" has 'Insufficient data' state

-

last(/AWS RDS instance by HTTP/aws.rds.alarm.state["{#ALARM_NAME}"])=1 INFO

Feedback

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

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

Articles and documentation

+ Propose new article

Sie können die Integration nicht finden, die Sie benötigen?