Amazon CloudWatch 異常検知により、カスタムメトリクスのアラームを作成 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon CloudWatch 異常検知により、カスタムメトリクスのアラームを作成

作成者:Ram Kandaswamy (AWS) と Raheem Jiwani (AWS)

概要

Amazon Web Services (AWS) クラウドでは、Amazon CloudWatch を使用して、メトリクスをモニタリングし、閾値を超えたときに通知を送信し、またはアラームを自動的に変更するアラームを作成できます。

静的な閾値」による制限を避けるため、過去のパターンに基づいてアラームを作成し、特定のメトリックスが通常の運用時間外になった場合に通知するようにできます。たとえば、Amazon API Gateway から API の応答時間をモニタリングし、サービスレベルアグリーメント (SLA) を満たすことを妨げる異常に関する通知を受信することができます。

このパターンは、CloudWatch 異常検出により、カスタムメトリックスを使用する方法を説明します。このパターンは、Amazon CloudWatch Logs Insights でカスタムメトリクスを作成する方法、または AWS Lambda 関数によりカスタムメトリックスを公開する方法を示しています。次に、Amazon Simple Notification Service (Amazon SNS) により、異常検出を設定し、通知を作成する方法を示しています。

前提条件と制限

前提条件

  • アクティブな AWS アカウント。

  • SNS トピックは、電子メール通知を送信するように設定できます。詳細については、Amazon SNS ドキュメントの「Amazon SNS の使用開始」を参照してください。

  • CloudWatch Logs」で設定された既存のアプリケーション。

機能制限

  • CloudWatch メトリックスはミリ秒の時間間隔をサポートしていません。レギュラーメトリクスとカスタムメトリクスの粒度の詳細については、「Amazon CloudWatchのよくある質問」を参照してください。

アーキテクチャ

この図表は、次のワークフローを示しています:

CloudWatch Amazon SNS トピックを使用して、アラームが発生したときに E メール通知を送信します。
  1. CloudWatch Logs により作成し、更新されたメトリックスを使用するログは CloudWatch にストリーミングされます。

  2. アラームは閾値に基づき開始され、SNS トピックにアラートを送信します。

  3. Amazon SNS からメール通知が送信されます。

テクノロジースタック

  • クラウドWatch

  • AWS Lambda

  • Amazon SNS

ツール

  • Amazon CloudWatch は、信頼性、スケーラビリティ、柔軟性に優れたモニタリングソリューションを提供します。

  • AWS Lambda は、サーバーのプロビジョニングや管理を行わずにコードを実行するのに役立つコンピューティングサービスです。

  • Amazon Simple Notification Service (Amazon SNS) は、パブリッシャーからサブスクライバーへのメッセージ配信を提供するマネージドサービスです。

エピック

タスク説明必要なスキル

オプション 1-Lambda 関数により、カスタムメトリクスを作成します。

lambda_function.py ファイル (添付) をダウンロードして、「AWS Documentation GitHub」で「aws-lambda-developer-guide」リポジトリにあるサンプル lambda_function.py ファイルを置き換えます。これにより、カスタムメトリクスを CloudWatch Logs に送信するサンプル Lambda 関数が得られます。Lambda 関数は Boto3 API により、CloudWatch と統合します。 

Lambda 関数を実行した後、AWS マネジメントコンソールにサインインして CloudWatch コンソールを開くと、公開されたメトリクスは公開された名前空間で使用できます。

DevOps エンジニア、AWS DevOps

オプション 2 — CloudWatch ロググループからカスタムメトリックスを作成します。

AWS マネジメントコンソールにサインインし、CloudWatch コンソールを開いて、[ロググループ] を選択します。メトリックを作成するロググループを選択します。 

[アクション]、[メトリクスフィルターの作成] の順に選択します。[フィルターパターン] に、使用するフィルターパターンを入力します。詳細については、CloudWatch ドキュメントの「フィルターとパターンの構文」を参照してください。 

フィルター パターンをテストするには、[テストパターン] に 1 つ以上のログ イベントを入力します。[ログイベントメッセージ] ボックスのログイベントを区切るために改行が使用されるため、各ログイベントは 1 行以内である必要があります。パターンをテストしたら、メトリックの詳細にメトリックスの名前と値を入力できます。 

カスタムメトリクスを作成する手順と詳細については、「CloudWatch のドキュメント」の「ロググループのメトリクスフィルターの作成」を参照してください。

DevOps エンジニア、AWS DevOps

カスタムメトリクスのアラームを作成します。

CloudWatch コンソールでアラームとアラームの作成を順に選択します。メトリクスの選択を選択し、前に作成したメトリクスの名前を検索ボックスに入力します。グラフ化したメトリクスタブを選択し、要件に応じてオプションを設定します。

条件で、静的閾値の代わりに異常検知を選択します。これにより、2 つの標準デフォルト偏差に基づくバンドが表示されます。要件に応じて、閾値を設定できます。

[Next (次へ)] を選択します。

注記

バンドは動的で、データポイントの品質によって異なります。さらにデータを集約し始めると、バンドと閾値は自動的に更新されます。 

DevOps エンジニア、AWS DevOps

SNS 通知のセットアップ

[通知] で、アラームが ALARM 状態、OK 状態、または INSUFFICIENT_DATA 状態のときに通知する SNS トピックを選択します。

同じアラーム状態または複数の異なるアラーム状態について複数の通知を送信するには、[Add notification (通知の追加)] を選択します。[Next (次へ)] を選択します。アラームの名前と説明を入力します。名前には ASCII 文字のみを含める必要があります。次いで、[次へ] を選択します。

[プレビューと作成] で、情報と条件が正しいことを確認し、[アラームの作成] を選択します。

DevOps エンジニア、AWS DevOps

関連リソース

添付ファイル

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip