Kueri Sampel - CloudWatch Log Amazon

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

Kueri Sampel

Bagian ini berisi daftar perintah kueri umum dan berguna yang dapat Anda jalankan di CloudWatch konsol. Untuk informasi tentang cara menjalankan perintah kueri, lihat Tutorial: Menjalankan dan memodifikasi contoh kueri di Panduan Pengguna Amazon CloudWatch Logs.

Untuk informasi selengkapnya tentang sintaks kueri, lihatCloudWatch Sintaks kueri Log Insights.

Kueri umum

Temukan 25 peristiwa log yang paling baru ditambahkan.

fields @timestamp, @message | sort @timestamp desc | limit 25

Dapatkan daftar jumlah pengecualian per jam.

filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc

Dapatkan daftar peristiwa log yang bukan pengecualian.

fields @message | filter @message not like /Exception/

Dapatkan peristiwa log terbaru untuk setiap nilai unik server bidang.

fields @timestamp, server, severity, message | sort @timestamp asc | dedup server

Dapatkan peristiwa log terbaru untuk setiap nilai unik server bidang untuk setiap severity jenis.

fields @timestamp, server, severity, message | sort @timestamp desc | dedup server, severity

Kueri untuk log Lambda

Tentukan jumlah memori yang dilebih-lebihkan.

filter @type = "REPORT" | stats max(@memorySize / 1000 / 1000) as provisonedMemoryMB, min(@maxMemoryUsed / 1000 / 1000) as smallestMemoryRequestMB, avg(@maxMemoryUsed / 1000 / 1000) as avgMemoryUsedMB, max(@maxMemoryUsed / 1000 / 1000) as maxMemoryUsedMB, provisonedMemoryMB - maxMemoryUsedMB as overProvisionedMB

Buat laporan latensi.

filter @type = "REPORT" | stats avg(@duration), max(@duration), min(@duration) by bin(5m)

Cari pemanggilan fungsi lambat, dan hilangkan permintaan duplikat yang dapat muncul dari percobaan ulang atau kode sisi klien. Dalam query ini, @duration adalah dalam milidetik.

fields @timestamp, @requestId, @message, @logStream | filter @type = "REPORT" and @duration > 1000 | sort @timestamp desc | dedup @requestId | limit 20

Kueri untuk log aliran VPC Amazon

Temukan 15 transfer paket teratas di seluruh host:

stats sum(packets) as packetsTransferred by srcAddr, dstAddr | sort packetsTransferred desc | limit 15

Temukan transfer 15 byte teratas untuk host pada subnet tertentu.

filter isIpv4InSubnet(srcAddr, "192.0.2.0/24") | stats sum(bytes) as bytesTransferred by dstAddr | sort bytesTransferred desc | limit 15

Temukan alamat IP yang menggunakan UDP sebagai protokol transfer data.

filter protocol=17 | stats count(*) by srcAddr

Temukan alamat IP tempat catatan aliran dilewati selama jendela pengambilan.

filter logStatus="SKIPDATA" | stats count(*) by bin(1h) as t | sort t

Temukan satu catatan untuk setiap koneksi, untuk membantu memecahkan masalah konektivitas jaringan.

fields @timestamp, srcAddr, dstAddr, srcPort, dstPort, protocol, bytes | filter logStream = 'vpc-flow-logs' and interfaceId = 'eni-0123456789abcdef0' | sort @timestamp desc | dedup srcAddr, dstAddr, srcPort, dstPort, protocol | limit 20

Kueri untuk log Route 53

Temukan distribusi catatan per jam berdasarkan jenis kueri.

stats count(*) by queryType, bin(1h)

Temukan 10 DNS resolver dengan jumlah permintaan tertinggi.

stats count(*) as numRequests by resolverIp | sort numRequests desc | limit 10

Temukan jumlah catatan berdasarkan domain dan subdomain di mana server gagal menyelesaikan permintaan DNS.

filter responseCode="SERVFAIL" | stats count(*) by queryName

Kueri untuk log CloudTrail

Temukan jumlah entri log untuk setiap layanan, jenis acara, dan AWS Wilayah.

stats count(*) by eventSource, eventName, awsRegion

Temukan host Amazon EC2 yang dimulai atau dihentikan di Wilayah tertentu AWS .

filter (eventName="StartInstances" or eventName="StopInstances") and awsRegion="us-east-2"

Temukan AWS Wilayah, nama pengguna, dan ARN pengguna IAM yang baru dibuat.

filter eventName="CreateUser" | fields awsRegion, requestParameters.userName, responseElements.user.arn

Temukan jumlah catatan di mana pengecualian terjadi saat menjalankan APIUpdateTrail.

filter eventName="UpdateTrail" and ispresent(errorCode) | stats count(*) by errorCode, errorMessage

Temukan entri log di mana TLS 1.0 atau 1.1 digunakan

