Amazon Aurora DB クラスターに対する Database Monitoring の構成
このガイドでは、Amazon Aurora Postgres または MySQL データベースに対して Database Monitoring を構成していることを前提としています。
はじめに
- 対応データベース
- Postgres、MySQL
- 対応 Agent バージョン
- 7.53.0 以上
概要
Datadog の Autodiscovery を使用すると、動的なインフラストラクチャーでモニタリングを設定できます。この機能を使用すると、個々のデータベース ホスト エンドポイント (例: postgres.d/conf.yaml
) を列挙せずに Aurora クラスターをモニタリングできます。特に、接続性やワークロードの変化に応じて Aurora Replica の数を動的に調整する Aurora Auto Scaling を利用するクラスターで役立ちます。Autodiscovery は、プライマリおよびレプリカのエンドポイント インスタンスを自動的に検出してモニタリングします。
オートディスカバリーと 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 認証を使用して 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 でマネージド認証を使用するかどうかを決定するために使用されます。 |