Memantau hasil kueri SQL dengan kebijakan pemberitahuan

Dokumen ini menjelaskan cara membuat kebijakan pemberitahuan untuk memantau hasil kueri yang Anda jalankan di Log Analytics. Kueri ini ditulis dalam SQL dan harus membuat kueri tampilan kemampuan pengamatan bernama _AllSpans. Kebijakan pemberitahuan akan memberi tahu Anda jika hasil kueri memenuhi kondisi yang Anda tentukan.

Kebijakan pemberitahuan yang Anda buat dari halaman Log Analytics berjalan di mesin BigQuery. Oleh karena itu, data yang dikueri harus dapat diakses melalui set data BigQuery yang ditautkan.

Untuk mengetahui informasi umum tentang Log Analytics, lihat artikel Membuat kueri dan menganalisis rekaman aktivitas dengan Log Analytics.

Cara kerja kebijakan pemberitahuan

Kebijakan pemberitahuan menjelaskan situasi ketika Anda ingin mendapatkan pemberitahuan dan cara penyampaian pemberitahuan tentang insiden. Ada beberapa pendekatan berbeda yang dapat Anda gunakan untuk mendapatkan notifikasi saat konten atau pola muncul di data rekaman aktivitas:

  • Untuk memantau jumlah rentang Cloud Trace yang diserap per bulan, penggunaan kuota, dan kecepatan penyerapan rentang, buat kebijakan pemberitahuan di Cloud Monitoring. Jika Anda belum pernah membuat kebijakan pemberitahuan, lihat Membuat kebijakan pemberitahuan untuk mengetahui informasi mendetail tentang cara menggunakan konsol Cloud Monitoring.

  • Untuk melihat atau menjelajahi masing-masing rekaman aktivitas atau rentang, atau melihat atribut yang dilampirkan ke rentang, gunakan halaman Trace Explorer. Untuk mengetahui informasi tentang halaman tersebut, lihat Menemukan dan menjelajahi rekaman aktivitas.

  • Untuk memantau analisis gabungan data rekaman aktivitas, gabungkan Log Analytics dengan kebijakan pemberitahuan. Dalam skenario ini, Anda menggunakan kueri SQL untuk membuat kueri tampilan _AllSpans di bucket pengamatan bernama _Trace. Terakhir, Anda membuat kebijakan pemberitahuan untuk memantau hasil kueri SQL. Jenis kebijakan pemberitahuan ini disebut kebijakan pemberitahuan berbasis SQL.

    Untuk mempelajari lebih lanjut cara data rekaman aktivitas Anda disimpan, lihat Ringkasan penyimpanan.

    Bagian lain dari dokumen ini menjelaskan cara menggunakan kebijakan pemberitahuan berbasis SQL.

Komponen kebijakan pemberitahuan

Kebijakan pemberitahuan berbasis SQL berisi kondisi dan jadwal:

  • Kondisi berisi kueri, yang merupakan kueri SQL yang mengkueri data Anda. Kondisi juga menentukan kondisi saat hasil kueri menyebabkan Monitoring membuat insiden.

  • Jadwal menentukan seberapa sering kebijakan pemberitahuan menjalankan kuerinya. Jadwal juga menentukan ukuran jendela lihat kembali, yang merupakan filter yang hanya memilih data yang telah diterima sejak kueri dievaluasi sebelumnya. Misalnya, jika Anda menyetel jadwal ke 60 menit, maka kueri akan dijalankan setiap 60 menit menggunakan periode lihat kembali yang memilih data 60 menit terbaru.

Kebijakan pemberitahuan juga berisi daftar saluran notifikasi. Saat kondisi kebijakan pemberitahuan terpenuhi, Cloud Monitoring akan membuat insiden, lalu mengirimkan notifikasi tentang insiden tersebut melalui saluran ini. Insiden adalah catatan data yang menyebabkan kondisi terpenuhi beserta informasi relevan lainnya. Informasi ini dapat membantu Anda memecahkan masalah yang menyebabkan insiden. Anda dapat melihat insiden menggunakan konsol Google Cloud .

Jenis evaluasi untuk kebijakan pemberitahuan berbasis SQL