filter tlsDetails.tlsVersion in [ "TLSv1", "TLSv1.1" ] | stats count(*) as numOutdatedTlsCalls by userIdentity.accountId, recipientAccountId, eventSource, eventName, awsRegion, tlsDetails.tlsVersion, tlsDetails.cipherSuite, userAgent | sort eventSource, eventName, awsRegion, tlsDetails.tlsVersion

Temukan jumlah panggilan per layanan yang menggunakan TLS versi 1.0 atau 1.1

filter tlsDetails.tlsVersion in [ "TLSv1", "TLSv1.1" ] | stats count(*) as numOutdatedTlsCalls by eventSource | sort numOutdatedTlsCalls desc

Pertanyaan untuk Amazon API Gateway

Temukan 10 kesalahan 4XX terakhir

fields @timestamp, status, ip, path, httpMethod | filter status>=400 and status<=499 | sort @timestamp desc | limit 10

Identifikasi 10 Amazon API Gateway permintaan yang paling lama berjalan di grup log akses Anda Amazon API Gateway

fields @timestamp, status, ip, path, httpMethod, responseLatency | sort responseLatency desc | limit 10

Kembalikan daftar jalur API paling populer di grup log Amazon API Gateway akses Anda

stats count(*) as requestCount by path | sort requestCount desc | limit 10

Membuat laporan latensi integrasi untuk grup log Amazon API Gateway akses Anda

filter status=200 | stats avg(integrationLatency), max(integrationLatency), min(integrationLatency) by bin(1m)

Pertanyaan untuk gateway NAT

Jika Anda melihat biaya yang lebih tinggi dari biasanya dalam AWS tagihan Anda, Anda dapat menggunakan Wawasan CloudWatch Log untuk menemukan kontributor teratas. Untuk informasi selengkapnya tentang perintah kueri berikut, lihat Bagaimana cara menemukan kontributor teratas untuk lalu lintas melalui gateway NAT di VPC saya? di halaman dukungan AWS premium.

catatan

Dalam perintah kueri berikut, ganti “x.x.x.x” dengan IP pribadi gateway NAT Anda, dan ganti “y.y” dengan dua oktet pertama dari rentang CIDR VPC Anda.

Temukan contoh yang mengirimkan lalu lintas terbanyak melalui gateway NAT Anda.

filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10

Tentukan lalu lintas yang menuju dan dari instance di gateway NAT Anda.

filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') or (srcAddr like 'xxx.xx.xx.xx' and dstAddr like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10

Tentukan tujuan internet yang paling sering berkomunikasi dengan instance di VPC Anda untuk upload dan download.

Untuk upload

filter (srcAddr like 'x.x.x.x' and dstAddr not like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10

Untuk unduhan

filter (dstAddr like 'x.x.x.x' and srcAddr not like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10

Kueri untuk log server Apache

Anda dapat menggunakan Wawasan CloudWatch Log untuk menanyakan log server Apache. Untuk informasi selengkapnya tentang kueri berikut, lihat Menyederhanakan log server Apache dengan Wawasan CloudWatch Log di Blog Operasi & Migrasi AWS Cloud.

Temukan bidang yang paling relevan, sehingga Anda dapat meninjau log akses Anda dan memeriksa lalu lintas di jalur /admin aplikasi Anda.

fields @timestamp, remoteIP, request, status, filename| sort @timestamp desc | filter filename="/var/www/html/admin" | limit 20

Temukan nomor permintaan GET unik yang mengakses halaman utama Anda dengan kode status “200" (sukses).

fields @timestamp, remoteIP, method, status | filter status="200" and referrer= http://34.250.27.141/ and method= "GET" | stats count_distinct(remoteIP) as UniqueVisits | limit 10

Temukan berapa kali layanan Apache Anda dimulai ulang.

fields @timestamp, function, process, message | filter message like "resuming normal operations" | sort @timestamp desc | limit 20

Kueri untuk Amazon EventBridge

Dapatkan jumlah EventBridge acara yang dikelompokkan berdasarkan jenis detail acara

fields @timestamp, @message | stats count(*) as numberOfEvents by `detail-type` | sort numberOfEvents desc

Contoh perintah parse

Gunakan ekspresi glob untuk mengekstrak bidang@user,@method, dan @latency dari bidang log @message dan kembalikan latensi rata-rata untuk setiap kombinasi unik dan. @method @user

parse @message "user=*, method:*, latency := *" as @user, @method, @latency | stats avg(@latency) by @method, @user

Gunakan ekspresi reguler untuk mengekstrak bidang@user2,@method2, dan @latency2 dari bidang log @message dan kembalikan latensi rata-rata untuk setiap kombinasi unik @method2 dan@user2.

parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, @user2

Mengekstrak bidangloggingTime, loggingType danloggingMessage, memfilter ke log peristiwa yang berisi ERROR atau INFO string, dan kemudian hanya menampilkan loggingMessage dan loggingType bidang untuk peristiwa yang berisi ERROR string.

FIELDS @message | PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage | FILTER loggingType IN ["ERROR", "INFO"] | DISPLAY loggingMessage, loggingType = "ERROR" as isError