拡張モニタリングの CloudWatch Logs をフィルタリングして、Amazon RDS のために自動化されたカスタムメトリクスを生成するにはどうすればよいですか?

所要時間2分
0

拡張モニタリングの 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 インスタンスでのメトリクスのモニタリング」を参照してください。

  1. 拡張モニタリングを有効にします。

  2. Amazon CloudWatch コンソールを開き、ナビゲーションペインから [ロググループ] を選択します。

  3. [ロググループ] のリストから RDSOSMetrics をフィルタリングし、[アクション] を選択します。

  4. [メトリクスフィルターの作成] を選択し、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 }

    注: これらの値は環境に適した値に更新してください。

  5. [ログデータ] を選択し、[パターンのテスト] を選択します。

  6. [次へ] を選択します。

  7. [フィルター名] を入力し、[メトリクス名前空間][メトリクス名] を選択します。

  8. [メトリクス値] を入力します。例えば、$.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 ログイベントから値を抽出するメトリクスフィルターの使用

AWS公式
AWS公式更新しました 8ヶ月前