Kondisi yang memantau hasil kueri SQL mendukung dua jenis evaluasi:

  • Nilai minimum jumlah baris: Kondisi terpenuhi jika jumlah baris dalam hasil kueri lebih besar dari, sama dengan, atau kurang dari nilai minimum.

  • Boolean: Kondisi terpenuhi saat kolom boolean tertentu dalam tabel hasil kueri berisi baris dengan nilai true.

Kebijakan pemberitahuan yang memantau hasil kueri SQL hanya boleh memiliki satu kondisi.

Kebijakan pemberitahuan dan BigQuery

Agar kebijakan pemberitahuan dapat membuat kueri data rekaman aktivitas, Anda harus mengonfigurasi set data BigQuery tertaut. Set data tertaut memungkinkan BigQuery membaca data rekaman aktivitas Anda, dan memungkinkan Anda menjalankan fungsi BigQuery pada data yang ditampilkan oleh kueri SQL Anda.

Saat kebijakan pemberitahuan menjalankan kueri SQL, kueri tersebut dijalankan di mesin BigQuery dalam project tempat kebijakan pemberitahuan ditentukan. Google Cloud Secara default, kueri yang berjalan di mesin BigQuery menggunakan slot sesuai permintaan. Slot on-demand dan slot yang dipesan tunduk pada harga BigQuery.

Anda juga dapat memilih untuk mengonfigurasi reservasi slot BigQuery khusus untuk project Anda:

  1. Buat reservasi dengan slot khusus atau identifikasi reservasi yang ada.
  2. Buat penetapan pemesanan untuk project Anda.

Periode lihat balik dan waktu propagasi insiden

Saat kebijakan pemberitahuan dijadwalkan untuk mengevaluasi kondisinya, Log Analytics menunda eksekusi kueri SQL selama lima menit untuk memberikan waktu bagi Cloud Logging untuk mengindeks data yang diterima selama periode lihat kembali. Misalnya, jika kebijakan pemberitahuan menggunakan periode lihat kembali yang berakhir pada pukul 14.00, maka Log Analytics tidak akan menjalankan kueri SQL hingga pukul 14.05.

Jika kondisi pemberitahuan terpenuhi setelah kueri dijalankan, maka insiden dapat memerlukan waktu hingga dua menit tambahan untuk disebarkan melalui sistem.

Kegagalan kueri

Kueri yang dikeluarkan oleh kebijakan pemberitahuan berbasis SQL dapat gagal karena berbagai alasan, termasuk yang berikut:

  • Akun Layanan Monitoring tidak ada lagi atau tidak lagi memiliki izin yang diperlukan untuk membaca data rekaman aktivitas yang sedang dikueri.

  • Waktu eksekusi kueri melebihi lima menit.

  • Terjadi error internal.

Kueri yang gagal akan menghasilkan entri log yang berisi ID kebijakan pemberitahuan dan status error. Anda dapat menggunakan kebijakan pemberitahuan berbasis log untuk membuat pemberitahuan saat error dicatat.

Sebelum memulai

Bagian ini mengasumsikan bahwa Anda telah menautkan set data BigQuery untuk data rekaman aktivitas.

Sebelum membuat kebijakan pemberitahuan berbasis SQL, selesaikan langkah-langkah berikut:

  1. Untuk mendapatkan izin yang Anda perlukan untuk membuat kueri data rekaman aktivitas dan membuat kebijakan pemberitahuan berbasis SQL, minta administrator untuk memberi Anda peran IAM berikut di project Anda:

  2. Pastikan Akun Layanan Monitoring ada dan memiliki peran berikut:

    1. Monitoring Service Agent (roles/monitoring.notificationServiceAgent) di project Anda.
    2. BigQuery Data Viewer (roles/bigquery.dataViewer) di set data tertaut Anda.

    Jika Akun Layanan Monitoring tidak ada, lihat Pemecahan Masalah: Tidak Ada Akun Layanan Monitoring.

  3. Konfigurasi saluran notifikasi yang ingin Anda gunakan untuk menerima notifikasi apa pun untuk insiden. Untuk tujuan redundansi, sebaiknya Anda membuat beberapa jenis saluran notifikasi. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola saluran notifikasi.

Membuat kebijakan pemberitahuan berbasis SQL

Untuk membuat kebijakan pemberitahuan berbasis SQL, lakukan langkah berikut:

