Datadog-AWS RDS Integration

このHOWTOでは、Datadogを使ってAWS Relational Database Service(RDS)を監視する方法を紹介します。  

AWS RDSのメトリクを包括的に収集する仕組み

RDSは、データベースインスタンスとCloudWatch経由でインスタンスに関するメトリクスのレポートを提供します。CloudWatchのメトリクスは、収集頻度の最大は1回/1分で、RDSのパフォーマンスについて包括的なガバレッジを提供できているとは言い難いのが実情です。

起動中のMySQLやPostgreSQLのRDSインスタンスからのリアルタイムのメトリクスを取得するには、これらのRDSインスタンスに接続することが出来るDatadog Agentが必要です。一般的にDatadog Agentは、Agentが動作しているインスタンスのメトリクスに紐付けられており外部の実RDSインスタンスには紐付けられていません。このような場合には、dbinstanceidentiferタグを設定し、取得したメトリクスの整合性をとる必要があります。

監視対象となるRDSインスタンスのタグを、Datadog Agent上のdbinstanceidentiferタグに設定すれば、MySQL/PostgreSQLのメトリクスをRDSメトリクスとして取得することは簡単な作業になります。

設定手順

1. RDSインスタンスに接続するための情報を収集します

AWSコンソールからRDSのセクションを開き、監視するRDSインスタンスを見つけます。以下のような情報が表示されるはずです。

RDSにアクセスするためのエンドポイントURL(例 mysqlrds.blah.us-east1.rds.amazonaws.com:3306)を記録します。 以後、Datadog Angetを設定するときに必要になります。

更にDB Instance identifier(例: mysqlrds)の項目を記録しておきます。グラフやアラートを設定する際に必要になります。

2. Datadog Agentを設定し、RDSインスタンスに接続します

MySQL/PostgreSQLインテグレーションは、個々のデータベースインスタンスのタグ付けをサポートしています。この機能は、もともと同ーマシン上に複数のインスタンスを起動している場合の監視を目的として設計されました。今回は、この機能を使い、先の工程で確認した情報を設定していきます。

以下は、MySQL RDSインスタンスを監視するためのmysql.yamlの設定例です。mysql.yamlは、/etc/dd-agent/conf.dのディレクトリ以下に保存されています。

設定ファイルの変更が終わったら、Datadog Agentを再起動します。sudo s/etc/init.d/datadog-agent info (on linux)を実行し、MySQLのCheckが正しく動作しているかを確認します。

3. RDSとMySQL/PostgreSQLのメトリクスを可視化します

5分ぐらいするとRDSとMySQL/PostgreSQLのメトリクスは、Datadogで使用出来るようになり、Metrics Explorerでの検索、グラフやアラートでの指定が出来るようになります。

以下は、dbinstanceidentifierタグを使用してmysqlrdsインスタンスのI/Oをグラフ表示する例です。

最後に

このドキュメント通りに作業をしてもメトリクスを取得できない場合や質問がある場合は、Datadogのサポートチーム に連絡してみてください。