Skip to main content

Amazon RDS

Overview​

Amazon Relational Database Service (Amazon RDS) makes it easy to set up, operate, and scale a relational database in the cloud. It provides cost-efficient and resizable capacity while automating time-consuming administration tasks such as hardware provisioning, database setup, patching and backups. It frees you to focus on your applications so you can give them the fast performance, high availability, security and compatibility they need.

Connector Pack content​

Monitored objects​

  • Instances (MySQL, MariaDB, Oracle, SQL Server ...)
  • Clusters (Aurora, ...)

Discovery rules​

Rule nameDescription
Cloud-Aws-Rds-Api-HostDiscoveryDiscover Instances and Clusters from your Cloudwatch endpoint

Monitored metrics​

You can get an overview of all gathered metrics from AWS/RDS in the official documentation: https://docs.aws.amazon.com/rds/index

Metric nameDescriptionUnit:
DatabaseConnectionsNumber of connections to the database.Count

Prerequisistes​

AWS Configuration​

Wether you are using a service account or a dedicated monitoring one, your IAM role (combo access/secret key) must have the following rights:

AWS PrivilegeDescription
rds:DescribeDBInstancesDisplay RDS instances & cluster descriptions
cloudwatch:getMetricStatisticsGet metrics from the AWS/RDS namespace on Cloudwatch

Plugin dependencies​

To interact with Amazon APIs, you can use either use awscli binary or paws, a perl AWS SDK (recommended). You must install it on every poller that will monitor AWS resources.

At the moment it is not possible to use perl-Paws if you are using a proxy to talk with AWS Cloudwatch APIs.

yum install perl-Paws

Setup​

  1. Install the Centreon package on every poller expected to monitor Amazon RDS ressources:
yum install centreon-plugin-Cloud-Aws-Rds-Api
  1. Install the monitoring templates from the Centreon Monitoring Connector on the Configuration > Monitoring Connectors Manager page

Configuration​

Addinge a new host into Centreon, apply the relevant host template matching your instance/cluster type. All of the host templates begin with "Cloud-Aws-Rds-". Once the template chosen, you have to set values on the macros marked as mandatory:

MandatoryNomDescription
XAWSSECRETKEYAWS Secret key of your IAM role. Password checkbox must be checked
XAWSACESSKEYAWS Access key of your IAM role. Password checkbox must be checked
XAWSREGIONRegion where the instance is running
XAWSCUSTOMMODECustom mode to get metrics, 'awscli' is the default, you can also use 'paws' perl library
XAWSINSTANCENAMEName of the instance you want to monitor
XAWSINSTANCETYPEType of instance to check ('instance' or 'cluster')
PROXYURLConfigure proxy URL information
EXTRAOPTIONSAny extra option you may want to add to every command_line (eg. a --verbose flag)
DUMMYSTATUSHost state. Default is OK, do not modify it until you know what you are doing
DUMMYOUTPUTHost check output. Default is 'This is a dummy check'. Customize it with your own if needed

FAQ​

How can I test it through the CLI and what is the meaning of the command_line parameters ?​

Logging with the centreon-engine user, you can directly run the plugin from the command line interface :

/usr/lib/centreon/plugins//centreon_aws_rds_api.pl \
--plugin=cloud::aws::rds::plugin \
--mode=connections \
--custommode='awscli' \
--aws-secret-key='*******************' \
--aws-access-key='**********' \
--region='eu-west-1' \
--type='cluster' \
--name='dev-cluster' \
--environment='HTTPS_PROXY=http://proxy.int.company.com:3128/' \
--filter-metric='' \
--statistic='average' \
--timeframe='600' \
--period='60' \
--warning-databaseconnections-average='25' \
--critical-databaseconnections-average='50' \
--verbose

OK: Cluster 'dev-cluster' average DatabaseConnections: 3 | 'dev-cluster#databaseconnections_average'=3;25;50;0;
Cluster 'dev-cluster' average DatabaseConnections: 3

This command aims to monitor the connections number (--mode=connections) on an Aurora db cluster (--type='cluster') whose name is dev-cluster (--name='dev-cluster'). This cluster is deployed within the AWS eu-west-1 region (--region='eu-west-1'). The collected metrics will be parsed as average statistics (--statistic='average') over a timeframe of 600 secondes (--timeframe='600') with a sample of 1 point per minute (--period='60').

A WARNING alert will be triggered if the value raises beyond 25 and a CRITICAL alert beyond 50 (--warning-databaseconnections-average='25' --critical-databaseconnections-average='50').

All options are described through the plugin help:

/usr/lib/centreon/plugins//centreon_aws_rds_api.pl --plugin=cloud::aws::rds::plugin --mode=<modename> --help

UNKNOWN: No metrics. Check your options or use --zeroed option to set 0 on undefined values​

When using AWS monitoring checks, I get the following message 'UNKNOWN: No metrics. Check your options or use --zeroed option to set 0 on undefined values'.

It may happen when the AWS Cloudwatch service doesn't have any entry for that period or this specific metric is not available on this instance.

Most of the time, it is due to AWS Cloudwatch not storing any value because there isn't any activity related to the instance (e.g no transactions or IO disk in the last 10 minutes).

You can bypass this message adding ' --zeroed' flag within your service EXTRAOPTIONS macro to make the plugin return a 0 instead of this message.