View a markdown version of this page

Memahami konsep kueri terjadwal - CloudWatch Log Amazon

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

Memahami konsep kueri terjadwal

Sebelum membuat kueri terjadwal, pahami konsep-konsep kunci ini yang memengaruhi cara kueri Anda berjalan dan di mana hasil dikirimkan.

Pemisahan peran IAM

Kueri terjadwal memerlukan dua peran IAM terpisah: satu untuk mengeksekusi kueri dan satu lagi untuk mengirimkan hasil ke tujuan seperti bucket Amazon S3, bus EventBridge acara Amazon, atau tabel pencarian. Memahami mengapa pemisahan ini ada membantu Anda mengonfigurasi izin dengan benar dan menggunakan manfaat keamanan dan operasional yang diberikannya.

Arsitektur dua peran membagi tanggung jawab antara akses data dan pengiriman data. Peran eksekusi kueri mengakses data log Anda dan menjalankan kueri, sementara peran pengiriman tujuan menulis hasil ke tujuan yang Anda pilih. Pemisahan ini mengikuti prinsip hak istimewa terendah — setiap peran hanya memiliki izin yang dibutuhkan untuk fungsi spesifiknya.

Peran eksekusi kueri

Mengiz CloudWatch inkan Log menjalankan kueri CloudWatch Logs Insights atas nama Anda. Peran ini memerlukan izin untuk mengakses grup log Anda dan menjalankan kueri, tetapi tidak memerlukan akses ke sumber daya tujuan. Izin yang diperlukan:

  • logs:StartQuery

  • logs:StopQuery

  • logs:GetQueryResults

  • logs:DescribeLogGroups

  • logs:Unmaskjika perlu membuka kedok data

Untuk KMS-encrypted grup log: kms:Decrypt dan kms:DescribeKey izin untuk kunci KMS yang digunakan untuk mengenkripsi grup log. Izin ini perlu ditambahkan juga.

Persyaratan hubungan kepercayaan: Peran eksekusi kueri harus menyertakan kebijakan kepercayaan yang memungkinkan layanan CloudWatch Logs (logs.amazonaws.com) untuk mengambil peran tersebut. Tanpa hubungan kepercayaan ini, kueri terjadwal akan gagal dengan kesalahan izin.

Contoh kebijakan kepercayaan untuk peran eksekusi kueri:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Contoh kebijakan izin untuk peran eksekusi kueri:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "logs:DescribeLogGroups" ], "Resource": "*" } ] }
Peran pengiriman tujuan

Memungkinkan CloudWatch Log untuk mengirimkan hasil kueri ke tujuan yang Anda pilih. Peran ini hanya memerlukan izin untuk layanan tujuan tertentu, mengikuti prinsip hak istimewa paling sedikit. Izin yang diperlukan bervariasi menurut jenis tujuan.

Persyaratan hubungan kepercayaan: Peran pengiriman tujuan juga harus menyertakan kebijakan kepercayaan yang memungkinkan layanan CloudWatch Logs (logs.amazonaws.com) untuk mengambil peran tersebut.

