

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

# CloudWatch Logs Insights でログを解析する
<a name="cloudwatch-logs-reading"></a>

前のセクションで説明したようにCloudWatch ロギング　オプションをアプリケーションに追加した後、CloudWatch Logs Insightsを使用して、特定のイベントまたはエラーについてログ ストリームをクエリできます。

CloudWatch Logs Insights を使用すると、Amazon CloudWatch Logs のログデータをインタラクティブに検索し分析することが可能になります。

CloudWatch Logs Insights の詳細については、「[CloudWatch Logs Insights を使用したログデータの分析](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)」を参照してください。

## サンプルクエリを実行する
<a name="cloudwatch-logs-reading-run"></a>

このセクションでは、CloudWatch Logs Insightsのサンプルクエリを実行する方法について説明します。

**前提条件**
+ CloudWatch Logs で設定されている既存のロググループとログストリーム
+ ログは CloudWatch Logs に保存されます。

Amazon Route 53 AWS CloudTrailや Amazon VPC などのサービスを使用する場合は、CloudWatch Logs に移動するようにそれらのサービスのログを既に設定している可能性があります。CloudWatch Logs の詳細については、[[Getting Started with CloudWatch Logs]](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_GettingStarted.html) (CloudWatch Logs の開始方法) を参照してください。

CloudWatch Logs Insights のクエリは、ログイベントから一連のフィールドを返すか、ログイベントに対して実行された数学的な集約やその他のオペレーションの結果を返します。このチュートリアルでは、ログイベントのリストを返すクエリを示します。

**CloudWatch Logs Insights サンプルクエリを実行するには**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインで、[**Insights**] を選択します。

   

1. [Logs Insights] (ログのインサイト) ページでは、クエリエディタにデフォルトクエリが表示されます。デフォルトでは、最新の 20 件のログイベントが返されます。クエリエディタの上で、クエリを実行する対象のロググループを選択します。

   

   ロググループを選択すると、CloudWatch Logs Insights はロググループのデータのフィールドを自動的に検出し、右側のペインの [**Discovered fields (検出済みフィールド)**] に表示します。また、このロググループのログイベントを時間の経過に従って棒グラフで表示します。この棒グラフは、表に示されるイベントだけでなく、クエリと時間範囲に一致するロググループ内のイベントの分布を示します。

1. **[Run query]** (クエリの実行) を選択します。

   クエリの結果が表示されます。この例では、タイプを問わず、最新の 20 件のログイベントが結果として表示されます。

1. 返されたログイベントのいずれかについて、すべてのフィールドを表示するには、そのログイベントの左側にある矢印を選択します。

CloudWatch Logs Insights クエリを実行および変更する方法の詳細については、[サンプルクエリの実行と変更](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_RunSampleQuery.html)を参照してください。

## クエリの例を確認する
<a name="cloudwatch-logs-reading-examples"></a>

このセクションには、Managed Service for Apache Flinkのアプリケーションログを分析するための CloudWatch Logs Insights サンプルクエリが含まれています。これらのクエリは、いくつかのエラー状態の例を検索して、他のエラー状態を検索するクエリを作成するためのテンプレートとして機能します。

**注記**  
次のクエリ例のリージョン (*us-west-2*)、アカウント ID (*012345678901*)、アプリケーション名 (*YourApplication*) を、アプリケーションのリージョンとアカウント ID に置き換えます。

