概要
Amazon Relational Database Service (RDS) は、クラウドでリレーショナルデータベースのセットアップ、運用、スケーリングに使用される Web サービスです。このインテグレーションを有効にすると、Datadog にすべての RDS メトリクスを表示できます。
注: 環境変数 DD_SITE
がコード
の外のリージョンに設定されていることを確認するか、または次のようにコードで変数を設定します。
DD_SITE = os.getenv("DD_SITE", default="
")
RDS インスタンスを監視するには、Standard、Enhanced、Native の 3 つのオプションがあります。コンフィギュレーションを選択する前に、メトリクスのリスト全体を確認してください。各メトリクスには対応するコンフィギュレーションのラベルが付いているためです。さらに、以下の情報を確認して、各コンフィギュレーションの要件とプリセットダッシュボードの詳細を確認してください。
標準インテグレーションの場合、AWS インテグレーションページの Metric Collection
タブで RDS を有効にする必要があります。これにより、ご使用の CloudWatch インテグレーションで利用可能な回数だけ、インスタンスに関するメトリクスを受信できます。すべての RDS エンジンタイプに対応しています。
このインテグレーションのプリセットダッシュボードには、接続、レプリケーションラグ、読み取り操作とレイテンシー、コンピューター、RAM、書き込み操作とレイテンシー、ディスクメトリクスのメトリクス情報が含まれています。
拡張インテグレーションの場合、構成を追加する必要があります。また、MySQL、Aurora、MariaDB、SQL Server、Oracle、PostgreSQL エンジンで使用できます。メトリクスを追加することができますが、追加したメトリクスを Datadog に送信するには、AWS Lambda が必要です。粒度が高く、追加のサービスが必要になると AWS の追加料金が発生します。
このインテグレーションのプリセットダッシュボードには、負荷、アップタイム、CPU 使用率、タスク、メモリ、SWAP、ネットワーク受信、ネットワーク送信、プロセスごとに使用される CPU、プロセスごとに使用されるメモリ、ディスク操作、使用されるファイルシステム (pct)、 実行中のタスク、システム CPU 使用率のメトリクス情報が含まれています。
ネイティブデータベースインテグレーションはオプションです。MySQL、Aurora、MariaDB、SQL Server、PostgreSQL の各エンジンタイプで使用できます。RDS とネイティブインテグレーションの両方からメトリクスを取得して照合するには、RDS インスタンスに割り当てる識別子に基づいて、ネイティブインテグレーションで dbinstanceidentifier
タグを使用します。RDS インスタンスには自動的にタグが割り当てられます。
このコンフィギュレーションで使用できるプリセットダッシュボードは、MySQL、Aurora、PostgreSQL の 3 つです。各ダッシュボードには、クエリボリューム、ディスク I/O、接続、レプリケーション、AWS リソースのメトリクスが含まれています。
注: これらのダッシュボードには、AWS CloudWatch と個々のデータベースエンジン自体の両方からのメトリクスが表示されます。すべてのインテグレーションメトリクスに対して、インテグレーション (MySQL、Aurora、PostgreSQL) の 1 つを有効にします。
セットアップ
インストール
インスタンスの作成中または作成後に RDS インスタンスの拡張モニタリングを有効にするには、Instance Actions の下にある Modify を選択します。監視の詳細度には 15
を選択することをお勧めします。
次の手順では、KMS と Lambda Management Console を使用して、RDS Enhanced Monitoring Lambda 関数でのみ使用できる Datadog API キーの暗号化バージョンを作成します。Log Forwarder などの別の Lambda 関数ですでに暗号化された API キーをお持ちの場合は、他のオプションについて Lambda 関数の README を参照してください。
KMS キーの作成
- KMS のホーム (https://console.aws.amazon.com/kms/home) を開きます。
- Customer managed keys に進みます。
- Create Key を選択します。
- キーのエイリアス (例:
lambda-datadog-key
) を入力します。注: 「aws」で始まるエイリアスは使用できません。「aws」で始まるエイリアスは、ご使用のアカウントで AWS 管理の CMK を表すために Amazon Web Services によって予約されています。 - 適切な管理者を追加して、このキーを管理できるユーザーを指定します。
- ロールを追加する必要はありません。
- KMS キーを保存します。
Lambda 関数の作成
- Lambda マネジメントコンソールから、新しい Lambda 関数を作成します。Lambda 関数は、作成した KMS キーと同じリージョンにある必要があります。
Serverless Application Repository
を選択し、Datadog-RDS-Enhanced
を検索して選択します。- アプリケーションに一意の名前を付けます。
- 前のセクションで作成したキーの ID を
KMSKeyId
パラメーターに貼り付け、デプロイします。 - アプリケーションがデプロイされたら、新しく作成された Lambda 関数を開きます (「Resource」の下にある関数をクリック)。
Configuration
タブをクリックし、Environment variables
セクションに移動します。環境変数 kmsEncryptedKeys
の value
フィールドに、以下のように完全な JSON 形式で Datadog API キー を追加します: {"api_key":"<YOUR_API_KEY>"}
Encryption configuration
セクションを開き、Enable helpers for encryption in transit
を選択します。KMS key to encrypt at rest
セクションで、Use a customer master key
を選択し、先に作成したものと同じ KMS キーを入力します。- 先ほど入力した JSON blob の横にある Encrypt ボタンを押し、ポップアップで、先ほど作成したものと同じ KMS キーを選択します。
- Save を押します。
RDSOSMetrics
CloudWatch ロググループをソースとして使用して新しいトリガーを作成します。- フィルターに名前を付け、オプションでフィルターパターンを指定して、Save を押します。
Lambda 関数のテストボタンをクリックすると、次のエラーが発生する可能性があります。
{
"stackTrace": [
[
"/var/task/lambda_function.py",
109,
"lambda_handler",
"event = json.loads(gzip.GzipFile(fileobj=StringIO(event['awslogs']['data'].decode('base64'))).read())"
]
],
"errorType": "KeyError",
"errorMessage": "'awslogs'"
}
これは無視してかまいません。Test ボタンはこのセットアップでは機能しません。
AWS コンソールに移動し、RDS セクションを開いて、監視するインスタンスを見つけます。
エンドポイント URL をメモします (例: mysqlrds.blah.us-east1.rds.amazonaws.com:3306)。これは Agent の構成に使用されます。DB Instance identifier
もメモします (例 mysqlrds)。これはグラフやダッシュボードの作成に使用されます。
コンフィギュレーション
AWS インテグレーションページで、Metric Collection
タブの下にある RDS
が有効になっていることを確認します。
Amazon RDS のメトリクスを収集するには、次のアクセス許可を Datadog IAM ポリシーに追加します。詳細については、AWS ウェブサイト上の RDS ポリシーを参照してください。
AWS アクセス許可 | 説明 |
---|
rds:DescribeDBInstances | タグを追加するための RDS インスタンスを記述します。 |
rds:ListTagsForResource | RDS インスタンスにカスタムタグを追加します。 |
rds:DescribeEvents | RDS データベースに関連するイベントを追加します。 |
Datadog - Amazon RDS インテグレーションをインストールします。
AWS インテグレーションページで、Metric Collection
タブの下にある RDS
が有効になっていることを確認します。
Amazon RDS のメトリクスを収集するには、次のアクセス許可を Datadog IAM ポリシーに追加します。詳細については、AWS ウェブサイト上の RDS ポリシーを参照してください。
AWS アクセス許可 | 説明 |
---|
rds:DescribeDBInstances | タグを追加するための RDS インスタンスを記述します。 |
rds:ListTagsForResource | RDS インスタンスにカスタムタグを追加します。 |
rds:DescribeEvents | RDS データベースに関連するイベントを追加します。 |
Datadog - Amazon RDS インテグレーションをインストールします。
conf.d ディレクトリ内の適切な yaml ファイルを編集することで Agent を構成し、RDS インスタンスに接続します。その後、Agent を再起動します。
RDS Aurora の場合は、使用しているデータベース用の YAML ファイルを編集します。
MySQL または MariaDB を使用している場合は、mysql.yaml
を編集します。
init_config:
instances:
# AWS コンソールからのエンドポイント URL
- server: 'mysqlrds.blah.us-east-1.rds.amazonaws.com'
user: '<USERNAME>'
pass: '<PASSWORD>'
port: 3306
tags:
- 'dbinstanceidentifier:<INSTANCE_NAME>'
PostgreSQL を使用している場合は、postgres.yaml
を編集します。
init_config:
instances:
- host: 'postgresqlrds.blah.us-east-1.rds.amazonaws.com'
port: 5432
username: '<USERNAME>'
password: '<PASSWORD>'
dbname: '<DB_NAME>'
tags:
- 'dbinstanceidentifier:<DB_INSTANCE_NAME>'
Microsoft SQL Server を使用している場合は、sqlserver.yaml
を編集します。
init_config:
instances:
- host: 'sqlserverrds.blah.us-east-1.rds.amazonaws.com,1433'
username: '<USERNAME>'
password: '<PASSWORD>'
tags:
- 'dbinstanceidentifier:<DB_INSTANCE_NAME>'
検証
Agent の status サブコマンドを実行し、Checks セクションでこれに似た値を探します。
Checks
======
[...]
mysql
-----
- instance #0 [OK]
- Collected 8 metrics & 0 events
使用方法
数分経つと、RDS メトリクスと MySQL、Aurora、MariaDB、SQL Server、Oracle、PostgreSQL の各メトリクスが Datadog のメトリクスエクスプローラー、ダッシュボード、アラートからアクセスできようになります。
下記に RDS と MySQL 双方のインテグレーションから取得した複数のメトリクスを表示する Aurora ダッシュボードの例を示します。インスタンス quicktestrds
で双方のインテグレーションから取得したメトリクスを dbinstanceidentifier
タグを使用して一つにまとめています。
ログの収集
ログの有効化
MySQL、MariaDB、および Postgres のログを Amazon CloudWatch に転送することができます。Amazon CloudWatch で Amazon Aurora MySQL、Amazon RDS for MySQL、MariaDB のログを監視の指示に従って、RDS のログを CloudWatch に送信します。
ログを Datadog に送信する方法
- Datadog ログコレクション AWS Lambda 関数をまだセットアップしていない場合は、セットアップします。
- Lambda 関数をインストールしたら、RDS ログを含む CloudWatch ロググループにトリガーを手動で追加します。対応する CloudWatch ロググループを選択し、フィルター名 (オプション) を追加して、トリガーを追加します。
完了したら、Datadog Log セクションに移動し、ログを確認します。
収集データ
データベースエンジンから収集されたメトリクスのほかに、以下の RDS メトリクスも受信します。
メトリクス
AWS から取得される各メトリクスには、ホスト名やセキュリティ グループなど、AWS コンソールに表示されるのと同じタグが割り当てられます。
イベント
Amazon RDS インテグレーションには、DB インスタンス、セキュリティグループ、スナップショット、およびパラメーターグループに関連するイベントが含まれます。以下はイベントの例です。
サービスのチェック
aws.rds.read_replica_status
読み取りレプリケーションのステータスを監視します。このチェックは、以下のいずれかのステータスを返します。
- OK - レプリケート中または接続中
- CRITICAL - エラーまたは途中終了
- WARNING - 停止
- UNKNOWN - その他
すぐに使える監視
Amazon RDS インテグレーションは、パフォーマンスを監視し最適化するために、すぐに使える監視機能を提供します。
トラブルシューティング
ご不明な点は、Datadog のサポートチームまでお問合せください。
その他の参考資料