Contoh kebijakan izin untuk peran pengiriman tujuan S3:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::your-scheduled-query-results-bucket/*" } ] }

Contoh kebijakan izin untuk peran pengiriman tujuan tabel pencarian:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLookupTable", "logs:UpdateLookupTable", "logs:GetQueryResults" ], "Resource": "*" } ] }

Pemisahan ini memberikan manfaat praktis untuk operasi Anda. Dari perspektif keamanan, jika Anda perlu mengubah tempat hasil dikirimkan, Anda hanya mengubah peran pengiriman tujuan tanpa mengubah izin eksekusi kueri. Untuk kepatuhan dan audit, Anda dapat dengan jelas melacak peran mana yang mengakses data log sensitif dan peran mana yang menulis ke sistem eksternal. Ini membuatnya lebih mudah untuk menunjukkan bahwa infrastruktur analisis log Anda mengikuti praktik terbaik keamanan.

Cross-region dan penggunaan lintas akun

Kueri terjadwal dibuat di wilayah tertentu dan berjalan di wilayah tersebut. Namun, Anda dapat menanyakan grup log dan memberikan hasil di seluruh wilayah dan akun. Anda perlu mengatur satu atau lebih AWS akun sebagai akun pemantauan dan menautkannya dengan beberapa akun sumber. Akun pemantauan adalah AWS akun pusat yang dapat melihat dan berinteraksi dengan data pengamatan yang dihasilkan dari akun sumber. Akun sumber adalah AWS akun individu yang menghasilkan data observabilitas untuk sumber daya yang berada di dalamnya. Akun sumber membagikan data observabilitas mereka dengan akun pemantauan. Jadi, Anda dapat mengatur kueri terjadwal dari akun pemantauan menggunakan grup log dari semua akun yang ditautkan.

Mengkueri grup log lintas wilayah

Kueri terjadwal Anda dapat mengakses grup log di wilayah mana pun. Tentukan grup log menggunakan format ARN lengkapnya:arn:aws:logs:region:account-id:log-group:log-group-name. Peran eksekusi kueri kebutuhan logs:StartQuery dan logs:GetQueryResults izin untuk grup log di semua wilayah target.

penting

Saat menanyakan grup log atau memberikan hasil di seluruh wilayah, data log melintasi batas regional. Pertimbangkan hal berikut:

  • Persyaratan residensi data - Pastikan transfer data lintas wilayah sesuai dengan kebijakan tata kelola data organisasi Anda dan persyaratan peraturan

  • Biaya transfer data - transfer Cross-region data dikenakan biaya tambahan

  • Latensi jaringan - Kueri yang mengakses grup log di wilayah yang jauh mungkin mengalami latensi yang lebih tinggi

Untuk kinerja dan efisiensi biaya yang optimal, buat kueri terjadwal di wilayah yang sama dengan grup log utama Anda.

Pendekatan alternatif: Gunakan sentralisasi CloudWatch Log untuk mereplikasi data log dari beberapa akun dan wilayah ke akun pemantauan pusat. Ini memungkinkan Anda membuat kueri terjadwal di satu wilayah yang mengakses semua log terpusat Anda, menghindari kueri lintas wilayah dan menyederhanakan pengelolaan izin IAM.

Jadwalkan ekspresi dan penanganan zona waktu

Jadwal yang Anda tentukan menentukan kapan kueri Anda berjalan dan seberapa sering kueri dieksekusi. Memilih ekspresi jadwal yang tepat memengaruhi kapan Anda menerima hasil dan berapa banyak data yang Anda kueri. Memahami jenis ekspresi membantu Anda memilih antara kesederhanaan dan presisi.

Ekspresi Cron memberikan kontrol yang tepat atas waktu, memungkinkan Anda menentukan waktu yang tepat, hari dalam seminggu, atau hari dalam sebulan. Gunakan ekspresi cron saat Anda membutuhkan kueri untuk dijalankan pada jam kerja tertentu atau menyelaraskan dengan jadwal operasional. Di konsol Anda juga dapat menjadwalkan kueri menggunakan opsi kalender mudah.

Ekspresi Cron

Jalankan kueri pada waktu tertentu. Format: cron(minute hour day-of-month month day-of-week year). Contoh:

  • cron(0 9 * * ? *)- Setiap hari pukul 09.00 UTC

  • cron(0 18 ? * MON-FRI *)- Hari kerja pukul 18:00 UTC

  • cron(0 0 1 * ? *)- Hari pertama setiap bulan pada tengah malam UTC

  • cron(0 12 ? * SUN *)- Setiap hari Minggu pada siang hari UTC

  • cron(30 8 1 1 ? *)- 1 Januari pukul 8:30 WIB

Semua kueri terjadwal berjalan dalam UTC, terlepas dari zona waktu lokal Anda atau di mana AWS sumber daya Anda berada. Ini sangat penting ketika Anda menjadwalkan kueri untuk jam kerja atau analisis yang sensitif terhadap waktu. Misalnya, jika bisnis Anda beroperasi di Waktu Timur AS dan Anda menginginkan laporan harian pada pukul 9 pagi ET, Anda perlu memperhitungkan offset UTC (14:00 UTC selama waktu musim panas, 13:00 UTC jika tidak). Rencanakan ekspresi jadwal Anda dengan mempertimbangkan UTC untuk memastikan kueri berjalan pada waktu yang ditentukan.

Memilih bahasa query

Kueri terjadwal mendukung tiga bahasa kueri yang berbeda, dan pilihan Anda memengaruhi cara Anda menulis kueri dan seberapa mudah tim Anda dapat mempertahankannya. Bahasa yang tepat tergantung pada persyaratan analisis Anda dan keterampilan tim Anda yang ada.

Jika Anda terutama memfilter dan menggabungkan data CloudWatch log, Logs Insights Query Language menawarkan sintaks yang paling mudah. Untuk transformasi data kompleks di mana Anda perlu membentuk ulang atau memperkaya data melalui beberapa langkah, pendekatan pipeline PPL membuat logika lebih mudah diikuti. Ketika Anda perlu melakukan gabungan atau agregasi kompleks yang mirip dengan operasi database, SQL menyediakan sintaks yang sudah dikenal yang dapat diadopsi oleh tim berpengalaman database dengan cepat.

CloudWatch Bahasa Kueri Wawasan Log (CWLI)

Purpose-built untuk analisis log dengan sintaks intuitif. Terbaik untuk:

  • Text-based analisis log dan penyaringan

  • Time-series agregasi dan statistik

  • Tim yang baru mengenal analisis log

OpenSearch Layanan Bahasa Pemrosesan Pipa (PPL)

Pipeline-based bahasa query dengan kemampuan transformasi data yang kuat. Terbaik untuk:

  • Transformasi dan pengayaan data yang kompleks

  • Multi-step alur kerja pengolahan data

  • Tim yang akrab dengan pemrosesan berbasis pipeline

OpenSearch Bahasa Kueri Terstruktur Layanan (SQL)

Sintaks SQL standar untuk kueri gaya database yang sudah dikenal. Terbaik untuk:

  • Gabungan dan agregasi kompleks

  • Intelijen bisnis dan pelaporan

  • Tim dengan pengalaman SQL yang kuat

Pemilihan tujuan dan kasus penggunaan

Di mana Anda mengirim hasil kueri menentukan apa yang dapat Anda lakukan dengannya. Pilihan ini membentuk seluruh alur kerja hilir Anda—apakah Anda membangun analitik jangka panjang, memicu respons otomatis, atau keduanya. Memahami kekuatan setiap jenis tujuan membantu Anda merancang arsitektur yang tepat untuk kasus penggunaan Anda.

Tujuan Amazon S3 dioptimalkan untuk penyimpanan dan pemrosesan batch. Saat Anda perlu menyimpan hasil kueri selama berbulan-bulan atau bertahun-tahun, menganalisis tren dari waktu ke waktu, atau memasukkan data ke platform analitik, Amazon S3 menyediakan penyimpanan hemat biaya dengan retensi tak terbatas. EventBridge tujuan dioptimalkan untuk otomatisasi real-time. Ketika hasil kueri harus memicu tindakan segera — seperti mengirim peringatan, memulai alur kerja, atau memperbarui sistem — EventBridge memberikan hasil sebagai peristiwa yang dapat ditanggapi aplikasi Anda secara instan. Secara default semua peristiwa penyelesaian kueri secara otomatis dikirim sebagai peristiwa ke bus peristiwa default, memungkinkan integrasi dengan sistem pemrosesan hilir, fungsi Lambda, atau arsitektur berbasis peristiwa lainnya. Hasil hanya dipublikasikan ke tujuan ketika kueri berhasil dijalankan. Tujuan tabel pencarian dioptimalkan untuk menjaga data referensi tetap terkini. Tujuan tabel pencarian secara otomatis mengisi atau menyegarkan tabel pencarian yang ditentukan dengan hasil kueri pada setiap eksekusi terjadwal, sehingga kueri lain dapat mereferensikan data terbaru dengan perintah tersebutlookup.

Tujuan Amazon S3

Simpan hasil kueri sebagai file JSON untuk retensi jangka panjang dan pemrosesan batch. Terbaik untuk:

  • Analisis historis dan pengarsipan data

  • Integrasi dengan data lake dan platform analitik

  • Persyaratan kepatuhan dan audit

  • Cost-effective penyimpanan set hasil besar

EventBridge tujuan

Kirim hasil kueri sebagai peristiwa untuk pemrosesan dan otomatisasi waktu nyata. Anda dapat mengambil hasil kueri menggunakan QueryID yang dikirim dalam acara hingga 30 hari hanya karena kami menyimpan hasil selama 30 hari. Terbaik untuk:

  • Memicu respons otomatis terhadap hasil kueri

  • Integrasi dengan alur kerja tanpa server dan fungsi Lambda

  • Real-time sistem peringatan dan notifikasi

  • Event-driven arsitektur dan layanan mikro

Cari tujuan tabel

Secara otomatis membuat atau menyegarkan tabel pencarian dengan hasil kueri pada setiap eksekusi terjadwal. Setiap penyegaran adalah pengganti penuh dari konten tabel. Terbaik untuk:

  • Menjaga data referensi terkini untuk lookup perintah dalam kueri log Anda

  • Mempertahankan daftar izin, denylists, atau inventaris entitas yang berasal dari data log

  • Memperkaya kueri dengan ringkasan aktivitas terbaru, seperti pengguna aktif atau daftar sumber daya

Format dan struktur hasil kueri

Untuk tujuan Amazon S3 - Hasil kueri dikirimkan dalam format JSON dengan struktur yang sama dengan respons GetQueryResults API. Untuk Amazon, EventBridge memahami format hasil kueri terjadwal membantu Anda merancang alur kerja pemrosesan dan integrasi hilir.

Hasil query disampaikan dalam format JSON dengan struktur sebagai berikut:

{ "version": "0", "id": "be72061b-eca2-e068-a7e1-83e01d6fe807", "detail-type": "Scheduled Query Completed", "source": "aws.logs", "account": "123456789012", "time": "2025-11-18T11:31:48Z", "region": "us-east-1", "resources": [ "arn:aws:logs:us-east-1:123456789012:scheduled-query:477b4380-b098-474e-9c5e-e10a8cc2e6e7" ], "detail": { "queryId": "2038fd57-ab4f-4018-bb2f-61d363f4a004", "queryString": "fields @timestamp, @message, @logStream, @log\n| sort @timestamp desc\n| limit 10000", "logGroupIdentifiers": [ "/aws/lambda/my-function" ], "status": "Complete", "startTime": 1763465460, "statistics": { "recordsMatched": 0, "recordsScanned": 0, "estimatedRecordsSkipped": 0, "bytesScanned": 0, "estimatedBytesSkipped": 0, "logGroupsScanned": 1 } } }

Elemen kunci meliputi:

  • statistics- Metrik kinerja kueri termasuk catatan yang cocok, dipindai, byte diproses, dan perkiraan data yang dilewati

  • startTime- Ketika eksekusi query dimulai (stempel waktu Unix)

  • queryString- Kueri aktual yang dieksekusi

  • queryId- ID kueri dari kueri yang menggunakan hasil yang dapat diambil

  • logGroupIdentifiers- Daftar grup log yang ditanyakan

  • status- Status eksekusi kueri (Selesai, Gagal, dll.)