Amazon Aurora DB クラスターに対する Database Monitoring の構成
このガイドでは、Amazon Aurora Postgres または MySQL データベースに対して Database Monitoring を構成していることを前提としています。
はじめに
- 対応データベース
- Postgres、MySQL
- Supported Agent versions
- 7.53.0+
概要
Datadog’s Autodiscovery enables you to configure monitoring in dynamic infrastructures. You can use this feature to monitor your Aurora clusters without having to list individual database host endpoints (for example, postgres.d/conf.yaml
). This is especially helpful for clusters that use Aurora Auto Scaling, which dynamically adjusts the number of Aurora Replicas in response to variations in connectivity or workload. Autodiscovery automatically discovers and monitors both primary and replica endpoint instances.
オートディスカバリーと Database Monitoring を使用すると、Postgres または MySQL チェックの構成テンプレートを定義し、各チェックを適用するクラスターを指定できます。
Aurora クラスターでオートディスカバリーを有効にする
- AWS 権限の付与
- Aurora タグの構成
- Datadog Agent の構成
- 構成テンプレートの作成
AWS 権限の付与
Datadog Agent が AWS アカウント内で rds:DescribeDBClusters
および rds:DescribeDBInstances
を実行するためには権限が必要です。Datadog は、Agent を実行している EC2 インスタンスに IAM ロールポリシーを割り当てることを推奨しています。
これらの権限を与えるポリシーの例:
{
"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:*"
]
}
]
}
また、AmazonRDSReadOnlyAccess
ポリシーを割り当てることもできます。
Aurora タグの構成
デフォルトでは、リスナーは Agent が動作しているアカウントとリージョンで、datadoghq.com/scrape:true
タグが適用されているすべての Aurora クラスターを発見します。特定のタグを持つクラスターを発見するように Agent を構成することもできます。
これらのタグは DB クラスター (ロール: Regional cluster
) に適用する必要があります。RDS リソースへのタグ付けの詳細については、AWS ドキュメントを参照してください。
Datadog Agent の構成
オートディスカバリーは Agent サービスリスナーを使用します。Agent サービスリスナーは Aurora クラスター内のすべてのデータベースホストエンドポイントを発見し、発見されたエンドポイントを既存の Agent チェックスケジューリングパイプラインに転送します。リスナーは datadog.yaml
ファイルで構成できます。
database_monitoring:
autodiscovery:
aurora:
enabled: true
注: Agent は、Agent と同じリージョンで実行している Aurora インスタンスのみを発見します。インスタンスのリージョンを決定するために、Agent は IMDS (Instance Metadata Service) を使用します。EC2 インスタンスが IMDSv2
を必要とする場合、以下のように datadog.yaml
で ec2_prefer_imdsv2: true
を設定して、Agent が IMDSv2
を使用するように構成する必要があります。
ec2_prefer_imdsv2: true
database_monitoring:
autodiscovery:
aurora:
enabled: true
デフォルトでは、リスナーは Agent が動作しているアカウントとリージョンの Aurora クラスターと、datadoghq.com/scrape:true
タグを持つ Aurora クラスターのみを発見します。特定のタグを持つクラスターを発見するようにリスナーを構成することもできます。
datadog.yaml
ファイルに Aurora クラスター発見用のカスタムタグを指定するには
database_monitoring:
autodiscovery:
aurora:
enabled: true
tags:
- "my-cluster-tag-key:value"
リスナーは AWS API にホストのリストを繰り返しクエリします。リスナーが AWS API にクエリする頻度は秒単位で、datadog.yaml
ファイルで構成できます。
database_monitoring:
autodiscovery:
aurora:
enabled: true
discovery_interval: 300
構成テンプレートの作成
Datadog Agent は、Postgres と MySQL インテグレーション用の構成テンプレートをサポートしています。監視したい Aurora クラスターの構成テンプレートを定義します。
まず、構成テンプレート (postgres.d/conf_aws_aurora.yaml
) ファイルに Aurora が管理する Postgres 用のad_identifier
を追加します。
ad_identifiers:
- _dbm_postgres_aurora
次に、テンプレートの残りの部分を定義します。host
や port
のような変更される可能性のあるパラメーターにはテンプレート変数を使用します。
以下の構成テンプレートの例は、Aurora クラスターで発見されたすべてのインスタンスに適用されます。
ad_identifiers:
- _dbm_postgres_aurora
init_config:
instances:
- host: "%%host%%"
port: "%%port%%"
username: datadog
dbm: true
aws:
instance_endpoint: "%%host%%"
region: "%%extra_region%%"
tags:
- "dbclusteridentifier:%%extra_dbclusteridentifier%%"
- "region:%%extra_region%%"
この例では、テンプレート変数 %%host%%
、%port%%
、%extra_dbclusteridentifier%%
、%extra_region%%
が Aurora クラスターからの情報で動的に置き換えられます。
[IAM 認証][2]を使用して Aurora クラスターに接続するには、以下のテンプレートを使用します。
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%%"
インスタンスが IAM 認証を使用している場合、テンプレート変数 %%extra_managed_authentication_enabled%%
は true
に解決されます。
まず、Aurora が管理する Postgres に対応する構成テンプレート (mysql.d/conf_aws_aurora.yaml
) ファイルに ad_identifier
を追加します。
ad_identifiers:
- _dbm_mysql_aurora
次に、テンプレートの残りの部分を定義します。host
や port
のような変更される可能性のあるパラメーターにはテンプレート変数を使用します。
以下の構成テンプレートの例は、Aurora クラスターで発見されたすべてのインスタンスに適用されます。
ad_identifiers:
- _dbm_mysql_aurora
init_config:
instances:
- host: "%%host%%"
port: "%%port%%"
username: datadog
dbm: true
aws:
instance_endpoint: "%%host%%"
tags:
- "dbclusteridentifier:%%extra_dbclusteridentifier%%"
- "region:%%extra_region%%"
この例では、テンプレート変数 %%host%%
、%port%%
、%extra_dbclusteridentifier%%
、%extra_region%%
が Aurora クラスターからの情報で動的に置き換えられます。
インテグレーションによるオートディスカバリーの構成の詳細については、オートディスカバリーのドキュメントを参照してください。
サポートされているテンプレート変数
テンプレート変数 | ソース |
---|
%%host%% | Aurora インスタンスエンドポイント |
%%port%% | Aurora インスタンスのポート |
%%extra_region%% | インスタンスが配置されている AWS リージョン |
%%extra_dbclusteridentifier%% | 発見された Aurora クラスターのクラスター識別子 |
%%extra_managed_authentication_enabled%% | クラスターで IAM 認証が有効かどうか。 これは Postgres でマネージド認証を使用するかどうかを決定するために使用されます。 |