Sintaks indeks bidang dan kuota - CloudWatch Log Amazon

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

Sintaks indeks bidang dan kuota

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, yang dipilih berdasarkan 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 nama sumber data tertentu dan kombinasi tipe. Hanya satu kebijakan akun yang dapat dibuat per nama sumber data dan kombinasi jenis.

Kebijakan indeks bidang tingkat grup log mengganti 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). Kebijakan tingkat akun yang cocok di tingkat peristiwa log (seperti, untuk nama sumber data tertentu dan kombinasi jenis) akan berlaku selain kebijakan yang cocok dengan grup log secara keseluruhan. Jika Anda membuat kebijakan indeks tingkat log-grup, 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 dari mereka yang dapat menggunakan awalan nama grup log yang sama atau tumpang tindih. Misalnya, jika Anda memiliki satu kebijakan yang difilter untuk mencatat grup yang dimulaimy-log, Anda tidak dapat memfilter kebijakan indeks bidang lain ke my-logpprod ataumy-logging. Demikian pula, jika Anda memiliki beberapa kebijakan indeks tingkat akun yang difilter ke nama sumber data dan kombinasi tipe, 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 tipe 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 jenis filter.

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 @@userId untuk membuat indeks untuk bidang ini.

Untuk kebijakan indeks tingkat akun dengan nama sumber data dan kriteria pemilihan berdasarkan tipe, pembatasan tambahan berlaku: semua bidang harus berupa tipe data primitif, primitif bersarang hanya didukung untuk struct.

Bidang yang dihasilkan dan bidang cadangan

CloudWatch Wawasan Log 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@. Misalnya, untuk membuat indeks bidang untuk@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 jenis sumber data berikut:

Nama dan Jenis Sumber Data Indeks Bidang Default

amazon_vpc.flow

action

logStatus

region

flowDirection

type

amazon_route53.resolver_query

query_type

transport

rcode

aws_waf.access

action

httpRequest.country

aws_cloudtrail.data

aws_cloudtrail.management

eventSource

eventName

awsRegion

userAgent

errorCode

eventType

managementEvent

readOnly

eventCategory

requestId

Indeks bidang default merupakan tambahan dari indeks bidang kustom apa pun yang Anda tentukan dalam kebijakan Anda. Indeks bidang default tidak dihitung terhadap kuota indeks bidang Anda.

Bidang anak dan bidang array di log JSON

Anda dapat mengindeks bidang yang merupakan bidang turunan 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 dan saat menentukannya dalam kueri. Kueri bisa terlihat seperti ini:

fields @timestamp, @message | filterIndex userIdentity.accessKeyId = "11112222"

Dalam contoh peristiwa sebelumnya, instanceId bidang berada dalam array dalam requestParameters.instancesSet.items Untuk mewakili bidang ini baik saat membuat indeks bidang dan saat query, lihat itu sebagai requestParameters.instancesSet.items.0.instanceId 0 mengacu pada tempat bidang itu dalam array.

Maka kueri untuk bidang ini bisa menjadi sebagai berikut:

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