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 bahasa Logs Insights.
Topik
Kueri umum
Temukan 25 peristiwa log yang terbaru 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 kelebihan pasokan.
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 yang lambat, dan hilangkan permintaan duplikat yang dapat muncul dari percobaan ulang atau kode sisi klien. Dalam kueri @duration ini, dalam milidetik.
fields @timestamp, @requestId, @message, @logStream | filter @type = "REPORT" and @duration > 1000 | sort @timestamp desc | dedup @requestId | limit 20
Kueri untuk log alur Amazon VPC
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 resolver DNS 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 CloudTrail log
Temukan jumlah entri log untuk setiap layanan, jenis acara, dan Wil AWS ayah.
stats count(*) by eventSource, eventName, awsRegion
Temukan host Amazon EC2 yang dimulai atau dihentikan di Wil AWS ayah tertentu.
filter (eventName="StartInstances" or eventName="StopInstances") and awsRegion="us-east-2"
Temukan Wil AWS ayah, nama pengguna, dan ARN pengguna IAM yang baru dibuat.
filter eventName="CreateUser" | fields awsRegion, requestParameters.userName, responseElements.user.arn
Temukan jumlah rekaman di mana pengecualian terjadi saat memanggil 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 berjalan paling lama di grup log Amazon API Gateway akses Anda
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)
Kueri untuk gateway NAT
Jika Anda melihat biaya yang lebih tinggi dari biasanya dalam AWS tagihan Anda, Anda dapat menggunakan CloudWatch Logs Insights 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?
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 VPC CIDR Anda.
Temukan instans yang mengirimkan lalu lintas paling banyak 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 instans 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 instans di VPC Anda untuk unggahan dan unduhan.
Untuk unggahan
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 CloudWatch Logs Insights untuk menanyakan log server Apache. Untuk informasi selengkapnya tentang kueri berikut, lihat Meny ederhanakan log server Apache dengan Logs CloudWatch Insights
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 countDistinct(remoteIP) as UniqueVisits | limit 10
Cari tahu 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
Kueri untuk tag sumber daya
Memfilter log berdasarkan nilai tag sumber daya.
filter @aws.tag.env = "production"
Filter dengan kunci tag yang berisi karakter khusus.
filter @`aws.tag.aws:cloudformation:stack-name` = "my-stack"
Dapatkan hitungan peristiwa log yang dikelompokkan berdasarkan nilai tag.
stats count(*) by @aws.tag.team
Contoh perintah parse
Gunakan ekspresi glob untuk mengekstrak bidang@user,@method, dan @latency dari bidang log @message dan mengembalikan latensi rata-rata untuk setiap kombinasi unik @method dan@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 mengembalikan 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 bidang loggingTimeloggingMessage, loggingType dan memfilter ke bawah untuk mencatat peristiwa yang berisi ERROR atau INFO string, lalu hanya menampilkan loggingType bidang loggingMessage dan 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