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 keparahannyaERROR
. Hasil kueri menulistrue
ke kolomnotify
jika persentase tersebut melebihi 25%. Selanjutnya, Anda membuat kondisi, menetapkan jenis ke Boolean, dan mengonfigurasi kondisi untuk memantau kolomnotify
.
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
-
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 membuat kueri bucket log
- 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.
- Untuk mengaktifkan kueri yang berjalan di slot BigQuery yang direservasi, lakukan hal berikut:
- Jika bucket log yang ingin Anda buat kuerinya tidak memiliki set data tertaut, buat set data tertaut untuk bucket tersebut.
- Konfigurasikan slot BigQuery yang direservasi dan tetapkan ke project Google Cloud Anda.
-
Untuk mendapatkan izin yang diperlukan guna membuat dan mengelola kebijakan pemberitahuan berbasis SQL, minta administrator untuk memberi Anda peran IAM berikut:
-
Monitoring Editor (
roles/monitoring.editor
) di project Anda -
Logging SqlAlertWriter (
roles/logging.sqlAlertWriter
) di project Anda -
BigQuery Job User (
roles/bigquery.jobUser
) di project Anda -
BigQuery Data Viewer (
roles/bigquery.dataViewer
) di set data tertaut Anda
Untuk informasi tentang cara memberikan akses ke set data, lihat Memberikan akses ke set data.
-
Monitoring Editor (
Pastikan Akun Layanan Pemantauan ada dan memiliki peran berikut:
- Peran Agen Layanan Pemantauan (
monitoring.notificationServiceAgent
) di project Anda. - 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.
- Peran Agen Layanan Pemantauan (
- 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.
Di konsol Google Cloud, buka halaman Logs Storage:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Membuat kebijakan pemberitahuan berbasis SQL
Untuk membuat kebijakan pemberitahuan berbasis SQL, lakukan langkah berikut:
Konsol Google Cloud
-
Di konsol Google Cloud, buka halaman Log Analytics:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
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.
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 settings Select query engine, lalu klik BigQuery. Tombol Run query berubah menjadi Run on BigQuery.
Pada tabel Results di halaman Log Analytics, klik add_alert Create alert.
Halaman Log Analytics menampilkan jendela Create sql alert policy, yang menampilkan kueri Anda di bagian SQL query.
Di bagian Alert condition, konfigurasikan kondisi dan jadwal kebijakan pemberitahuan Anda.
Konfigurasikan detail pemberitahuan kebijakan pemberitahuan Anda.
Opsional: Tambahkan label kebijakan pemberitahuan dan dokumentasi.
Tambahkan saluran notifikasi, lalu klik Berikutnya.
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:
- Harga BigQuery
- Cloud Logging dalam dokumentasi harga Google Cloud Observability
- Cloud Monitoring dalam dokumentasi harga Google Cloud Observability
Langkah selanjutnya
Untuk informasi tentang cara membuat diagram dari data Log Analytics, lihat Membuat diagram hasil kueri dengan Log Analytics.
Untuk mengetahui informasi tentang cara mengelola insiden untuk kebijakan pemberitahuan ini, lihat Insiden untuk kebijakan pemberitahuan berbasis SQL.