このガイドでは、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 クラスターでオートディスカバリーを有効にする

  1. AWS 権限の付与
  2. Aurora タグの構成
  3. Datadog Agent の構成
  4. 構成テンプレートの作成

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.yamlec2_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

次に、テンプレートの残りの部分を定義します。hostport のような変更される可能性のあるパラメーターにはテンプレート変数を使用します。

以下の構成テンプレートの例は、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

次に、テンプレートの残りの部分を定義します。hostport のような変更される可能性のあるパラメーターにはテンプレート変数を使用します。

以下の構成テンプレートの例は、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 でマネージド認証を使用するかどうかを決定するために使用されます。