CloudWatch Logs Insights を使用してアプリケーションアクティビティをモニタリングする - AWS 規範ガイダンス

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

CloudWatch Logs Insights を使用してアプリケーションアクティビティをモニタリングする

Ram Kandaswamy、Amazon Web Services

概要

このパターンは、Amazon CloudWatch Logs Insights を使用して、アプリケーション例外を自動的に検出して警告するためのソリューションを提供します。自動ログ分析とアラートを実装することで、本番環境のアプリケーションの問題をすばやく特定して対応できます。

ログは、システム動作のモニタリング、問題の特定、最適なパフォーマンスの確保に重要な役割を果たします。移行プロセス中、ログファイルは、新しい環境でのシステムの機能の検証、互換性の問題の検出、予期しない動作の特定に非常に役立ちます。問題は、オペレーションまたはセキュリティに関連している可能性があります。セキュリティ関連の問題では、セキュリティと規制コンプライアンスを維持するために、不正アクセスの試みや疑わしいアクティビティを早期に検出できるようにすることが不可欠です。この機能は、機密データや重要なシステムを扱う際に特に重要です。

このパターンは、アプリケーションの高可用性を維持し、本番環境の問題に迅速に対応する必要があるチームにとって特に重要です。これは、さまざまな業界やユースケースに関連します。たとえば、通信では、ネットワークの設定ミスや停止をすばやく特定し、最適ではないルーティングパスを検出して、潜在的な輻輳を特定できます。モノのインターネット (IoT) ドメインでは、Greengrass コンポーネントが CloudWatch にログを発行できるため、この手法は関連するログの詳細を抽出し、包括的なダッシュボードに表示できます。

前提条件と制限

前提条件

  • アクティブにデプロイされた本稼働アプリケーション AWS アカウント

  • 本番アプリケーションのログ記録形式と例外パターンの基本的な理解

  • Amazon CloudWatch Logs にストリーミングするように設定されたアプリケーションログ

制約事項

アーキテクチャ

次の図は、CloudWatch Logs Insights がリソースログを評価し、関連するデータの視覚化を CloudWatch ダッシュボードに送信する方法を示しています。

CloudWatch Logs Insights はリソースログを評価し、データの視覚化をダッシュボードに送信します。

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

  1. リソースは CloudWatch Logs にログを発行します。リソースには、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスや Amazon Simple Storage Service (Amazon S3) バケットなどの AWS リソースを含めることができます。もう 1 つの例には、CloudWatch にログを発行できる CloudWatch Agent がインストールされているオンプレミスシステムが含まれます。

  2. CloudWatch Logs Insights は、関連するパターン文字列をフィルタリングします。検索パターン文字列の例としては、「エラー」、「例外」、または特定の正規表現などがあります。

  3. 通常、本番サポートチームまたは開発者は CloudWatch ダッシュボードにパターン視覚化を追加します。

自動化とスケール

開発者は AWS Cloud Development Kit (AWS CDK)、、、または AWS SDKs を使用して複数の文字列パターンを処理することで AWS CloudFormation、このパターンのソリューションを自動化できます。チームは、この自動化を継続的インテグレーションとデプロイ (CI/CD) DevOps プロセスに組み込むことができます。

ツール

AWS のサービス

  • Amazon CloudWatch Logs を使用すると、すべてのシステム、アプリケーション、および からのログを一元化 AWS のサービス できるため、ログをモニタリングして安全にアーカイブできます。

  • AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用する権限を付与するかを制御することで、 AWS リソースへのアクセスを安全に管理できます。

  • AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。

ベストプラクティス

エピック

タスク説明必要なスキル

IAM 許可を設定します。

IAM アクセス許可を設定するには、以下を実行します。

  1. アプリケーションがログの書き込みに使用する IAM ロールと、ダッシュボード、クエリ、アラームを作成するユーザーまたはサービスを特定します。

  2. アプリケーションロールの場合は、次の API アクションとリソースをポリシーに追加します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  3. CloudWatch リソースを管理するには、ポリシーに以下を追加します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutDashboard", "cloudwatch:GetDashboard", "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "cloudwatch:PutMetricAlarm" ], "Resource": "*" } ] }

IAM ポリシーを作成する方法、または既存のポリシーにアクセス許可を追加する方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーを使用してカスタム IAM アクセス許可を定義する」および「IAM ポリシーを編集する」を参照してください。詳細については、Amazon CloudWatch Logs ユーザーガイド」の「Amazon CloudWatch Logs の Identity and Access Management」およびCloudWatch 「CloudWatch Logs のアクセス許可リファレンス」を参照してください。 Amazon CloudWatch

AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア

ロググループを作成します。

ロググループを作成するには、次のいずれかのオプションを使用します。

AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア

CloudWatch Logs Insights クエリを生成します。

CloudWatch Logs Insights クエリを作成して保存するには:

  1. CloudWatch コンソールを開きます。

  2. Logs Insights に移動します。

  3. 次のいずれかの方法を使用してクエリを作成します。

    • クエリセクションのサンプルクエリから始めます。

    • カスタムクエリを記述します。

    • 次のクエリ例を変更します

      fields @timestamp, @message | filter @message like /(?i)exception/|stats count() by bin(30s)

      このクエリは、ログファイルをチェックし、タイムスタンプとメッセージコンテンツを抽出し、「例外」 (大文字と小文字を区別しない) という単語をフィルタリングし、出現を 30 秒間隔でカウントします。

AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア

CloudWatch ダッシュボードで視覚化を作成します。

CloudWatch ダッシュボードを使用して視覚化を作成するには、次の手順を実行します。

  1. CloudWatch コンソールを開き、CloudWatch ダッシュボードを作成するか (まだ作成していない場合)、既存のダッシュボードを開きます。

  2. 例外モニタリングの視覚化を追加します。ビジネスニーズに応じて、棒グラフ、折れ線グラフ、円グラフを使用できます。詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「CloudWatch ダッシュボードでのウィジェットの使用」を参照してください。 Amazon CloudWatch リアルタイムのデータ視覚化では、要件に合わせてウィジェットをカスタマイズできます。

ダッシュボードのオプションと機能の詳細については、Amazon CloudWatch Logs ユーザーガイド」の「Amazon CloudWatch ダッシュボードの使用」および「ダッシュボード変数を使用した柔軟な CloudWatch ダッシュボードの作成 CloudWatch」を参照してください。 Amazon CloudWatch

AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア

トラブルシューティング

問題ソリューション

クエリ結果が表示されない、またはクエリが壊れているように見える

サンプルクエリから変更された作業クエリから始めます。クエリの一部 (フィルターやフィールドなど) に小さな増分変更を実行し、CloudWatch Logs クエリジェネレーター機能を活用します。

ログストリームを作成していないロググループ

IAM ポリシーで、CreateLogStream オペレーションと CreateLogGroup オペレーションのリソースにワイルドカード文字(*)値が提供されていることを確認します。このワイルドカードアクセス許可がないと、create オペレーションは成功しません。

関連リソース