概要

Datadog で Database Monitoring を設定するために必要な手順は、使用しているデータベースの種類 (Postgres、MySQL、SQL Server、Oracle)、ホストプロバイダー (セルフホスト、AWS、Google Cloud SQL、Azure、Oracle) によって異なります。どのホストプロバイダー上のどのデータベースでも Database Monitoring を使用するには、以下が必要です。

  • Datadog Agent
  • Datadog Agent のホスト
  • データベースの読み取り専用アクセス

Agent

Datadog Agent は、CPU、メモリ、ネットワークアクティビティなどのシステムメトリクスを監視する軽量なソフトウェアです。また、SQL ユーザーとしてデータベースに接続し、データベースパフォーマンスに関するデータを収集することもできます。

For self-hosted databases, you install the agent directly onto the host that is hosting your database. For cloud-managed databases such as Amazon RDS and Azure SQL, you configure the Agent to connect to your databases remotely.

セルフホストデータベース

セルフホスティングのセットアップは、Agent をホストするデータベースホスト上でデータベースプロセスを通過し、Agent もホストします。そして、インターネットに接続した後、Datadog のバックエンドに接続されます。

セルフホスティングのセットアップでは、Datadog Agent は、オペレーティングシステムのホストからシステムメトリクスを、データベースから直接データベースメトリクスを、そしてデータベースログからログイベントを収集します。

セルフホスト型セットアップの場合、Agent をデータベースホストに直接インストールし、データベースプロセスを実行しているシステムの健全性を完全に視覚化することができます。

Agent にデータベースへの読み取り専用アクセスを許可し、インテグレーションを構成します。Agent は、データベースに対して読み取り専用のクエリを実行できるように、ユーザーとしてログインする必要があります。

セルフホスティングプロバイダーでのデータベースモニタリングの設定方法:

クラウド管理型データベース

If your setup is cloud-managed (with providers such as Amazon RDS or Aurora, Google Cloud SQL, or Azure), you install the Agent on a separate host and configure it to connect to each managed instance.

データベースモニタリングは、CPU、メモリ、ディスク使用量、ログ、関連するテレメトリーなどのシステムメトリクスを、クラウドプロバイダーとの Datadog インテグレーションを利用して直接収集します。

The database instance is separate from the Agent host, which is separate from the Datadog backend. The cloud API connects to the Datadog AWS integration through the internet.

Agent がデータベースインスタンスに接続できるのであれば、どのクラウド VM (例えば、EC2) にも Agent をインストールすることができます。

If you are not running your own Kubernetes cluster, Datadog recommends using your cloud provider’s orchestration tools. For example, you can use Amazon ECS to host the Datadog Agent, as the Agent already exists as a Docker container.

Kubernetes

Kubernetes 上でアプリを運用している場合は、ポッド全体でクラスターチェックを実行できる Datadog Cluster Agent とデータベースモニタリングを使用します。

クラウドプロバイダーのデータベースインスタンスは Kubernetes クラスターのノードに接続し、インターネットを通じて Datadog のバックエンドに接続します。クラウド API は、Datadog の AWS インテグレーションに直接接続します。

Cluster Agent は、データベースインスタンスを Agent のプールに自動的に分散させます。これにより、各ノードベースの Agent ポッドが対応するチェックを実行するのとは対照的に、各チェックのインスタンスが 1 つだけ実行されるようになります。Cluster Agent は構成を保持し、ノードベースの Agent に動的にディスパッチします。各ノード上の Agent は 10 秒ごとに Cluster Agent に接続し、実行するための構成を取得します。

Agent がレポートを停止した場合、Cluster Agent はそれをアクティブプールから削除し、他の Agent に構成を分配します。これにより、クラスターにノードが追加・削除されても、常に 1 つの (そして 1 つだけの) インスタンスが実行されるようになります。これは、多数のデータベースインスタンスがある場合に重要になります。Cluster Agent は、クラスターチェックをさまざまなノードに分散させます。

Aurora

If you are using Aurora, the Agent must be connected to the individual Aurora instance (not the cluster endpoint) because the Agent must connect directly to the host being monitored.

Aurora データベースのモニタリングでは、Agent はプロキシ、ロードバランサー、pgbouncer などの接続プーラー、または Aurora クラスターのエンドポイントを通じてデータベースに接続してはいけません。各 Datadog Agent は、基礎となるホスト名に関する知識を持ち、フェイルオーバーの場合でも、その生涯を通じて単一のホストで実行する必要があります。そうでないと、メトリクスの値が不正確になります。

その他の参考資料