

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

# Memulai dengan kueri terjadwal
<a name="scheduled-queries-getting-started"></a>

Saat membuat kueri terjadwal, Anda akan mengonfigurasi beberapa komponen utama yang menentukan cara kueri Anda berjalan dan di mana hasil dikirim. Memahami komponen-komponen ini akan membantu Anda mengatur analisis log otomatis yang efektif.

Setiap kueri terjadwal terdiri dari komponen kunci berikut:

**Konfigurasi kueri**  
String kueri CloudWatch Logs Insights, grup log target, dan bahasa kueri yang akan digunakan untuk analisis.

**Ekspresi jadwal**  
Ekspresi cron atau kalender frekuensi yang menentukan kapan kueri berjalan. Anda dapat menentukan pengaturan zona waktu untuk memastikan kueri berjalan pada waktu lokal yang benar. Konsol menampilkan deskripsi jadwal Anda yang dapat dibaca manusia, seperti “Jalankan kueri setiap hari Selasa pukul 15:10 untuk rentang waktu 5 menit, efektif segera, di UTC, hingga tanpa batas waktu.”

**Rentang waktu**  
Periode lookback untuk setiap eksekusi kueri, ditentukan oleh waktu mulai offset dari waktu eksekusi. Ini menentukan berapa banyak data historis yang akan dianalisis setiap eksekusi kueri.

**Pratinjau jadwal eksekusi**  
Konsol menunjukkan tiga kueri terjadwal berikutnya berjalan dengan tanggal dan waktu yang tepat (misalnya, 2025/10/28 15:10, UTC; 2025/11/04 15:10, UTC; 2025/11/11 15:10, UTC), membantu Anda memverifikasi bahwa jadwal dikonfigurasi dengan benar.

**Tujuan**  
Di mana hasil kueri dikirim setelah eksekusi berhasil. Tujuan yang didukung termasuk bucket Amazon S3 dan secara default metadata hasil dikirim ke bus acara default.

**Peran eksekusi**  
Peran IAM yang diasumsikan CloudWatch Log untuk mengeksekusi kueri dan memberikan hasil ke tujuan yang ditentukan.

Sebelum membuat kueri terjadwal, pastikan Anda memiliki izin dan sumber daya yang diperlukan yang dikonfigurasi.

# Membuat kueri terjadwal
<a name="create-scheduled-query"></a>

Buat kueri terjadwal yang secara otomatis menjalankan kueri Wawasan CloudWatch Log dan memberikan hasil ke tujuan yang Anda pilih.

## Prasyarat
<a name="create-scheduled-query-prerequisites"></a>

Sebelum membuat kueri terjadwal, pastikan Anda memiliki yang berikut:
+ **Grup log** - Satu atau beberapa grup log yang berisi data yang ingin Anda analisis
+ **Eksekusi peran IAM - Peran** IAM dengan izin berikut:
  + `logs:StartQuery`- Izin untuk memulai CloudWatch kueri Wawasan Log
  + `logs:GetQueryResults`- Izin untuk mengambil hasil kueri
  + `logs:DescribeLogGroups`- Izin untuk mengakses informasi grup log. Ini hanya diperlukan untuk grup log berbasis awalan untuk penemuan grup log
+ **Izin tujuan - Izin** IAM tambahan untuk tujuan yang Anda pilih:
  + Untuk tujuan Amazon S3: `s3:PutObject`
+ **Untuk AWS CLI dan penggunaan API** - AWS Kredensi yang dikonfigurasi dengan izin untuk memanggil Log CloudWatch APIs

Untuk contoh kebijakan IAM yang mendetail, lihat[Manajemen identitas dan akses untuk Amazon CloudWatch Logs](auth-and-access-control-cwl.md). Juga perlu dicatat Anda hanya dapat memiliki 1000 kueri terjadwal per akun.

------
#### [ Console ]

**Untuk membuat kueri terjadwal (konsol)**

