拡張モニタリングの CloudWatch Logs をフィルタリングして、Amazon Relational Database Service (Amazon RDS) の自動カスタムメトリクスを生成しようと考えています。
簡単な説明
Amazon RDS の拡張モニタリングは、次の OS メトリクスを提供します。
- 空きメモリ
- アクティブなメモリ
- スワップフリー
- 実行中のプロセス
- 使用ファイルシステム
環境のパフォーマンスを把握するために、これらの OS メトリクスを使用できます。Amazon CloudWatch ログは、これらのメトリクスをログエントリとして取り込みます。CloudWatch を使用して、メトリクスに基づくアラームを作成できます。それらのアラームはアクションを実行します。また、インフラストラクチャ、デバイス、またはアプリケーション内からこれらのメトリクスをカスタムメトリクスとして CloudWatch に公開できます。拡張モニタリングと CloudWatch を使用してタスクを自動化するには、拡張モニタリングメトリクスから取り込んだ CloudWatch Logs RDS データのカスタムメトリクスを作成します。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新バージョンの AWS CLI を使用していることを確認してください。
ロググループのフィルターを使用してカスタムメトリクスを作成する
注: この手順では、Amazon RDS DB インスタンスで拡張モニタリングを有効にする必要があります。詳細については、「Amazon RDS インスタンスでのメトリクスのモニタリング」を参照してください。
-
拡張モニタリングを有効にします。
-
Amazon CloudWatch コンソールを開き、ナビゲーションペインから [ロググループ] を選択します。
-
[ロググループ] のリストから RDSOSMetrics をフィルタリングし、[アクション] を選択します。
-
[メトリクスフィルターの作成] を選択し、Amazon RDS DB インスタンスの [フィルターパターン] の条件を入力します。例:
DISK WRITE KBPS GREATER THAN OR EQUAL TO 10 : { $.diskIO[0].writeKbPS >= 10.00 }
DISK READ KBPS GREATER THAN OR EQUAL TO 10 : { $.diskIO[0].readKbPS >= 10.00 }
DISK WRITE IOPS PS GREATER THAN 15 : { $.diskIO[0].writeIOsPS > 15.00 }
DISK READ IOPS PS GREATER THAN 15 : { $.diskIO[0].readIOsPS > 15.00 }
TOTAL CPU UTILIZATION GREATER THAN OR EQUAL TO 80 : { $.cpuUtilization.total >= 80 }
FREE MEMORY LESS THAN OR EQUAL TO 200000 KB : { $.memory.free <= 200000 }
注: これらの値は環境に適した値に更新してください。
-
[ログデータ] を選択し、[パターンのテスト] を選択します。
-
[次へ] を選択します。
-
[フィルター名] を入力し、[メトリクス名前空間] と [メトリクス名] を選択します。
-
[メトリクス値] を入力します。例えば、$.cpuUtilization.idle です。次に、[フィルターの作成] を選択します。
追加するメトリクスごとに、これらの手順を繰り返します。
メトリクスを自動化する
Amazon RDS DB インスタンスにはそれぞれ 60 を超えるモニタリングメトリクスがあります。これらのモニタリングプロセスを自動化するには、スクリプトを使用します。Amazon RDS for MySQL DB インスタンスを使用するスクリプトのサンプルについては、GitHub ウェブサイトの RDS サポートツール を参照してください。サンプルスクリプトは以下のエンジンで機能します。
- MySQL
- MariaDB
- Amazon Aurora MySQL 互換エディション
- Amazon Aurora PostgreSQL 互換エディション
- PostgreSQL
拡張モニタリングが有効になっている Amazon RDS DB インスタンスと、これらのメトリクスを配置する名前空間を指定します。オプションで、メトリクスと AWS リージョンの名前を追加します。オプションのフィールドをまったく指定しない場合、スクリプトはすべてのメトリクスを公開するものと見なします。次に、スクリプトは .aws/config ファイルを確認し、AWS CLI に設定されているデフォルトの AWS リージョンを把握します。
注: このスクリプトはプロセスリストのメトリクスを作成しません。表示するプロセスによっては、フィルターを手動で作成する必要があります。
次のパターンを使用してメトリクスの名前を指定します。
group.metricname
次のサンプルコードは、cpuUtilization.idle および diskIO.readKbPS に対してこのメトリクスを有効にする呼び出しを示しています。
python RDSCreateMetricsFromEnhancedMonitoring.py --rds\_instance mysqltest --namespace MySQL --metrics\_to\_filter cpuUtilization.idle diskIO.readKb
その後、これらのカスタムメトリクスのアラームを作成できます。詳細については、「Amazon CloudWatch でのアラームの使用」を参照してください。
関連情報
Amazon RDS ログファイルのモニタリング
語句を照合し、JSON ログイベントから値を抽出するメトリクスフィルターの使用