KonsolGoogle Cloud

  1. Di konsol Google Cloud , buka halaman Log Analytics:

    Buka Log Analytics

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. Di halaman Log Analytics, di editor kueri, masukkan kueri SQL yang mengkueri data rekaman aktivitas Anda.

  3. Di toolbar, klik Run on BigQuery.

    Log Analytics menjalankan kueri Anda di mesin BigQuery dan menampilkan hasilnya dalam tabel Results.

    Jika Run on BigQuery tidak ditampilkan, klik Select query engine lalu klik BigQuery. Tombol Jalankan kueri berubah menjadi Jalankan di BigQuery.

  4. Di tabel Hasil pada halaman Log Analytics, klik  Buat pemberitahuan.

    Halaman Log Analytics menampilkan jendela Create sql alert policy, yang menampilkan kueri Anda di bagian SQL query.

  5. Di bagian Kondisi pemberitahuan, konfigurasi kondisi dan jadwal kebijakan pemberitahuan Anda.

  6. Konfigurasi detail pemberitahuan kebijakan pemberitahuan Anda.

    1. Tambahkan saluran notifikasi dan konfigurasi konten notifikasi, seperti baris subjek kustom.

    2. Opsional: Tambahkan label kebijakan pemberitahuan dan dokumentasi.

    3. Klik Berikutnya.

  7. Tinjau kebijakan pemberitahuan Anda, lalu buat dengan mengklik Save.

Cloud Monitoring API

Gunakan metode alertPolicies.create untuk membuat kebijakan pemberitahuan secara terprogram. Jenis kebijakan pemberitahuan Condition Anda harus berupa MonitoringQueryLanguageCondition, yang merupakan instance SqlCondition. Jenis kondisi ini memungkinkan kondisi kebijakan pemberitahuan Anda ditentukan dengan SQL.

Untuk menentukan jadwal, tetapkan nilai periodicity untuk salah satu kolom minutes, hours, atau days. Misalnya, jika Anda ingin kueri berjalan setiap 12 jam, tetapkan periodisitas kolom hours ke 12.

Untuk menentukan kondisi, gunakan kolom berikut:

  • boolean_test: Mengonfigurasi kebijakan pemberitahuan sehingga kondisinya terpenuhi saat baris kolom boolean dalam tabel hasil kueri berisi nilai benar.
  • row_count_test: Mengonfigurasi kebijakan pemberitahuan sehingga kondisinya terpenuhi saat jumlah baris dalam tabel hasil kueri memenuhi nilai minimum tertentu.

Untuk mengetahui daftar lengkap kolom dan definisi, lihat SqlCondition dalam dokumentasi Cloud Monitoring API.

Untuk mengetahui informasi selengkapnya tentang Monitoring API untuk kebijakan pemberitahuan, lihat Mengelola kebijakan pemberitahuan dengan API.

Terraform

  1. Instal dan konfigurasi Terraform untuk project Anda. Untuk konfigurasi App Hub, pilih project host atau project pengelolaan App Hub.

  2. Di Cloud Shell, buka direktori yang berisi konfigurasi Terraform Anda.

  3. Dalam konfigurasi Terraform, konfigurasi instance resource google_monitoring_alert_policy, termasuk condition_sql.

  4. Di Cloud Shell, masukkan terraform apply.

Untuk mengubah kebijakan pemberitahuan, lakukan pengeditan, lalu terapkan kembali konfigurasi Terraform. Untuk mengetahui informasi selengkapnya, lihat Mengelola kebijakan pemberitahuan dengan Terraform.

Untuk informasi umum tentang penggunaan Google Cloud dengan Terraform, lihat Terraform dengan Google Cloud.

Batasan

  • Anda dapat memiliki satu kondisi per kebijakan pemberitahuan berbasis SQL.
  • Kueri yang dikeluarkan oleh kebijakan pemberitahuan berbasis SQL akan gagal jika waktu eksekusinya melebihi lima menit.

  • Terdapat jeda hingga tujuh menit, ditambah waktu eksekusi kueri, antara saat kueri dijadwalkan dan saat insiden dibuat.

Untuk daftar lengkap batas yang terkait dengan kebijakan pemberitahuan, lihat Batas pemantauan.

Langkah berikutnya