

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

# Kueri Sampel
<a name="CWL_QuerySyntax-examples"></a>

Bagian ini berisi daftar perintah kueri umum dan berguna yang dapat Anda jalankan di [CloudWatchkonsol](https://console.aws.amazon.com/cloudwatch/). Untuk informasi tentang cara menjalankan perintah kueri, lihat [Tutorial: Menjalankan dan memodifikasi contoh kueri](https://docs.aws.amazon.com/en_us/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_RunSampleQuery.html) di *Panduan Pengguna Amazon CloudWatch Logs*.

Untuk informasi selengkapnya tentang sintaks kueri, lihat[CloudWatch Sintaks kueri bahasa Wawasan Log](CWL_QuerySyntax.md).

**Topics**
+ [Kueri umum](#CWL_QuerySyntax-examples-general)
+ [Kueri untuk log Lambda](#CWL_QuerySyntax-examples-Lambda)
+ [Kueri untuk log aliran VPC Amazon](#CWL_QuerySyntax-examples-VPC)
+ [Kueri untuk log Route 53](#CWL_QuerySyntax-examples-Route53)
+ [Kueri untuk log CloudTrail](#CWL_QuerySyntax-examples-CloudTrail)
+ [Pertanyaan untuk Amazon API Gateway](#CWL_QuerySyntax-examples-APIGateway)
+ [Pertanyaan untuk gateway NAT](#CWL_QuerySyntax-examples-NATGateway)
+ [Kueri untuk log server Apache](#CWL_QuerySyntax-examples-Apache)
+ [Kueri untuk Amazon EventBridge](#CWL_QuerySyntax-examples-EventBridge)
+ [Contoh perintah parse](#CWL_QuerySyntax-examples-parse)

## Kueri umum
<a name="CWL_QuerySyntax-examples-general"></a>

**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
<a name="CWL_QuerySyntax-examples-Lambda"></a>

**Tentukan jumlah memori overprovisioned.**

```
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
<a name="CWL_QuerySyntax-examples-VPC"></a>

**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
<a name="CWL_QuerySyntax-examples-Route53"></a>

**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
<a name="CWL_QuerySyntax-examples-CloudTrail"></a>

**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 ARNs pengguna IAM yang baru dibuat.**

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

**Temukan jumlah catatan di mana pengecualian terjadi saat menjalankan 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
<a name="CWL_QuerySyntax-examples-APIGateway"></a>

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
<a name="CWL_QuerySyntax-examples-NATGateway"></a>

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?](https://aws.amazon.com/premiumsupport/knowledge-center/vpc-find-traffic-sources-nat-gateway/) 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
<a name="CWL_QuerySyntax-examples-Apache"></a>

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](https://aws.amazon.com/blogs/mt/simplifying-apache-server-logs-with-amazon-cloudwatch-logs-insights/) 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
<a name="CWL_QuerySyntax-examples-EventBridge"></a>

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
<a name="CWL_QuerySyntax-examples-parse"></a>

**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 bidang`loggingTime`, `loggingType` dan`loggingMessage`, 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
```