

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 [ CloudWatch konsol](https://console.aws.amazon.com/cloudwatch/). Untuk informasi tentang cara menjalankan perintah kueri, lihat [ Tutorial: Menjalankan dan memodifikasi kueri sampel ](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 Logs Insights](CWL_QuerySyntax.md).

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

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

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

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

**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 catatan di mana pengecualian terjadi saat memanggil 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 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
<a name="CWL_QuerySyntax-examples-NATGateway"></a>

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? ](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 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 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 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
<a name="CWL_QuerySyntax-examples-Apache"></a>

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 ](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 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
<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
```

## Kueri untuk tag sumber daya
<a name="CWL_QuerySyntax-examples-ResourceTags"></a>

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

**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 `loggingTime``loggingMessage`, `loggingType` dan menyaring ke bawah peristiwa log 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
```