**Topics**
+ [オペレーションの分析: タスクの分散](#cloudwatch-logs-reading-tm)
+ [オペレーションの分析: 並列度の変化](#cloudwatch-logs-reading-auto)
+ [エラーの分析: アクセスが拒否されました](#cloudwatch-logs-reading-access)
+ [エラーの分析: ソースまたはシンクが見つかりません](#cloudwatch-logs-reading-con)
+ [エラーの分析: アプリケーションタスク関連の障害](#cloudwatch-logs-reading-apps)

### オペレーションの分析: タスクの分散
<a name="cloudwatch-logs-reading-tm"></a>

次の CloudWatch Logs Insights クエリは、Apache Flink Job マネージャーがタスクマネージャー間で分散するタスクの数を返します。クエリが以前のジョブのタスクを返さないように、クエリの時間枠を 1 回のジョブ実行と一致するように設定する必要があります。並列ロードの詳細については、「[アプリケーションスケーリングを実装する](how-scaling.md)」をご参照ください。

```
fields @timestamp, message
| filter message like /Deploying/
| parse message " to flink-taskmanager-*" as @tmid
| stats count(*) by @tmid
| sort @timestamp desc
| limit 2000
```

次の CloudWatch Logs Insights クエリは、各タスクマネージャーに割り当てられたサブタスクを返します。サブタスクの総数は、各タスクの並列処理の合計です。タスク並列処理は演算子の並列処理から派生し、コード内で`setParallelism`を指定して変更しない限り、デフォルトではアプリケーションの並列処理と同じです。演算子の並列処理の設定の詳細について、[Apache Flink ドキュメント](https://nightlies.apache.org/flink/flink-docs-release-1.15/)の[並列処理の設定:演算子レベル](https://nightlies.apache.org/flink/flink-docs-release-1.15/dev/parallel.html#operator-level)を参照してください。

```
fields @timestamp, @tmid, @subtask
| filter message like /Deploying/
| parse message "Deploying * to flink-taskmanager-*" as @subtask, @tmid
| sort @timestamp desc
| limit 2000
```

タスクスケジューリングについて詳しくは、[Apache Flink ドキュメント](https://nightlies.apache.org/flink/flink-docs-release-1.15/)の[ジョブとスケジューリング](https://nightlies.apache.org/flink/flink-docs-release-1.15/internals/job_scheduling.html)を参照してください。

### オペレーションの分析: 並列度の変化
<a name="cloudwatch-logs-reading-auto"></a>

次の CloudWatch Logs Insights クエリは、アプリケーションの並列処理に対する変更 (たとえば、自動スケーリングによる) を返します。このクエリでは、アプリケーションの並列処理に対する手動による変更も返されます。 Auto Scaling の詳細については、「」を参照してください[Managed Service for Apache Flink で自動スケーリングを使用する](how-scaling-auto.md)。

```
fields @timestamp, @parallelism
| filter message like /property: parallelism.default, /
| parse message "default, *" as @parallelism
| sort @timestamp asc
```

### エラーの分析: アクセスが拒否されました
<a name="cloudwatch-logs-reading-access"></a>

次の CloudWatch Logsインサイトクエリは　`Access Denied`　ログを返します。

```
fields @timestamp, @message, @messageType
| filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/
| filter @message like /AccessDenied/
| sort @timestamp desc
```

### エラーの分析: ソースまたはシンクが見つかりません
<a name="cloudwatch-logs-reading-con"></a>

次のCloudWatch Logsインサイトクエリは　`ResourceNotFound`　ログを返します。 Kinesis ソースまたはシンクが見つからない場合、結果を　`ResourceNotFound`　ログに記録します。

```
fields @timestamp,@message
| filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/
| filter @message like /ResourceNotFoundException/
| sort @timestamp desc
```

### エラーの分析: アプリケーションタスク関連の障害
<a name="cloudwatch-logs-reading-apps"></a>

次の CloudWatch Logs Insights クエリは、アプリケーションのタスク関連の障害ログを返します。これらのログは、アプリケーションのステータスが`RUNNING`から`RESTARTING`に切り替わった場合に生成されます。

```
fields @timestamp,@message
| filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/
| filter @message like /switched from RUNNING to RESTARTING/
| sort @timestamp desc
```

Apache Flink バージョン 1.8.2 以前を使用するアプリケーションでは、タスク関連の障害が発生すると、アプリケーションのステータスが代わりに`RUNNING`から`FAILED`に切り替わります。Apache Flink 1.8.2 以前のバージョンを使用している場合は、次のクエリを使用してアプリケーションタスク関連の障害を検索してください。

```
fields @timestamp,@message
| filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/
| filter @message like /switched from RUNNING to FAILED/
| sort @timestamp desc
```