Configuration de la surveillance de base de données pour les clusters de bases de données Amazon Aurora
Ce guide suppose que vous avez configuré la surveillance de base de données pour vos bases de données Amazon Aurora Postgres ou MySQL.
Avant de commencer
- Bases de données prises en charge
- Postgres, MySQL
- Versions d’agent prises en charge
- 7.53.0+
Aperçu
L’Autodécouverte de Datadog vous permet de configurer la surveillance dans des infrastructures dynamiques. Vous pouvez utiliser cette fonctionnalité pour surveiller vos clusters Aurora sans avoir à lister les points de terminaison des hôtes de base de données individuels (par exemple, postgres.d/conf.yaml). Cela est particulièrement utile pour les clusters qui utilisent Aurora Auto Scaling, qui ajuste dynamiquement le nombre d’Aurora Replicas en réponse aux variations de connectivité ou de charge de travail. L’autodécouverte découvre et surveille automatiquement les instances d’endpoint primary et replica.
Avec l’autodécouverte et la surveillance de base de données, vous pouvez définir des modèles de configuration pour les checks Postgres ou MySQL et spécifier à quels clusters appliquer chaque check.
Activation de l’autodécouverte pour les clusters Aurora
- Accorder des autorisations AWS
- Configurer les balises Aurora
- Configurer le Datadog Agent
- Créer un modèle de configuration
Accorder des autorisations AWS
Le Datadog Agent nécessite l’autorisation d’exécuter rds:DescribeDBClusters et rds:DescribeDBInstances dans votre compte AWS. Datadog recommande d’attacher une politique de rôle IAM à l’instance EC2 sur laquelle le Datadog Agent s’exécute.
Un exemple de politique qui accorde ces autorisations :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds:DescribeDBClusters",
"rds:DescribeDBInstances"
],
"Resource": [
"arn:aws:rds:<region>:<account>:cluster:*",
"arn:aws:rds:<region>:<account>:db:*"
]
}
]
}
Vous pouvez également attacher la politique AmazonRDSReadOnlyAccess.
Le listener découvre tous les clusters Aurora dans le compte et la région où l’Agent est en cours d’exécution et qui ont la balise datadoghq.com/scrape:true appliquée. Vous pouvez également configurer le Datadog Agent pour découvrir des clusters avec des balises spécifiques.
Vous devez appliquer ces balises au cluster de base de données (Rôle : Regional cluster). Pour plus d’informations sur l’étiquetage des ressources RDS, consultez la documentation AWS.
Si vous configurez tags comme un tableau vide, l’Autodécouverte découvrira tous les clusters dans le compte et la région.
L’autodécouverte utilise un listener de service du Datadog Agent, qui découvre tous les endpoints des hôtes de base de données dans un cluster Aurora et transmet les endpoints découverts au pipeline de planification des checks existants. Vous pouvez configurer le listener dans le fichier datadog.yaml :
database_monitoring:
autodiscovery:
aurora:
enabled: true
Remarque : Le Datadog Agent ne découvre que les instances Aurora s’exécutant dans la même région où il s’exécute. Pour déterminer la région de l’instance, le Datadog Agent utilise IMDS (Instance Metadata Service). Si votre instance EC2 nécessite IMDSv2, vous devez configurer le Datadog Agent pour utiliser IMDSv2 en définissant ec2_prefer_imdsv2: true dans datadog.yaml, comme indiqué ci-dessous :
ec2_prefer_imdsv2: true
database_monitoring:
autodiscovery:
aurora:
enabled: true
By default, the listener only discovers Aurora clusters in the account and region where the Agent is running, and only those with the datadoghq.com/scrape:true tag. You can also configure the listener to discover clusters with specific tags.
To specify custom tags for Aurora cluster discovery in the datadog.yaml file:
database_monitoring:
autodiscovery:
aurora:
enabled: true
tags:
- "my-cluster-tag-key:value"
To monitor all clusters in the account and region:
database_monitoring:
autodiscovery:
aurora:
enabled: true
tags: []
The listener queries the AWS API for the list of hosts in a loop. The frequency with which the listener queries the AWS API, in seconds, is configurable in the datadog.yaml file:
database_monitoring:
autodiscovery:
aurora:
enabled: true
discovery_interval: 300
The listener provides an %%extra_dbm%% variable that can be used to enable or disable DBM for the instance. This value defaults to true if the tag datadoghq.com/dbm:true is present. To specify a custom tag for this value use dbm_tag:
database_monitoring:
autodiscovery:
aurora:
enabled: true
dbm_tag: "use_dbm:true"
The %%extra_dbm%% value is true if the tag is present, and false otherwise. It does not set its value to the value of the tag.
The listener provides an %%extra_global_view_db%% variable that can be used to set the global_view_db for the instance. This value defaults to the value of the tag datadoghq.com/global_view_db. To specify a custom tag for this value use global_view_db_tag:
database_monitoring:
autodiscovery:
aurora:
enabled: true
global_view_db_tag: "my_db_tag"
Create a configuration template
The Datadog Agent supports configuration templates for the Postgres and MySQL integrations. Define a configuration template for the Aurora clusters you wish to monitor.
Tout d’abord, ajoutez un ad_identifier pour Postgres géré par Aurora à votre modèle de configuration (postgres.d/conf_aws_aurora.yaml) :
ad_identifiers:
- _dbm_postgres_aurora
Ensuite, définissez le reste du modèle. Utilisez les variables de modèle pour les paramètres qui peuvent changer, tels que host et port.
ad_identifiers:
- _dbm_postgres_aurora
init_config:
instances:
- host: "%%host%%"
port: "%%port%%"
username: datadog
dbm: "%%extra_dbm%%"
database_autodiscovery:
enabled: true
aws:
instance_endpoint: "%%host%%"
region: "%%extra_region%%"
tags:
- "dbclusteridentifier:%%extra_dbclusteridentifier%%"
- "region:%%extra_region%%"
Dans cet exemple, les variables de modèle %%host%%, %%port%%, %%extra_dbclusteridentifier%%, %%extra_dbm%% et %%extra_region%% sont peuplées dynamiquement avec des informations provenant du cluster Aurora.
Authentification
Si vous utilisez un mot de passe pour l’authentification, notez que le mot de passe fourni dans ce fichier modèle sera utilisé dans chaque base de données découverte.
Stockez votre mot de passe en toute sécurité
Store your password using secret management software such as Vault. You can then reference this password as ENC[<SECRET_NAME>] in your Agent configuration files: for example, ENC[datadog_user_database_password]. See Secrets Management for more information.
The examples on this page use datadog_user_database_password to refer to the name of the secret where your password is stored. It is possible to reference your password in plain text, but this is not recommended.
Le modèle de configuration d’exemple suivant est appliqué à chaque instance découverte dans le cluster Aurora :
ad_identifiers:
- _dbm_postgres_aurora
init_config:
instances:
- host: "%%host%%"
port: "%%port%%"
username: datadog
password: "ENC[datadog_user_database_password]"
dbm: "%%extra_dbm%%"
aws:
instance_endpoint: "%%host%%"
region: "%%extra_region%%"
tags:
- "dbclusteridentifier:%%extra_dbclusteridentifier%%"
- "region:%%extra_region%%"
IAM Authentication
To use IAM authentication to connect to your Aurora cluster, use the following template:
ad_identifiers:
- _dbm_postgres_aurora
init_config:
instances:
- host: "%%host%%"
port: "%%port%%"
username: datadog
dbm: true
aws:
instance_endpoint: "%%host%%"
region: "%%extra_region%%"
managed_authentication:
enabled: "%%extra_managed_authentication_enabled%%"
tags:
- "dbclusteridentifier:%%extra_dbclusteridentifier%%"
- "region:%%extra_region%%"
The template variable %%extra_managed_authentication_enabled%% resolves to true if the instance is using IAM authentication.
Custom global_view_db
Pour définir un Custom global_view_db pour l’autodécouverte de base de données, assurez-vous d’utiliser le Datadog Agent version 7.75.0 ou supérieure et utilisez le modèle suivant :
ad_identifiers:
- _dbm_postgres_aurora
init_config:
instances:
- host: "%%host%%"
port: "%%port%%"
username: datadog
dbm: true
database_autodiscovery:
enabled: true
global_view_db: "%%extra_global_view_db%%"
aws:
instance_endpoint: "%%host%%"
region: "%%extra_region%%"
tags:
- "dbclusteridentifier:%%extra_dbclusteridentifier%%"
- "region:%%extra_region%%"
First, add an ad_identifier for Aurora-managed MySQL to your configuration template (mysql.d/conf_aws_aurora.yaml) file:
ad_identifiers:
- _dbm_mysql_aurora
Then, define the remainder of the template. Use template variables for parameters that may change, such as host and port.
ad_identifiers:
- _dbm_mysql_aurora
init_config:
instances:
- host: "%%host%%"
port: "%%port%%"
username: datadog
dbm: "%%extra_dbm%%"
aws:
instance_endpoint: "%%host%%"
region: "%%extra_region%%"
tags:
- "dbclusteridentifier:%%extra_dbclusteridentifier%%"
- "region:%%extra_region%%"
In this example, the template variables %%host%%, %%port%%, %%extra_dbclusteridentifier%%, %%extra_dbm%%, and %%extra_region%% are dynamically populated with information from the Aurora cluster.
Authentication
If you are using password for authentication note that the password provided in this template file will be used across every database discovered.
Stockez votre mot de passe en toute sécurité
Store your password using secret management software such as Vault. You can then reference this password as ENC[<SECRET_NAME>] in your Agent configuration files: for example, ENC[datadog_user_database_password]. See Secrets Management for more information.
The examples on this page use datadog_user_database_password to refer to the name of the secret where your password is stored. It is possible to reference your password in plain text, but this is not recommended.
Le modèle de configuration d’exemple suivant est appliqué à chaque instance découverte dans le cluster Aurora :
ad_identifiers:
- _dbm_mysql_aurora
init_config:
instances:
- host: "%%host%%"
port: "%%port%%"
username: datadog
password: "ENC[datadog_user_database_password]"
dbm: "%%extra_dbm%%"
aws:
instance_endpoint: "%%host%%"
region: "%%extra_region%%"
tags:
- "dbclusteridentifier:%%extra_dbclusteridentifier%%"
- "region:%%extra_region%%"
IAM Authentication
To use IAM authentication to connect to your RDS instance, make sure that you are using Agent version 7.67.0 or above and use the following template:
ad_identifiers:
- _dbm_mysql_aurora
init_config:
instances:
- host: "%%host%%"
port: "%%port%%"
username: datadog
dbm: true
aws:
instance_endpoint: "%%host%%"
region: "%%extra_region%%"
managed_authentication:
enabled: "%%extra_managed_authentication_enabled%%"
tags:
- "dbclusteridentifier:%%extra_dbclusteridentifier%%"
- "region:%%extra_region%%"
The template variable %%extra_managed_authentication_enabled%% resolves to true if the instance is using IAM authentication.
Pour plus d’informations sur la configuration de l’autodécouverte avec des intégrations, consultez la documentation sur l’autodécouverte.
Variables de modèle prises en charge
| Variable de modèle | Source |
|---|
| %%host%% | L’endpoint de l’instance Aurora |
| %%port%% | Le port de l’instance Aurora |
| %%extra_region%% | La région AWS où se trouve l’instance |
| %%extra_dbclusteridentifier%% | L’identifiant du cluster de l’Aurora découvert |
| %%extra_dbm%% | Indique si DBM est activé sur le cluster. Déterminé par la présence de dbm_tag, qui par défaut est datadoghq.com/dbm:true. |
| %%extra_managed_authentication_enabled%% | Indique si l’authentification IAM est activée sur le cluster. Ceci est utilisé pour déterminer si l’authentification gérée doit être utilisée pour la connexion. |
| %%extra_global_view_db%% | La valeur de global_view_db_tag, qui par défaut est datadoghq.com/global_view_db. |