View a markdown version of this page

Log yang didukung dan bidang yang ditemukan - CloudWatch Log Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Log yang didukung dan bidang yang ditemukan

CloudWatch Logs Insights mendukung berbagai jenis log. Untuk setiap log yang dikirim ke grup log kelas Standar di Amazon Logs, CloudWatch CloudWatch Logs Insights secara otomatis menghasilkan lima bidang sistem:

  • @message berisi log acara mentah yang belum diurai. Ini setara dengan message bidang di InputLogevent.

  • @timestampberisi stempel waktu peristiwa di bidang peristiwa log. timestamp Ini setara dengan timestamp bidang di InputLogevent.

  • @ingestionTimeberisi waktu ketika CloudWatch Log menerima peristiwa log.

  • @logStream berisi nama pengaliran log yang ditambahi log acara. Log mengalirkan log grup melalui proses yang sama yang menghasilkannya.

  • @log adalah pengidentifikasi grup log dalam bentuk account-id:log-group-name. Saat menanyakan beberapa grup log, ini dapat berguna untuk mengidentifikasi grup log mana yang dimiliki peristiwa tertentu.

  • @entityberisi JSON datar yang terkait dengan entitas untuk fitur Telemetri terkait Jelajahi.

    Misalnya, JSON ini dapat mewakili entitas.

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

    Untuk entitas ini, bidang sistem yang diekstraksi adalah sebagai berikut:

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

Penemuan lapangan hanya didukung untuk grup log di kelas log Standar. Untuk informasi selengkapnya tentang kelas log, lihatKelas log.

CloudWatch Logs Insights menyisi pkan simbol @ di awal bidang yang dihasilkannya.

Untuk banyak jenis CloudWatch log, Log juga secara otomatis menemukan bidang log yang terkandung dalam log. Bidang penemuan otomatis ini ditunjukkan dalam tabel berikut.

Untuk jenis log lain dengan bidang yang CloudWatch tidak ditemukan secara otomatis oleh Logs Insights, Anda dapat menggunakan parse perintah untuk mengekstrak dan membuat bidang yang diekstraksi untuk digunakan dalam kueri tersebut. Untuk informasi selengkapnya, lihat CloudWatch Sintaks kueri bahasa Logs Insights.

Jika nama bidang log yang ditemukan dimulai dengan @ karakter, CloudWatch Logs Insights menampilkannya dengan @ tambahan ditambahkan ke awal. Sebagai contoh, jika nama bidang log adalah @example.com, nama bidang ini ditampilkan sebagai @@example.com.

catatan

Kecuali untuk @message@timestamp,, atau@log, Anda dapat membuat indeks bidang untuk bidang yang ditemukan. Untuk informasi selengkapnya tentang indeks bidang, lihatBuat indeks bidang untuk meningkatkan kinerja kueri dan mengurangi volume pemindaian.

Jenis log Bidang log yang ditemukan

Log alur Amazon VPC

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

Log Route 53

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

Log Lambda

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

Jika baris log Lambda berisi ID X-Ray jejak, itu juga mencakup bidang berikut: @xrayTraceId dan@xraySegmentId.

CloudWatch Logs Insights secara otomatis menemukan bidang log di log Lambda, tetapi hanya untuk fragmen JSON pertama yang disematkan di setiap peristiwa log. Jika log acara Lambda berisi beberapa fragmen JSON, Anda dapat mengurai dan mengekstraksi bidang log menggunakan perintah parse. Untuk informasi selengkapnya, lihat Bidang di log JSON.

CloudTrail log

Log dalam format JSON

Untuk informasi selengkapnya, lihat Bidang di log JSON.

Jenis log lainnya

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

Bidang di log JSON

Dengan CloudWatch Logs Insights, Anda menggunakan notasi titik untuk mewakili bidang JSON. Bagian ini berisi contoh peristiwa JSON dan cuplikan kode yang menunjukkan bagaimana Anda dapat mengakses bidang JSON menggunakan notasi titik.

Contoh: peristiwa 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" } } ] } } }

Contoh peristiwa JSON berisi objek yang diberi namauserIdentity. userIdentityberisi bidang yang diberi namatype. Untuk mewakili nilai type menggunakan notasi titik, Anda menggunakanuserIdentity.type.

Contoh peristiwa JSON berisi array yang meratakan ke daftar nama dan nilai bidang bersarang. Untuk mewakili nilai instanceId untuk item pertama direquestParameters.instancesSet, Anda gunakanrequestParameters.instancesSet.items.0.instanceId. Ang 0 ka yang ditempatkan sebelum bidang instanceID mengacu pada posisi nilai untuk bidangitems. Contoh berikut berisi cuplikan kode yang menunjukkan bagaimana Anda dapat mengakses bidang JSON bersarang dalam peristiwa log JSON.

Contoh: Query

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

Cuplikan kode menunjukkan kueri yang menggunakan notasi titik dengan filter perintah untuk mengakses nilai bidang JSON bersarang. instanceId Kueri memfilter pesan di mana nilai instanceId sama dengan "i-abcde123" dan mengembalikan semua peristiwa log yang berisi nilai yang ditentukan.

Notasi titik dan bidang JSON-encoded string

Notasi titik hanya melintasi bidang yang disimpan sebagai objek JSON bersarang secara struktural pada waktu konsumsi. Jika nilai bidang adalah JSON-encoded string (string yang isinya kebetulan JSON valid), notasi titik memperlakukannya sebagai nilai daun buram dan tidak mengakses sub-bidang di dalamnya.

Hal ini biasanya terjadi dengan:

  • Log ditransformasikan oleh pipeline OCSF (misalnya, api.request.data diketik seperti json_t dalam skema OCSF)

  • Sumber log apa pun di mana muatan struktur variabel diserialkan sebagai string sebelum penyerapan

Misalnya, jika api.request.data berisi {"startTime":1234,"endTime":5678} sebagai nilai string, maka tidak api.request.data.startTime mengembalikan hasil karena CloudWatch Logs Insights memperlakukan seluruh string sebagai nilai daun tunggal daripada objek bersarang.

Untuk mengakses sub-bidang dalam JSON-encoded string, gunakan jsonParse untuk mengubah string menjadi peta yang dapat dilalui.

Contoh: Kueri menggunakan JSONParse untuk bidang string JSON-encoded

fields jsonParse(api.request.data).startTime as startTime

Kueri ini jsonParse digunakan untuk mengurai JSON-encoded string api.request.data ke dalam peta, dan kemudian mengakses startTime sub-bidang dengan notasi titik. Untuk informasi selengkapnyajsonParse, lihat Jenis struktur.

catatan

CloudWatch Logs Insights dapat mengekstrak maksimal 200 bidang peristiwa log dari log JSON. Untuk bidang tambahan yang tidak diekstraksi, Anda dapat menggunakan parse perintah untuk mengekstrak bidang dari peristiwa log mentah yang tidak diurai di bidang pesan. Untuk informasi selengkapnya tentang parse perintah, lihat Sin taks Kueri di Panduan CloudWatch Pengguna Amazon.