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 log. Kebijakan pemberitahuan akan memberi tahu Anda saat hasil kueri memenuhi kondisi yang Anda tentukan. Misalnya, Anda dapat mengonfigurasi kebijakan pemberitahuan sehingga Anda akan diberi tahu saat setidaknya 25% entri log dalam periode tertentu memiliki tingkat keparahan ERROR.

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

Untuk mengetahui informasi umum tentang Log Analytics, lihat Membuat kueri dan menganalisis log dengan Log Analytics.

Cara kerja kebijakan pemberitahuan

Kebijakan pemberitahuan menjelaskan situasi saat Anda ingin mendapatkan pemberitahuan dan cara mendapatkan notifikasi tentang insiden. Ada tiga pendekatan berbeda yang dapat Anda gunakan untuk mendapatkan notifikasi saat konten atau pola muncul dalam data log:

  • Untuk memindai setiap entri log untuk frasa tertentu, buat kebijakan pemberitahuan berbasis log. Gunakan kebijakan pemberitahuan ini saat Anda ingin diberi tahu tentang hal-hal seperti peristiwa terkait keamanan.

  • Untuk memantau peristiwa dalam data entri log, Anda dapat membuat metrik berbasis log, lalu membuat kebijakan pemberitahuan untuk memantau metrik. Jenis kebijakan pemberitahuan ini efektif jika Anda ingin memantau tren data entri log dari waktu ke waktu. Namun, metode ini tidak seefektif jika Anda hanya mengharapkan beberapa peristiwa.

  • Untuk memantau analisis gabungan data entri log, gabungkan Log Analytics dengan kebijakan pemberitahuan. Dalam skenario ini, Anda mengupgrade bucket log untuk menggunakan Log Analytics dan membuat set data BigQuery tertaut untuk bucket log tersebut. Selanjutnya, Anda menggunakan Log Analytics, yang mendukung kueri SQL, untuk mengkueri tampilan log di bucket log. Terakhir, Anda akan membuat kebijakan pemberitahuan untuk memantau hasil kueri SQL. Jenis kebijakan pemberitahuan ini disebut kebijakan pemberitahuan berbasis SQL.

Kebijakan pemberitahuan berbasis SQL paling efektif untuk mengevaluasi nilai yang tepat di beberapa entri log. Jika Anda ingin mengevaluasi setiap entri log, buat kebijakan pemberitahuan berbasis log.

Bagian selanjutnya 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 tampilan log. Kondisi ini juga menentukan keadaan saat hasil kueri menyebabkan Monitoring membuat insiden.

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

Kebijakan pemberitahuan juga berisi daftar saluran notifikasi. Saat kondisi kebijakan pemberitahuan terpenuhi, Cloud Monitoring akan membuat insiden, lalu mengirim notifikasi tentang insiden tersebut melalui saluran ini. Insiden adalah catatan data yang menyebabkan kondisi terpenuhi bersama dengan 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 SQL mendukung dua jenis evaluasi:

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

    Misalnya, Anda ingin mendapatkan notifikasi saat lebih dari 50 entri log dalam periode lihat balik memiliki tingkat keparahan lebih dari 200. Anda membuat kueri yang melaporkan entri log dengan tingkat keparahan lebih dari 200. Kemudian, Anda mengonfigurasi kondisi, memilih Batas jumlah baris, dan menetapkan batas ke 50.

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

    Misalnya, Anda ingin mendapatkan notifikasi saat lebih dari 25% entri log dalam periode lihat balik memiliki tingkat keparahan ERROR. Anda membuat kueri yang menghitung persentase entri log yang tingkat keparahannya ERROR. Hasil kueri menulis true ke kolom notify jika persentase tersebut melebihi 25%. Selanjutnya, Anda membuat kondisi, menetapkan jenis ke Boolean, dan mengonfigurasi kondisi untuk memantau kolom notify.

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

Kebijakan pemberitahuan dan BigQuery

Saat kebijakan pemberitahuan menjalankan kueri SQL, kueri tersebut dijalankan menggunakan slot BigQuery yang dicadangkan di project Google Cloud tempat kebijakan pemberitahuan ditentukan. Untuk mengetahui informasi selengkapnya, lihat Menggunakan pemesanan slot.

Agar kebijakan pemberitahuan dapat menggunakan slot BigQuery yang dicadangkan untuk mengkueri tampilan log, bucket log yang menghosting tampilan log harus dikonfigurasi agar memiliki set data BigQuery tertaut. Set data tertaut memungkinkan BigQuery membaca data di bucket log, dan memungkinkan Anda menjalankan fungsi BigQuery pada data yang ditampilkan oleh kueri SQL.

