Sintaks aturan Contributor Insights di CloudWatch - Amazon CloudWatch

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

Sintaks aturan Contributor Insights di CloudWatch

Bagian ini menjelaskan aturan sintaksis untuk Wawasan Kontributor. Gunakan sintaks ini hanya ketika Anda membuat aturan dengan memasukkan JSON blok. Jika Anda menggunakan pemandu untuk membuat aturan, Anda tidak perlu mengetahui sintaksnya. Untuk informasi selengkapnya tentang membuat aturan menggunakan pemandu, silakan lihat Membuat aturan Contributor Insights di CloudWatch.

Semua pencocokan aturan untuk peristiwa log dan nilai bidang peristiwa peka huruf besar dan kecil.

Contoh berikut menggambarkan sintaks untuk JSON log.

{ "Schema": { "Name": "CloudWatchLogRule", "Version": 1 }, "LogGroupNames": [ "API-Gateway-Access-Logs*", "Log-group-name2" ], "LogFormat": "JSON", "Contribution": { "Keys": [ "$.ip" ], "ValueOf": "$.requestBytes", "Filters": [ { "Match": "$.httpMethod", "In": [ "PUT" ] } ] }, "AggregateOn": "Sum" }
Bidang dalam Aturan Wawasan Kontributor
Skema

Nilai Schema untuk aturan yang menganalisis data CloudWatch Log harus selalu {"Name": "CloudWatchLogRule", "Version": 1}

LogGroupNames

Sebuah susunan string. Untuk setiap elemen dalam susunan, Anda dapat secara opsional menggunakan * di akhir rangkaian untuk menyertakan semua grup log dengan nama yang dimulai dengan awalan itu.

Berhati-hatilah menggunakan karakter pengganti dengan nama grup log. Anda dikenakan biaya untuk setiap peristiwa log yang sesuai dengan aturan. Jika secara tidak sengaja mencari lebih banyak grup log dari yang Anda inginkan, Anda mungkin akan dikenakan biaya tak terduga. Untuk informasi selengkapnya, lihat CloudWatch Harga Amazon.

LogGroupARNs

Jika Anda membuat aturan ini di akun pemantauan observabilitas CloudWatch lintas akun, Anda dapat menggunakannya LogGroupARNs untuk menentukan grup log di akun sumber yang ditautkan ke akun pemantauan, dan untuk menentukan grup log di akun pemantauan itu sendiri. Anda harus menentukan salah satu LogGroupNames atau LogGroupARNs dalam aturan Anda, tetapi tidak keduanya.

LogGroupARNs adalah sebuah susunan string. Untuk setiap elemen dalam susunan, Anda dapat secara opsional menggunakan * sebagai wildcard dalam situasi tertentu. Misalnya Anda dapat menentukan arn:aws:logs:us-west-1:*:log-group/MyLogGroupName2 grup log yang diberi nama MyLogGroupName2 di semua akun sumber dan di akun pemantauan, di Wilayah AS Barat (California Utara). Anda juga dapat menentukan arn:aws:logs:us-west-1:111122223333:log-group/GroupNamePrefix* untuk menentukan semua grup log di AS Barat (California Utara) di 111122223333 yang memiliki nama yang dimulai denganGroupNamePrefix.

Anda tidak dapat menentukan sebagian AWS ID akun sebagai awalan dengan kartu liar.

Hati-hati menggunakan wildcard dengan grup ARNs log. Anda dikenakan biaya untuk setiap peristiwa log yang sesuai dengan aturan. Jika secara tidak sengaja mencari lebih banyak grup log dari yang Anda inginkan, Anda mungkin akan dikenakan biaya tak terduga. Untuk informasi selengkapnya, lihat CloudWatch Harga Amazon.

LogFormat

Nilai yang valid adalah JSON dan CLF.

Kontribusi

Objek ini mencakup Keys susunan dengan sebanyak empat anggota, secara opsional satu ValueOf, dan secara opsional susunan sebanyak empat Filters.

Kunci

Susunan hingga empat bidang log yang digunakan sebagai dimensi untuk mengklasifikasi kontributor. Jika Anda memasukkan lebih dari satu kunci, setiap kombinasi nilai unik untuk kunci tersebut dihitung sebagai kontributor unik. Bidang harus ditentukan menggunakan notasi format JSON properti.

ValueOf

(Opsional) Tentukan ini hanya ketika Anda menentukan Sum sebagai nilai dari AggregateOn. ValueOf menentukan bidang log dengan nilai numerik. Dalam jenis aturan ini, kontributor diberikan peringkat berdasarkan jumlah nilai bidang ini, bukan jumlah kejadiannya dalam pencatatan log. Sebagai contoh, jika ingin menyortir kontributor berdasarkan total BytesSent selama satu periode, Anda akan menentukan ValueOf untuk BytesSent dan menentukan Sum untuk AggregateOn.

