Join the Beta!

Aurora クラスターのオートディスカバリーはベータ機能です。この機能に関するフィードバックがありましたら、support@datadoghq.com までご連絡ください。

このガイドでは、Amazon Aurora Postgres または MySQL データベースに対して Database Monitoring を構成していることを前提としています。

はじめに

対応データベース
Postgres、MySQL
サポート対象の Agent バージョン
7.53.0 以降 (ベータ版)

この機能を使用するには、Agent のベータ版をインストールする必要があります。このページの Datadog Agent 7.53.0 以降のインストールセクションを参照してください。

概要

Datadog のオートディスカバリーを使用すると、動的インフラストラクチャーでモニタリングを構成することができます。この機能を使用すると、個々のデータベースホストエンドポイントをリストすることなく、Aurora クラスターを監視することができます。これは、接続性やワークロードの変動に応じて Aurora Replica の数を動的に調整する Aurora Auto Scaling を使用するクラスターに特に役立ちます。オートディスカバリーは、プライマリとレプリカの両方のエンドポイントインスタンスを自動的に発見し監視します。

オートディスカバリーと Database Monitoring を使用すると、Postgres または MySQL チェックの構成テンプレートを定義し、各チェックを適用するクラスターを指定できます。

Aurora クラスターでオートディスカバリーを有効にする

  1. Datadog Agent 7.53.0 以降のインストール
  2. AWS 権限の付与
  3. Aurora タグの構成
  4. Datadog Agent の構成
  5. 構成テンプレートの作成

Datadog Agent 7.53.0 以降のインストール

この機能を使用するには、Agent のベータ版をインストールする必要があります。

以下のコマンドを実行することで、Agent インストールスクリプトを使用して正しいバージョンをインストールできます。

DD_API_KEY=<API_KEY> DD_SITE="" \
DD_AGENT_DIST_CHANNEL=beta DD_AGENT_MAJOR_VERSION=7 \
DD_AGENT_MINOR_VERSION=52.0~dbm~aurora~autodiscovery~beta~0.3-1 \
bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)"

Datadog Agent のインストールの詳細については、Amazon Linux の基本的な 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.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 でマネージド認証を使用するかどうかを決定するために使用されます。