翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サポートされるログと検出されるフィールド
CloudWatch Logs Insights は、さまざまなタイプのログをサポートします。Amazon CloudWatch Logs の標準クラスロググループに送信されるログごとに、CloudWatch Logs Insights は 5 つのシステムフィールドを自動的に生成します。
-
@message
は、生の未解析のログイベントを示します。これは、InputLogevent のmessage
フィールドに相当します。 -
@timestamp
には、ログイベントのtimestamp
フィールドに含まれるイベントタイムスタンプが含まれます。これは、InputLogevent のtimestamp
フィールドに相当します。 -
@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 フローログ |
|
Route 53 ログ |
|
Lambda ログ |
Lambda ログ行に X-Ray トレース ID が含まれている場合は、 CloudWatch Logs Insights は、Lambda ログのログフィールドを自動的に検出します。ただし、各ログイベントに埋め込まれている最初の JSON フラグメントのみが検出されます。Lambda ログイベントに複数の JSON フラグメントが含まれている場合は、 |
CloudTrail ログ JSON 形式のログ |
詳細については、「JSON ログのフィールド」を参照してください。 |
その他のログタイプ |
|
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 ユーザーガイド」の「クエリ構文」を参照してください。