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

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

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

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

  • @message は、生の未解析のログイベントを示します。これは、InputLogeventmessage フィールドに相当します。

  • @timestamp には、ログイベントの timestamp フィールドに含まれるイベントタイムスタンプが含まれます。これは、InputLogeventtimestamp フィールドに相当します。

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

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

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

  • @entity には、Explore 関連のテレメトリ機能のエンティティに関連するフラット化された JSON が含まれています。

    例えば、この JSON はエンティティを表すことができます。

    { "Entity": { "KeyAttributes": { "Type": "Service", "Name": "PetClinic" }, "Attributes": { "PlatformType": "AWS::EC2", "EC2.InstanceId": "i-1234567890123" } } }

    このエンティティの場合、抽出されたシステムフィールドは次のようになります。

    @entity.KeyAttributes.Type = Service @entity.KeyAttributes.Name = PetClinic @entity.Attributes.PlatformType = AWS::EC2 @entity.Attributes.EC2.InstanceId = i-1234567890123
注記

フィールド検出は、標準ログクラスのロググループでのみサポートされます。ログクラスの詳細については、「ログクラス」を参照してください。

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

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

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

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

注記

@message@timestamp、または を除き@log、検出されたフィールドのフィールドインデックスを作成できます。フィールドインデックスの詳細については、「」を参照してくださいフィールドインデックスを作成してクエリのパフォーマンスを向上させ、スキャンボリュームを減らす

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

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 は、Lambda ログのログフィールドを自動的に検出します。ただし、各ログイベントに埋め込まれている最初の JSON フラグメントのみが検出されます。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 は、1 つの JSON ログから最大 200 個のログイベントフィールドを抽出できます。抽出されない追加のフィールドについては、parse コマンドを使用して、メッセージフィールドの未処理の未解析ログイベントからこれらのフィールドを抽出できます。parse コマンドの詳細については、「Amazon CloudWatch ユーザーガイド」の「クエリ構文」を参照してください。