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
Pertanyaan umum
Temukan 25 log acara 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 log acara yang bukan pengecualian.
fields @message | filter @message not like /Exception/
Kueri untuk log Lambda
Tentukan jumlah memori yang disediakan berlebihan.
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)
Kueri untuk Log Alur Amazon VPC VPC Alur Amazon VPC
Temukan 15 transfer paket teratas di seluruh host:
stats sum(packets) as packetsTransferred by srcAddr, dstAddr | sort packetsTransferred desc | limit 15
Cari 15 transfer byte teratas untuk host di subnet yang ditentukan.
filter isIpv4InSubnet(srcAddr, "192.0.2.0/24") | stats sum(bytes) as bytesTransferred by dstAddr | sort bytesTransferred desc | limit 15
Cari alamat IP yang menggunakan UDP sebagai protokol transfer data.
filter protocol=17 | stats count(*) by srcAddr
Temukan alamat IP di mana catatan aliran dilewati selama jendela penangkapan.
filter logStatus="SKIPDATA" | stats count(*) by bin(1h) as t | sort t
Kueri untuk log Route 53
Cari distribusi catatan per jam berdasarkan tipe 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 untuk menyelesaikan permintaan DNS.
filter responseCode="SERVFAIL" | stats count(*) by queryName
Kueri untuk CloudTrail log
Temukan jumlah entri log untuk setiap layanan, tipe kejadian, dan Wilayah AWS.
stats count(*) by eventSource, eventName, awsRegion
Cari host Amazon EC2 yang dimulai atau berhenti di Wilayah AWS yang ditentukan.
filter (eventName="StartInstances" or eventName="StopInstances") and awsRegion="us-east-2"
Temukan Wilayah AWS, 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 memohon API UpdateTrail
.
filter eventName="UpdateTrail" and ispresent(errorCode) | stats count(*) by errorCode, errorMessage
Temukan entri log tempat 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
Kueri untuk gateway NAT
Jika Anda melihat biaya yang lebih tinggi dari biasanya dalamAWS 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?
Temukan instance yang mengirimkan lalu lintas terbanyak melalui gateway NAT Anda.
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.
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 instans dalam 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 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 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
Contoh perintah parse
Gunakan ekspresi glob untuk mengekstraksi bidang sementara @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 mengekstraksi bidang sementara @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
Mengekstraksi bidang sementara loggingTime
, loggingType
dan loggingMessage
, memfilter turun untuk log acara yang berisi string ERROR
atau INFO
, dan kemudian menampilkan hanya bidang loggingMessage
dan loggingType
untuk peristiwa yang berisi string ERROR
.
FIELDS @message | PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage | FILTER loggingType IN ["ERROR", "INFO"] | DISPLAY loggingMessage, loggingType = "ERROR" as isError