1. Buka konsol CloudWatch Log di [https://us-east-1.console.aws.amazon.com/cloudwatch/rumah? region=us-east-1](https://us-east-1.console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:logs-insights) \$1 logsV2: logs-wawasan.

1. Di panel navigasi, pilih ** Wawasan Logs**.

1. Pilih **Buat kueri terjadwal**.

1. Di bagian **Definisi kueri**:

   1. Untuk **bahasa Kueri**, pilih bahasa kueri yang akan digunakan dari daftar.

   1. Untuk **string Kueri**, masukkan kueri Wawasan CloudWatch Log Anda di kotak.

   1. Untuk **grup Log**, pilih grup log untuk kueri dari daftar.

1. Di bagian **Pengaturan jadwal**:

   1. Untuk **ekspresi Jadwal**, konfigurasikan saat kueri berjalan. Pilih dari opsi yang telah ditentukan atau masukkan ekspresi cron kustom.

   1. Untuk **Efektif saat pembuatan**, tentukan kapan jadwal menjadi aktif. Pilih untuk segera memulai atau pada tanggal dan waktu tertentu menggunakan YYYY/MM/DD format.

   1. Untuk **Rentang waktu**, tentukan periode lookback untuk setiap eksekusi kueri. Masukkan durasi dalam menit yang menentukan seberapa jauh dari waktu eksekusi ke kueri.

   1. Untuk **Lanjutkan tanpa batas waktu**, tentukan kapan jadwal berakhir. Pilih untuk menjalankan tanpa batas waktu atau sampai tanggal dan waktu tertentu menggunakan YYYY/MM/DD format.

1. Konsol menampilkan tiga kueri terjadwal berikutnya berdasarkan konfigurasi Anda, menunjukkan tanggal dan waktu yang tepat di UTC saat kueri akan dijalankan.

1. Dalam **hasil kueri Posting ke S3 - bagian opsional** (jika menggunakan tujuan S3):

   1. Untuk **bucket S3**, pilih **Akun ini** jika bucket tujuan berada di AWS akun yang sama, atau pilih **Akun lain** jika bucket berada di AWS akun yang berbeda dan berikan ID akun pemilik ember sebagai input.

   1. Untuk **URI Amazon S3**, masukkan bucket Amazon S3 dan awalan tempat hasil akan disimpan (misalnya,). `s3://my-bucket/query-results/` Jika Anda memilih **Akun ini**, Anda dapat memilih **Jelajahi Amazon S3** untuk menavigasi dan memilih lokasi Amazon S3 yang ada.

   1. (Opsional) Untuk **ARN kunci KMS**, masukkan ARN kunci yang AWS KMS dikelola pelanggan untuk mengenkripsi hasil kueri menggunakan SSE-KMS. Kuncinya harus berada di AWS Wilayah yang sama dengan bucket Amazon S3 tujuan.

1. Dalam **peran IAM untuk memposting hasil kueri ke bagian Amazon** S3, pilih salah satu opsi berikut:

   1. Pilih **Buat otomatis peran baru dengan izin default** untuk secara otomatis menyiapkan peran IAM dengan izin yang diperlukan untuk CloudWatch Log untuk mengirimkan hasil kueri ke Amazon S3.

   1. Pilih **Gunakan peran yang ada untuk memilih peran** IAM yang ada dengan kebijakan yang diperlukan untuk CloudWatch Log untuk mengirimkan hasil kueri ke Amazon S3. Gunakan bidang pencarian untuk menemukan dan memilih peran IAM yang sesuai dari daftar.

1. Di **peran IAM untuk bagian eksekusi kueri terjadwal**, pilih salah satu opsi berikut:

   1. Pilih **Auto-create peran baru dengan izin default** untuk secara otomatis mengatur peran IAM dengan izin yang diperlukan untuk CloudWatch Log untuk menjalankan kueri terjadwal.

   1. Pilih **Gunakan peran yang ada untuk memilih peran** IAM yang ada dengan kebijakan yang diperlukan untuk CloudWatch Log untuk menjalankan kueri terjadwal. Gunakan bidang pencarian untuk menemukan dan memilih peran IAM yang sesuai dari daftar.

1. Pilih **Buat jadwal** untuk membuat kueri terjadwal.

------
#### [ AWS CLI ]

**Untuk membuat query terjadwal (AWS CLI)**
+ Gunakan `create-scheduled-query` perintah untuk membuat kueri terjadwal baru:

  ```
  aws logs create-scheduled-query \
      --name "ErrorAnalysisQuery" \
      --query-language "CWLI" \
      --query-string "fields @timestamp, @message | filter @message like /ERROR/ | stats count() by bin(5m)" \
      --schedule-expression "cron(8 * * * ? *)" \
      --execution-role-arn "arn:aws:iam::123456789012:role/CloudWatchLogsScheduledQueryRole" \
      --log-group-identifiers "/aws/lambda/my-function" "/aws/apigateway/my-api" \
      --state "ENABLED"
  ```

------
#### [ API ]

**Untuk membuat kueri terjadwal (API)**
+ Gunakan `CreateScheduledQuery` tindakan untuk membuat kueri terjadwal baru. Contoh berikut membuat kueri terjadwal yang berjalan setiap jam:

  ```
  {
      "name": "ErrorAnalysisQuery",
      "queryLanguage": "CWLI",
      "queryString": "fields @timestamp, @message | filter @message like /ERROR/ | stats count() by bin(5m)",
      "scheduleExpression": "cron(8 * * * ? *)",
      "executionRoleArn": "arn:aws:iam::123456789012:role/CloudWatchLogsScheduledQueryRole",
      "logGroupIdentifiers": ["/aws/lambda/my-function", "/aws/apigateway/my-api"],
      "state": "ENABLED"
  }
  ```

------

Setelah membuat kueri terjadwal, Anda dapat melihat dan mengelolanya dari halaman **Kueri terjadwal** dan menggunakan ListScheduledQueries API, yang menampilkan semua kueri terjadwal dengan nama, tanggal pembuatan, status proses terakhir, waktu pemicu terakhir, dan frekuensi pengulangan.

# Melihat dan mengelola kueri terjadwal
<a name="scheduled-queries-management"></a>

Informasi berikut tersedia untuk setiap kueri:

**Nama**  
Nama unik yang Anda tetapkan untuk kueri terjadwal. Pilih nama untuk melihat konfigurasi terperinci dan riwayat eksekusi.

**Tanggal pembuatan**  
Tanggal ketika kueri terjadwal dibuat, ditampilkan dalam YYYY-MM-DD format.

**Status Last Run**  
Status eksekusi dari kueri terbaru yang dijalankan. Nilai yang mungkin termasuk:  
+ **Selesai** - Kueri berhasil dieksekusi dan hasilnya dikirim ke semua tujuan yang dikonfigurasi.
+ **Gagal** - Eksekusi kueri atau pengiriman hasil gagal. Periksa riwayat eksekusi untuk detail kesalahan.
+ Kueri **Tidak Valid - Kueri** tidak valid dan memiliki masalah sintaksis
+ **Timeout** - Kueri telah habis waktunya. Waktu kueri habis secara otomatis setelah 60 menit

**Waktu terakhir dipicu**  
Tanggal dan waktu ketika kueri terakhir dieksekusi, ditampilkan dalam format YYYY-MM-DD HH: MM: SS. Menampilkan **Tidak Pernah** jika kueri belum berjalan.

**Mengulangi setiap**  
Frekuensi jadwal untuk kueri. Menampilkan **Kustom** untuk kueri menggunakan ekspresi cron atau deskripsi frekuensi tertentu untuk jadwal yang lebih sederhana.

Halaman **kueri terjadwal** memberikan ikhtisar semua kueri terjadwal Anda, menunjukkan status saat ini dan riwayat eksekusi sehingga Anda dapat melihat, memantau, dan mengelola semua kueri terjadwal Anda dari lokasi terpusat. Gunakan informasi ini untuk memantau kinerja kueri, mengidentifikasi masalah, dan mengelola alur kerja analisis log otomatis Anda.

------
#### [ Console ]

**Untuk melihat kueri terjadwal (konsol)**

1. Buka konsol CloudWatch Log di [https://us-east-1.console.aws.amazon.com/cloudwatch/rumah? region=us-east-1](https://us-east-1.console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:logs-insights) \$1 logsV2: logs-wawasan.

1. Di konsol CloudWatch Log, pilih **Kueri terjadwal**, **Lihat kueri terjadwal**.

------
#### [ AWS CLI ]

**Untuk membuat daftar kueri terjadwal ()AWS CLI**
+ Gunakan `list-scheduled-queries` perintah untuk membuat daftar semua kueri terjadwal:

  ```
  aws logs list-scheduled-queries --max-results 10
  ```

------
#### [ API ]

**Untuk membuat daftar kueri terjadwal (API)**
+ Gunakan `ListScheduledQueries` tindakan untuk mengambil semua kueri terjadwal:

  ```
  {
      "maxResults": 10
  }
  ```

------

Header halaman **kueri terjadwal** menunjukkan jumlah total kueri terjadwal di akun Anda, membantu Anda melacak penggunaan dan mengelola alur kerja analisis log otomatis Anda secara efektif.

# Melihat riwayat eksekusi kueri terjadwal
<a name="scheduled-queries-execution-history"></a>

Gunakan riwayat eksekusi untuk memantau kinerja kueri terjadwal Anda dan memecahkan masalah apa pun dengan eksekusi kueri atau pengiriman hasil.

Riwayat eksekusi menunjukkan status setiap kueri yang dijalankan, termasuk eksekusi yang berhasil, kegagalan, dan hasil pemrosesan tujuan. Anda dapat menggunakan informasi ini untuk mengidentifikasi pola, mendiagnosis masalah, dan memverifikasi bahwa kueri Anda berjalan seperti yang diharapkan.

------
#### [ Console ]

**Untuk melihat riwayat eksekusi (konsol)**

1. Di konsol CloudWatch Log, pilih **Kueri terjadwal**, **Lihat kueri terjadwal**.

1. Pilih kueri terjadwal yang ingin Anda periksa.

1. Pilih tab **Riwayat eksekusi**.

------
#### [ AWS CLI ]

**Untuk melihat riwayat eksekusi (AWS CLI)**

1. Gunakan `get-scheduled-query-history` perintah untuk mengambil riwayat eksekusi untuk kueri terjadwal:

   ```
   aws logs get-scheduled-query-history \
       --identifier "DailyErrorMonitoring" \
       --start-time 1743379200 \
       --end-time 1743465600 \
       --max-results 10
   ```

1. Untuk memfilter berdasarkan status eksekusi, tambahkan `--execution-statuses` parameter:

   ```
   aws logs get-scheduled-query-history \
       --identifier "DailyErrorMonitoring" \
       --start-time 1743379200 \
       --end-time 1743465600 \
       --max-results 1 \
       --execution-statuses "SUCCEEDED"
   ```

------
#### [ API ]

**Untuk melihat riwayat eksekusi (API)**
+ Gunakan `GetScheduledQueryHistory` tindakan untuk mengambil riwayat eksekusi:

  ```
  {
      "identifier": "DailyErrorMonitoring",
      "startTime": 1743379200,
      "endTime": 1743465600,
      "maxResults": 10,
      "executionStatuses": ["SUCCEEDED", "FAILED"]
  }
  ```

------

Riwayat eksekusi menampilkan:
+ **Status eksekusi** - Berjalan, Selesai, Gagal, Batas Waktu, atau InvalidQuery
+ **Waktu yang dipicu** - Saat kueri dijalankan
+ **Tujuan** - Status pemrosesan untuk setiap tujuan yang dikonfigurasi termasuk S3 dan EventBridge
+ **Pesan galat** - Detail tentang kegagalan dalam eksekusi kueri atau pemrosesan tujuan

# Memperbarui kueri terjadwal
<a name="scheduled-queries-updating"></a>

Ubah konfigurasi kueri terjadwal Anda untuk mengubah string kueri, jadwal, tujuan, atau peran eksekusi saat persyaratan Anda berkembang.

Anda dapat memperbarui aspek apa pun dari kueri terjadwal, termasuk string kueri, ekspresi jadwal, tujuan, dan peran eksekusi. Perubahan segera berlaku untuk eksekusi di masa depan.

------
#### [ Console ]

**Untuk memperbarui kueri terjadwal (konsol)**

1. Di konsol CloudWatch Log, pilih **Kueri terjadwal**, **Lihat kueri terjadwal**.

1. Pilih kueri terjadwal yang ingin Anda perbarui.

1. Pilih **Edit**.

1. Ubah konfigurasi sesuai kebutuhan.

1. Pilih **Simpan perubahan**.

------
#### [ AWS CLI ]

**Untuk memperbarui kueri terjadwal (AWS CLI)**
+ Gunakan `update-scheduled-query` perintah untuk memodifikasi kueri terjadwal yang ada:

  ```
  aws logs update-scheduled-query \
      --identifier "arn:aws:logs:us-east-1:111122223333:scheduled-query:5e0c0228-1c29-4d26-904f-59f1f1ba3c8f" \
      --description "Monitor for ERROR level logs daily" \
      --query-language "LogsQL" \
      --query-string "fields @timestamp, @message | filter @message like /ERROR/" \
      --log-group-identifiers "/aws/lambda/my-function-1" "/aws/lambda/my-function-2"
  ```

------
#### [ API ]

**Untuk memperbarui kueri terjadwal (API)**

1. Gunakan `UpdateScheduledQuery` tindakan untuk mengubah konfigurasi kueri terjadwal:

   ```
   {
       "identifier": "arn:aws:logs:us-east-1:111122223333:scheduled-query:5e0c0228-1c29-4d26-904f-59f1f1ba3c8f",
       "queryString": "fields @timestamp, @message | filter @message like /WARNING|ERROR/ | stats count() by bin(5m)",
       "scheduleExpression": "cron(0 */2 * * ? *)",
       "state": "ENABLED"
   }
   ```

1. Untuk memperbarui beberapa parameter konfigurasi sekaligus:

   ```
   {
       "identifier": "arn:aws:logs:us-east-1:111122223333:scheduled-query:5e0c0228-1c29-4d26-904f-59f1f1ba3c8f",
       "queryString": "fields @timestamp, @message, @level | filter @level = 'ERROR'",
       "scheduleExpression": "cron(0 8,12,16 * * ? *)",
       "executionRoleArn": "arn:aws:iam::111122223333:role/UpdatedScheduledQueryRole",
       "logGroupIdentifiers": ["/aws/lambda/my-function", "/aws/lambda/another-function"],
       "destinationConfiguration": {
           "s3Configuration": {
               "destinationIdentifier": "s3://111122223333-sqn-results-bucket/processed-results",
               "roleArn": "arn:aws:iam::111122223333:role/Admin"
           }
       }
   }
   ```

------