Filter

(Opsional) Menentukan susunan sebanyak empat penyaring untuk mempersempit peristiwa log yang disertakan dalam laporan. Jika Anda menentukan beberapa filter, Contributor Insights mengevaluasi mereka dengan operator logis. AND Anda dapat menggunakan ini untuk menyaring peristiwa log yang tidak relevan dalam pencarian atau Anda dapat menggunakannya untuk memilih kontributor tunggal untuk menganalisis perilaku mereka.

Setiap anggota dalam susunan harus menyertakan Match bidang dan bidang yang menunjukkan jenis operator yang cocok untuk digunakan.

Bidang Match menetapkan bidang log untuk mengevaluasi di penyaring. Bidang log ditentukan menggunakan notasi format JSON properti.

Bidang operator yang cocok harus salah satu dari berikut: In, NotIn, StartsWith, GreaterThan, LessThan, EqualTo, NotEqualTo, atau IsPresent. Bilang bidang operator adalah In, NotIn, atau StartsWith, itu diikuti dengan susunan rangkaian nilai untuk diperiksa. Wawasan Kontributor mengevaluasi susunan nilai rangkaian dengan operator OR. Susunan dapat mencakup sebanyak 10 nilai rangkaian.

Jika bidang operator adalah GreaterThan, LessThan, EqualTo, atau NotEqualTo, diikuti dengan nilai numerik tunggal untuk dibandingkan.

Jika bidang operator adalah IsPresent, itu diikuti oleh true atau false. Operator ini mencocokkan log acara berdasarkan pada apakah bidang log yang ditentukan ada di dalam peristiwa log. isPresentBekerja hanya dengan nilai-nilai di simpul daun JSON properti. Misalnya, penyaring yang mencari kecocokan dengan c-count tidak mengevaluasi peristiwa log dengan nilai details.c-count.c1.

Lihat empat contoh penyaring berikut:

{"Match": "$.httpMethod", "In": [ "PUT", ] } {"Match": "$.StatusCode", "EqualTo": 200 } {"Match": "$.BytesReceived", "GreaterThan": 10000} {"Match": "$.eventSource", "StartsWith": [ "ec2", "ecs" ] }
AggregateOn

Nilai yang valid adalah Count dan Sum. Menentukan apakah akan menggabungkan laporan berdasarkan pada hitungan kejadian atau jumlah dari nilai bidang yang ditentukan dalam bidang ValueOf.

JSONnotasi format properti

MatchBidang KeysValueOf,, dan mengikuti format JSON properti dengan notasi titik, di mana $ mewakili akar JSON objek. Hal ini diikuti dengan periode dan kemudian rangkaian alfanumerik dengan nama subproperti. Beberapa tingkat properti didukung.

Karakter pertama dari string hanya bisa A-Z atau a-z. Karakter string berikut ini dapat berupa A-Z, a-z, atau 0-9.

Daftar berikut menggambarkan contoh valid dari format JSON properti:

$.userAgent $.endpoints[0] $.users[1].name $.requestParameters.instanceId

Bidang tambahan dalam aturan untuk CLF log

Common Log Format (CLF) peristiwa log tidak memiliki nama untuk bidang seperti JSON itu. Untuk menyediakan bidang yang akan digunakan untuk aturan Contributor Insights, peristiwa CLF log dapat diperlakukan sebagai array dengan indeks mulai dari. 1 Anda dapat menentukan bidang pertama sebagai "1", bidang kedua sebagai "2", dan seterusnya.

Untuk membuat aturan agar CLF log lebih mudah dibaca, Anda dapat menggunakannyaFields. Ini memungkinkan Anda untuk memberikan alias penamaan untuk lokasi CLF lapangan. Misalnya, Anda dapat menentukan bahwa lokasi "4" adalah alamat IP. Setelah ditentukan, IpAddress dapat digunakan sebagai properti di Keys, ValueOf, dan Filters dalam aturan.

Berikut ini adalah contoh aturan untuk CLF log yang menggunakan Fields bidang.

{ "Schema": { "Name": "CloudWatchLogRule", "Version": 1 }, "LogGroupNames": [ "API-Gateway-Access-Logs*" ], "LogFormat": "CLF", "Fields": { "4": "IpAddress", "7": "StatusCode" }, "Contribution": { "Keys": [ "IpAddress" ], "Filters": [ { "Match": "StatusCode", "EqualTo": 200 } ] }, "AggregateOn": "Count" }