Sebelum memulai

  1. Untuk mendapatkan izin yang diperlukan guna menggunakan Log Analytics, minta administrator untuk memberi Anda peran IAM berikut di bucket log atau tampilan log:

    • Untuk membuat kueri bucket log _Required dan _Default: Logs Viewer (roles/logging.viewer).
    • Untuk membuat kueri semua tampilan log dalam project: Logs View Accessor (roles/logging.viewAccessor).
    • Untuk membuat kueri log di tampilan log tertentu: Buat kebijakan IAM untuk tampilan log, atau batasi peran Logs View Accessor (roles/logging.viewAccessor) ke tampilan log tertentu. Untuk informasi selengkapnya, lihat Mengontrol akses ke tampilan log.

    Untuk informasi tentang peran tambahan, lihat Peran logging.
  2. Untuk tampilan log yang ingin Anda buat kuerinya, buka halaman Logs Storage dan pastikan bucket log yang menyimpan tampilan log tersebut telah diupgrade untuk menggunakan Log Analytics. Jika perlu, upgrade bucket log.
  3. Di konsol Google Cloud, buka halaman Logs Storage:

    Buka Penyimpanan Log

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

  4. Untuk mengaktifkan kueri yang berjalan di slot BigQuery yang direservasi, lakukan hal berikut:
    1. Jika bucket log yang ingin Anda buat kuerinya tidak memiliki set data tertaut, buat set data tertaut untuk bucket tersebut.
    2. Konfigurasikan slot BigQuery yang direservasi dan tetapkan ke project Google Cloud Anda.

  5. Untuk mendapatkan izin yang diperlukan guna membuat dan mengelola kebijakan pemberitahuan berbasis SQL, minta administrator untuk memberi Anda peran IAM berikut:

    Untuk informasi tentang cara memberikan akses ke set data, lihat Memberikan akses ke set data.

  6. Pastikan Akun Layanan Pemantauan ada dan memiliki peran berikut:

    1. Peran Agen Layanan Pemantauan (monitoring.notificationServiceAgent) di project Anda.
    2. Peran BigQuery Data Viewer (roles/bigquery.dataViewer) di set data tertaut Anda.

    Jika Akun Layanan Pemantauan tidak ada, lihat Memecahkan Masalah: Tidak Ada Akun Layanan Pemantauan.

  7. Konfigurasikan saluran notifikasi yang ingin Anda gunakan untuk menerima notifikasi terkait insiden. Untuk tujuan redundansi, sebaiknya Anda membuat beberapa jenis saluran notifikasi. Untuk informasi selengkapnya, lihat Membuat dan mengelola saluran notifikasi.

Membuat kebijakan pemberitahuan berbasis SQL

Untuk membuat kebijakan pemberitahuan berbasis SQL, lakukan langkah berikut:

Konsol Google 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 untuk tampilan log.

    Untuk informasi selengkapnya tentang cara menulis kueri SQL untuk tampilan log, lihat Mengkueri tampilan log.

  3. Di toolbar, klik Run on BigQuery.

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

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

  4. Pada tabel Results di halaman Log Analytics, klik  Create alert.

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

  5. Di bagian Alert condition, konfigurasikan kondisi dan jadwal kebijakan pemberitahuan Anda.

  6. Konfigurasikan detail pemberitahuan kebijakan pemberitahuan Anda.

    1. Opsional: Tambahkan label kebijakan pemberitahuan dan dokumentasi.

    2. Tambahkan saluran notifikasi, lalu 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 Condition kebijakan pemberitahuan Anda harus berupa conditionSql, 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 informasi selengkapnya tentang Monitoring API untuk kebijakan pemberitahuan, lihat Mengelola kebijakan pemberitahuan melalui API.

Batasan

Saat kebijakan pemberitahuan menjalankan kueri SQL terjadwal, kebijakan pemberitahuan akan memperkenalkan penundaan 15 menit untuk memberi waktu bagi entri log untuk diterapkan ke bucket log. Jika entri log memerlukan waktu lebih dari 15 menit untuk diterima, kebijakan pemberitahuan tidak akan mengevaluasinya.

Pengenalan penundaan 15 menit ini memengaruhi waktu antara saat entri log dibuat dan saat Monitoring mendeteksi saat kondisi terpenuhi. Misalnya, Anda memiliki kueri SQL yang dijadwalkan untuk dijalankan setiap 30 menit. Saat kebijakan pemberitahuan mengevaluasi kondisi secara berkala, kebijakan tersebut akan mengkueri entri log dengan stempel waktu antara 15 dan 45 menit yang lalu.

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

Harga

Untuk informasi tentang harga, lihat dokumen berikut:

Langkah selanjutnya