サポートされるログと検出されるフィールド - Amazon CloudWatch Logs

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

サポートされるログと検出されるフィールド

CloudWatch Logs Insights は、さまざまなログタイプをサポートしています。Amazon CloudWatch Logs に送信されるログごとに、 CloudWatch Logs Insights は 5 つのシステムフィールドを自動的に生成します。

  • @message は、生の未解析のログイベントを示します。これは、 の messageフィールドと同等ですInputLogevent

  • @timestamp には、ログイベントの timestamp フィールドに含まれるイベントタイムスタンプが含まれます。これは、 の timestampフィールドと同等ですInputLogevent

  • @ingestionTime には、 CloudWatch Logs がログイベントを受信した時間が含まれます。

  • @logStream は、ログイベントの追加先のログストリームの名前を示します。ログストリームは、生成時と同じプロセスでログをグループ化します。

  • @log は、 の形式のロググループ識別子です。account-id:log-group-nameこれは、複数のロググループにクエリを実行する場合に、特定のイベントが属しているロググループを識別するのに役立ちます。

CloudWatch Logs Insights は、生成するフィールドの先頭に @ 記号を挿入します。

多くのログタイプでは、 CloudWatch Logs はログに含まれるログフィールドも自動的に検出します。これらの自動検出フィールドを以下の表に示します。

CloudWatch Logs Insights が自動的に検出しないフィールドを持つ他のタイプのログについては、 parse コマンドを使用して、そのクエリで使用する抽出フィールドを抽出および作成できます。詳細については、「CloudWatch Logs Insights クエリ構文」を参照してください。

検出されたログフィールドの名前が @文字で始まる場合、 CloudWatch Logs Insights は先頭に追加の @ を追加して表示します。たとえば、ログフィールド名が @example.com である場合、このフィールド名は @@example.com と表示されます。

ログタイプ 検出されるログフィールド

Amazon VPC フローログ

@timestamp, @logStream, @message, accountId, endTime, interfaceId, logStatus, startTime, version, action, bytes, dstAddr, dstPort, packets, protocol, srcAddr, srcPort

Route 53 ログ

@timestamp, @logStream, @message, edgeLocation, ednsClientSubnet, hostZoneId, protocol, queryName, queryTimestamp, queryType, resolverIp, responseCode, version

Lambda ログ

@timestamp, @logStream, @message, @requestId, @duration, @billedDuration, @type, @maxMemoryUsed, @memorySize

Lambda ログ行に X-Ray トレース ID が含まれている場合は、@xrayTraceId および @xraySegmentId フィールドも含まれます。

CloudWatch Logs Insights は、各ログイベントに埋め込まれた最初の JSON フラグメントに対してのみ、Lambda ログ内のログフィールドを自動的に検出します。Lambda ログイベントに複数の JSON フラグメントが含まれている場合は、parse コマンドを使用してログフィールドを解析して抽出できます。詳細については、「JSON ログのフィールド」を参照してください。

CloudTrail ログ

JSON 形式のログ

詳細については、「JSON ログのフィールド」を参照してください。

その他のログタイプ

@timestamp, @ingestionTime, @logStream, @message, @log.

JSON ログのフィールド

CloudWatch Logs Insights では、ドット表記を使用して JSON フィールドを表します。このセクションでは、ドット表記を使用して JSON フィールドにアクセスする方法を、JSON イベントとコードスニペットによる例で説明します。

例: JSON イベント

{ "eventVersion": "1.0", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn: aws: iam: : 123456789012: user/Alice", "accessKeyId": "EXAMPLE_KEY_ID", "accountId": "123456789012", "userName": "Alice" }, "eventTime": "2014-03-06T21: 22: 54Z", "eventSource": "ec2.amazonaws.com", "eventName": "StartInstances", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.255", "userAgent": "ec2-api-tools1.6.12.2", "requestParameters": { "instancesSet": { "items": [ { "instanceId": "i-abcde123" } ] } }, "responseElements": { "instancesSet": { "items": [ { "instanceId": "i-abcde123", "currentState": { "code": 0, "name": "pending" }, "previousState": { "code": 80, "name": "stopped" } } ] } } }

サンプルの JSON イベントには、userIdentity という名前のオブジェクトが含まれています。userIdentity には type という名前のフィールドが含まれます。ドット表記を使用して type の値を表すには、userIdentity.type を使用します。

サンプル JSON イベントには、ネストされたフィールド名と値のリストにフラット化された配列が含まれています。requestParameters.instancesSet の最初の項目である instanceId の値を表すには、requestParameters.instancesSet.items.0.instanceId を使用します。instanceID フィールドの前にある番号 0 は、items フィールドの値の場所を指します。次の例には、JSON ログイベントでネストされた JSON フィールドにアクセスする方法を示すコードスニペットが含まれています。

例: クエリ

fields @timestamp, @message | filter requestParameters.instancesSet.items.0.instanceId="i-abcde123" | sort @timestamp desc

このコードスニペットは、ネストされた JSON フィールド instanceId の値にアクセスする filter コマンドと共にドット表記を使用するクエリを示します。このクエリは、instanceId の値が "i-abcde123" に等しいメッセージをフィルタリングし、指定した値を含むログイベントをすべて返します。

注記

CloudWatch Logs Insights は、JSON ログから最大 200 個のログイベントフィールドを抽出できます。抽出されない追加のフィールドについては、parse コマンドを使用して、メッセージフィールドの未処理の未解析ログイベントからこれらのフィールドを抽出できます。parse コマンドの詳細については、「Amazon ユーザーガイド」の「クエリ構文 CloudWatch 」を参照してください。