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 kueri contoh dalam Panduan Pengguna Amazon CloudWatch Logs.

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? di halaman dukunganAWS premium.

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

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.

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 di Blog Operasi & MigrasiAWS 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

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