Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sintaks dan kuota indeks bidang
Anda membuat indeks bidang dengan membuat kebijakan indeks bidang. Anda dapat membuat kebijakan indeks tingkat akun yang berlaku untuk seluruh akun Anda, dan Anda juga dapat membuat kebijakan yang hanya berlaku untuk satu grup log. Untuk kebijakan indeks seluruh akun, Anda dapat memiliki kebijakan yang berlaku untuk semua grup log di akun. Anda juga dapat membuat kebijakan indeks tingkat akun yang berlaku untuk subset grup log di akun, dipilih oleh awalan nama grup log mereka. Jika Anda memiliki beberapa kebijakan tingkat akun di akun yang sama, awalan nama grup log untuk kebijakan ini tidak dapat tumpang tindih. Demikian pula, Anda dapat membuat kebijakan indeks tingkat akun yang berlaku untuk kombinasi nama dan tipe sumber data tertentu. Hanya satu kebijakan akun yang dapat dibuat per kombinasi nama sumber data dan tipe.
Kebijakan indeks bidang tingkat grup log menggantikan kebijakan indeks bidang tingkat akun: yang berlaku untuk grup log secara keseluruhan (seperti, kebijakan tingkat akun tanpa kriteria pemilihan atau dengan kriteria pemilihan berdasarkan awalan nama grup log). Account-level kebijakan yang cocok pada tingkat peristiwa log (seperti, untuk nama sumber data dan kombinasi tipe tertentu) akan berlaku selain kebijakan yang cocok dengan grup log secara keseluruhan. Jika Anda membuat kebijakan indeks tingkat grup log, grup log tersebut tidak menggunakan kebijakan tingkat akun yang cocok di tingkat grup log.
Pencocokan peristiwa log dengan nama indeks bidang peka huruf besar-kecil. Misalnya, indeks bidang tidak RequestId akan cocok dengan peristiwa log yang berisirequestId.
Anda dapat memiliki sebanyak 40 kebijakan indeks tingkat akun, dari kebijakan ini 20 dapat menggunakan kriteria pemilihan awalan nama grup log dan 20 dapat menggunakan kriteria pemilihan berbasis sumber data. Jika Anda memiliki beberapa kebijakan indeks tingkat akun yang difilter untuk mencatat awalan nama grup, tidak ada dua kebijakan tersebut yang dapat menggunakan awalan nama grup log yang sama atau tumpang tindih. Misalnya, jika Anda memiliki satu kebijakan yang difilter ke grup log yang dimulai denganmy-log, kebijakan indeks bidang lain tidak dapat difilter ke my-logpprod ataumy-logging. Demikian pula, jika Anda memiliki beberapa kebijakan indeks tingkat akun yang difilter ke kombinasi nama dan tipe sumber data, tidak ada dua dari mereka yang dapat menggunakan nama dan jenis sumber data yang sama. Misalnya, jika Anda memiliki satu kebijakan yang difilter ke nama sumber data amazon_vpc dan jenis sumber data, flow Anda tidak dapat membuat kebijakan lain dengan kombinasi ini.
Jika Anda memiliki kebijakan indeks tingkat akun yang tidak memiliki awalan nama dan berlaku untuk semua grup log, maka tidak ada kebijakan indeks tingkat akun lain dengan filter awalan nama grup log yang dapat dibuat; Anda dapat membuat kebijakan indeks tingkat akun yang menggunakan nama sumber data dan filter tipe.
Setiap kebijakan indeks memiliki kuota dan batasan berikut:
-
Sebanyak 20 bidang dapat dimasukkan dalam kebijakan.
-
Setiap nama bidang dapat mencakup sebanyak 100 karakter.
-
Untuk membuat indeks bidang kustom di grup log Anda yang dimulai dengan
@, Anda harus menentukan bidang dengan tambahan@di awal nama bidang. Misalnya, jika peristiwa log Anda menyertakan bidang bernama@userId, Anda harus menentukan@@userIduntuk membuat indeks untuk bidang ini.
Untuk kebijakan indeks tingkat akun dengan nama sumber data dan kriteria pemilihan berbasis tipe, batasan tambahan berlaku: semua bidang harus tipe data primitif, primitif bersarang hanya didukung untuk struct.
Bidang yang dihasilkan dan bidang yang dicadangkan
CloudWatch Logs Insights secara otomatis menghasilkan bidang sistem di setiap peristiwa log. Bidang yang dihasilkan ini diawali dengan @ Untuk informasi selengkapnya tentang bidang yang dihasilkan, lihatLog yang didukung dan bidang yang ditemukan.
Dari bidang yang dihasilkan ini, berikut ini didukung untuk digunakan sebagai indeks bidang:
-
@logStream -
@ingestionTime -
@requestId -
@type -
@initDuration -
@duration -
@billedDuration -
@memorySize -
@maxMemoryUsed -
@xrayTraceId -
@xraySegmentId
Untuk mengindeks bidang yang dihasilkan ini, Anda tidak perlu menambahkan tambahan @ saat menentukannya, seperti yang harus Anda lakukan untuk bidang khusus yang dimulai dengan@. Misalnya, untuk membuat indeks bidang@logStream, cukup tentukan @logStream sebagai indeks bidang.
CloudWatch Log menyediakan indeks bidang default untuk semua grup log di kelas log Standar. Indeks bidang default secara otomatis tersedia untuk bidang berikut:
-
@logStream -
@aws.region -
@aws.account -
@source.log -
@data_source_name -
@data_source_type -
@data_format -
traceId -
severityText -
attributes.session.id
CloudWatch Log menyediakan indeks bidang default untuk nama sumber data tertentu dan kombinasi tipe juga. Indeks bidang default secara otomatis tersedia untuk kombinasi nama dan tipe sumber data berikut:
| Nama dan Jenis Sumber Data | Indeks Bidang Default |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Indeks bidang default adalah tambahan untuk indeks bidang kustom yang Anda tentukan dalam kebijakan Anda. Indeks bidang default tidak dihitung dalam kuota indeks bidang Anda.
Bidang anak dan bidang array di log JSON
Anda dapat mengindeks bidang yang merupakan bidang anak bersarang atau bidang array di log JSON.
Misalnya, Anda dapat membuat indeks bidang accessKeyId anak dalam userIdentity bidang dalam log ini:
{ "eventVersion": "1.0", "userIdentity": { "type": "IAMUser", "principalId": "EXAMPLE_PRINCIPAL_ID", "arn": "arn: aws: iam: : 123456789012: user/Alice", "accessKeyId": "11112222", "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", "currentState": { "code": 0, "name": "pending" }, "previousState": { "code": 80, "name": "stopped" } }] } } }
Untuk membuat bidang ini, Anda merujuknya menggunakan notasi titik (userIdentity.accessKeyId) baik saat membuat indeks bidang maupun saat menentukannya dalam kueri. Kueri bisa terlihat seperti ini:
fields @timestamp, @message | filterIndex userIdentity.accessKeyId = "11112222"
Dalam peristiwa contoh sebelumnya, instanceId bidang berada dalam array di dalam requestParameters.instancesSet.items Untuk mewakili bidang ini baik saat membuat indeks bidang dan saat membuat kueri, sebut saja sebagai requestParameters.instancesSet.items.0.instanceId The 0 mengacu pada tempat bidang itu dalam array.
Maka kueri untuk bidang ini bisa jadi sebagai berikut:
fields @timestamp, @message | filterIndex requestParameters.instancesSet.items.0.instanceId="i-abcde123"