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 selengkapnya tentang sintaks kueri, lihatCloudWatch Sintaks kueri Log Insights.
Topik
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 VPC aliran 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 digunakan 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 DNS permintaan.
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 EC2 host Amazon yang dimulai atau dihentikan di AWS Wilayah tertentu.
filter (eventName="StartInstances" or eventName="StopInstances") and awsRegion="us-east-2"
Temukan AWS Wilayah, nama pengguna, dan IAM pengguna ARNs yang baru dibuat.
filter eventName="CreateUser" | fields awsRegion, requestParameters.userName, responseElements.user.arn
Temukan jumlah catatan di mana pengecualian terjadi saat menjalankan file. API UpdateTrail
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 API jalur 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)
Kueri 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 NAT gateway di
catatan
Dalam perintah query berikut, ganti “x.x.x.x” dengan IP pribadi NAT gateway Anda, dan ganti “y.y” dengan dua oktet pertama dari rentang Anda. VPC CIDR
Temukan contoh yang mengirimkan lalu lintas terbanyak melalui NAT gateway 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 contoh di NAT gateway 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 Anda VPC ajak berkomunikasi 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
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 GET permintaan 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