Anda dapat mengonfigurasi kebijakan pemberitahuan untuk memberi tahu Anda setiap kali pesan tertentu muncul di log yang disertakan. Misalnya, jika ingin mengetahui kapan log audit mencatat pesan akses data tertentu, Anda dapat menerima notifikasi saat pesan tersebut muncul. Jenis kebijakan pemberitahuan ini disebut kebijakan pemberitahuan berbasis log. Dokumen ini menjelaskan cara melakukan hal berikut, menggunakan konsol Google Cloud dan Cloud Monitoring API:
- Membuat dan menguji kebijakan pemberitahuan berbasis log.
- Mengedit kebijakan pemberitahuan berbasis log.
- Menghapus kebijakan pemberitahuan berbasis log.
Sebelum memulai
Tinjau Perbandingan pemberitahuan untuk menentukan apakah kebijakan pemberitahuan berbasis log cocok untuk data dalam log Anda. Contoh:
Kebijakan pemberitahuan berbasis log tidak beroperasi pada log yang dikecualikan.
Anda tidak dapat menggunakan kebijakan pemberitahuan berbasis log untuk mendapatkan jumlah dari log. Untuk mendapatkan jumlah, Anda harus menggunakan metrik berbasis log.
Untuk membuat dan mengelola kebijakan pemberitahuan berbasis log, peran Identity and Access Management Anda harus menyertakan izin yang dijelaskan dalam Izin untuk kebijakan pemberitahuan berbasis log.
Membuat kebijakan pemberitahuan berbasis log menggunakan Logs Explorer
Anda dapat membuat kebijakan pemberitahuan berbasis log dari halaman Logs Explorer di konsol Google Cloud atau menggunakan Monitoring API. Bagian ini menjelaskan cara membuat kebijakan pemberitahuan berbasis log menggunakan Logs Explorer. Untuk informasi Monitoring API, lihat Membuat kebijakan pemberitahuan berbasis log menggunakan Monitoring API.
Antarmuka Logs Explorer akan memandu Anda melalui langkah-langkah berikut:
- Berikan nama dan deskripsi untuk kebijakan pemberitahuan.
- Pilih log yang notifikasinya ingin Anda terima.
- Tetapkan waktu antara notifikasi.
- Tetapkan waktu untuk penutupan insiden otomatis.
- Tentukan siapa yang akan diberi tahu.
Misalnya, anggap Anda memiliki aplikasi yang menulis entri log syslog
dengan tingkat keparahan NOTICE
saat aplikasi mengubah alamat jaringan.
Entri log untuk perubahan alamat jaringan menyertakan payload JSON yang terlihat
seperti berikut:
"jsonPayload": { "type": "Configuration change", "action": "Set network address", "result": "IP_ADDRESS", }
Anda ingin membuat kebijakan pemberitahuan berbasis log yang memberi tahu Anda
saat alamat IPv4 yang tidak valid muncul di kolom jsonPayload.result
entri log di syslog
dengan tingkat keparahan NOTICE
.
Untuk membuat kebijakan pemberitahuan ini, lakukan hal berikut:
-
Di konsol Google Cloud, buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Gunakan panel Query untuk membuat kueri yang cocok dengan pesan yang ingin Anda gunakan dalam kebijakan pemberitahuan berbasis log.
Misalnya, untuk menemukan entri log dengan tingkat keparahan
NOTICE
dalam logsyslog
yang memiliki alamat IP yang tidak valid dalam payload JSON, Anda dapat menggunakan kueri berikut:log_id("syslog") severity = "NOTICE" jsonPayload.result !~ "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}$"
Klik Run query untuk memvalidasi kueri.
Di toolbar Query results, luaskan menu Actions, lalu pilih add_alert Create log alert.
Di panel Detail pemberitahuan, beri nama dan deskripsi pada kebijakan pemberitahuan:
Masukkan nama untuk kebijakan pemberitahuan Anda di kolom Alert Policy Name. Misalnya: "Alamat jaringan: nilai IPv4 tidak valid".
Pilih opsi dari menu Tingkat keparahan kebijakan. Insiden dan notifikasi menampilkan tingkat keparahan.
Masukkan deskripsi untuk kebijakan pemberitahuan Anda. Anda juga dapat menyertakan informasi yang mungkin membantu penerima notifikasi mendiagnosis masalah. String berikut merangkum alasan notifikasi:
Log-based alerting policy in project ${project} detected an invalid IPv4 value.
Untuk mengetahui informasi tentang cara memformat dan menyesuaikan konten kolom ini, lihat Menggunakan Markdown dan variabel dalam template dokumentasi.
Untuk melanjutkan ke langkah berikutnya, klik Berikutnya.
Di panel Choose logs to include in the alert, periksa kueri dan hasil dengan mengklik Preview logs.
Sebaiknya buat kueri di panel Query Logs Explorer. Kueri yang Anda buat di panel Kueri juga ditampilkan di panel ini, misalnya:
log_id("syslog") severity = "NOTICE" jsonPayload.result !~ "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}$"
Anda dapat mengedit kueri di panel ini, jika perlu. Jika Anda mengedit kueri, periksa hasilnya dengan mengklik Pratinjau log.
Klik Berikutnya.
Pilih waktu minimum antarnotifikasi. Nilai ini memungkinkan Anda mengontrol jumlah notifikasi yang Anda dapatkan dari Pemantauan jika kondisi ini terpenuhi beberapa kali. Untuk contoh ini, pilih 5 menit dari opsi.
Opsional: Pilih durasi penutupan insiden otomatis. Secara default, durasi tutup otomatis insiden ditetapkan ke 7 hari.
Klik Berikutnya.
Pilih satu atau beberapa saluran notifikasi untuk kebijakan pemberitahuan Anda. Untuk contoh ini, pilih saluran notifikasi email.
Jika sudah mengonfigurasi saluran notifikasi email, Anda dapat memilih saluran tersebut dari daftar. Jika belum, klik Kelola saluran notifikasi dan tambahkan saluran email. Untuk informasi tentang cara membuat saluran notifikasi, lihat Membuat dan mengelola saluran notifikasi.
Klik Simpan.
Kebijakan pemberitahuan berbasis log Anda kini siap diuji.
Menguji contoh kebijakan pemberitahuan berbasis log
Untuk menguji kebijakan pemberitahuan yang Anda buat, Anda dapat menulis entri log secara manual yang cocok dengan kueri. Untuk menulis entri log, lakukan hal berikut:
Konfigurasikan entri log berikut dengan mengubah variabel
PROJECT_ID
menjadi project ID Anda:{ "entries": [ { "logName": "projects/PROJECT_ID/logs/syslog", "jsonPayload": { "type": "Configuration change", "action": "Set network address", "result": "999.027.405.1", }, "severity": "NOTICE", "resource": { "type": "generic_task", "labels" : { "project_id": "PROJECT_ID", "location": "us-east1", "namespace": "fake-task-2", "job": "write-log-entry", "task_id": "11", }, }, }, ], }
Buka halaman referensi
logEntries.write
, atau klik tombol berikut:Salin entri log yang telah Anda konfigurasi sebelumnya.
Di panel Coba API ini, lakukan hal berikut:
Ganti konten kolom Isi permintaan di API Explorer dengan entri log yang Anda salin pada langkah sebelumnya.
Klik Jalankan. Jika diminta, ikuti alur autentikasi.
Jika panggilan
logEntries.write
berhasil, Anda akan mendapatkan kode respons200
HTTP dan isi respons kosong,{}
. Untuk informasi selengkapnya tentang APIs Explorer, lihat Menggunakan APIs Explorer dalam dokumentasi Pemantauan; cara kerja APIs Explorer sama dengan Logging API.
Entri log cocok dengan filter yang ditentukan untuk kebijakan pemberitahuan dengan cara berikut:
- Nilai
logName
menentukan logsyslog
yang ada di project Google Cloud Anda. - Nilai
severity
untuk entri log ini adalahNOTICE
. - Nilai
jsonPayload.result
bukan alamat IPv4 yang valid.
Setelah Anda menulis entri log, urutan berikut akan terjadi:
- Entri log baru akan muncul di Logs Explorer. Entri log memenuhi kondisi kebijakan pemberitahuan.
- Insiden akan terbuka di Cloud Monitoring.
Anda akan menerima notifikasi untuk insiden tersebut. Jika Anda mengonfigurasi saluran notifikasi email, notifikasi akan terlihat seperti screenshot berikut:
Anda dapat mengklik Lihat insiden di email untuk melihat insiden di Cloud Monitoring. Untuk mengetahui informasi selengkapnya tentang insiden, lihat Mengelola insiden untuk kebijakan pemberitahuan berbasis log.
Skenario lainnya: Pemberitahuan tentang log audit
Contoh di bagian berjudul Membuat kebijakan pemberitahuan berbasis log bersifat buatan; Anda biasanya tidak membuat kebijakan pemberitahuan, lalu secara manual menulis entri log yang memenuhi kondisi kebijakan pemberitahuan. Entri log biasanya ditulis oleh aplikasi atau layanan lainnya. Namun, sumber entri log tidak penting; untuk kebijakan pemberitahuan berbasis log, yang penting adalah kueri yang Anda gunakan untuk memilih entri log.
Bagian berikut menjelaskan skenario realistis untuk kebijakan pemberitahuan berbasis log berdasarkan konten log audit. Setiap skenario mengilustrasikan cara membuat kueri yang memilih entri log audit yang sesuai. Jika tidak, prosedur untuk membuat kebijakan pemberitahuan berbasis log sama seperti yang ditunjukkan dalam Membuat pemberitahuan berbasis log.
Kebijakan pemberitahuan yang memantau akses manusia ke secret
Misalkan project Anda menyimpan secret di Secret Manager, dan beberapa secret ini hanya ditujukan untuk digunakan oleh akun layanan. Kecuali dalam keadaan yang tidak biasa, pengguna manusia tidak pernah mengakses secret ini.
Jika Anda telah mengaktifkan logging audit untuk Secret Manager, setiap upaya yang berhasil mengakses secret akan membuat entri log audit. Setiap entri menyertakan nama secret dan identitas pemanggil.
Anda dapat membuat kebijakan pemberitahuan berbasis log yang memberi tahu Anda saat pengguna manusia mengakses secret.
Berikut adalah kutipan entri log audit yang ditulis oleh Secret Manager. Cuplikan ini menunjukkan kolom yang berguna untuk membuat kueri pemberitahuan berbasis log:
{ "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "serviceName": "secretmanager.googleapis.com", "methodName": "google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion", "authenticationInfo": { "principalEmail": "my-svc-account@PROJECT_ID.", "serviceAccountDelegationInfo": [], "principalSubject": "serviceAccount:my-svc-account@PROJECT_ID." }, ... }, ... }
Subkolom protoPayload
berikut sangat menarik:
@type
: menunjukkan bahwa entri log ini adalah entri log audit.serviceName
: mencatat layanan yang menulis entri log audit. Gunakan kolom ini untuk mengidentifikasi entri yang ditulis oleh Secret Manager.methodName
: mengidentifikasi metode yang digunakan untuk menulis entri log audit ini. Gunakan kolom ini untuk mengidentifikasi tindakan yang menyebabkan entri ini dibuat. Dalam contoh ini, metodenya adalahAccessSecretVersion
.authenticationInfo.principalEmail
: mencatat akun yang memanggil metode di kolommethodName
. Nilai yang diharapkan untuk kolom ini adalah akun layanan, yang diakhiri dengan.
Untuk menemukan entri log akses secret oleh pengguna manusia, cari
entri log audit yang ditulis oleh Secret Manager. Anda ingin
menemukan entri log tempat metode AccessSecretVersion
dipanggil oleh
prinsipal yang tidak diakhiri dengan .
Kueri berikut mengisolasi entri log ini:
protoPayload.@type = "type.googleapis.com/google.cloud.audit.AuditLog" protoPayload.serviceName = "secretmanager.googleapis.com" protoPayload.methodName =~ "AccessSecretVersion$" protoPayload.authenticationInfo.principalEmail !~ "$"
Untuk membuat kebijakan pemberitahuan berbasis log bagi akses manusia ke secret, gunakan kueri ini di panel Choose logs to include in the alert.
Kebijakan pemberitahuan yang memantau peristiwa dekripsi
Analisis dalam contoh sebelumnya dapat disesuaikan dengan layanan lain. Misalnya, jika Anda menggunakan Cloud Key Management Service untuk mengenkripsi dan mendekripsi data sensitif, Anda dapat menggunakan log audit yang dihasilkan oleh Cloud KMS untuk mendeteksi kapan pengguna manusia mendekripsi nilai.
Untuk menemukan entri log dekripsi yang dilakukan oleh pengguna manusia, cari
entri log audit yang ditulis oleh Cloud KMS. Anda ingin menemukan
entri log tempat metode Decrypt
dipanggil oleh
akun utama yang tidak diakhiri dengan , yang menunjukkan
akun layanan.
Kueri berikut mengisolasi entri log ini:
protoPayload.@type = "type.googleapis.com/google.cloud.audit.AuditLog" protoPayload.serviceName = "cloudkms.googleapis.com" protoPayload.methodName = "Decrypt" protoPayload.authenticationInfo.principalEmail !~ "$"
Untuk membuat kebijakan pemberitahuan berbasis log untuk dekripsi yang dilakukan oleh pengguna manusia, gunakan kueri ini di panel Pilih log yang akan disertakan dalam pemberitahuan.
Mengelola kebijakan pemberitahuan berbasis log di Monitoring
Anda dapat melihat, mengedit, dan menghapus kebijakan pemberitahuan berbasis log menggunakan Konsol Google Cloud untuk Monitoring atau menggunakan Monitoring API. Dokumen ini menjelaskan cara mengelola kebijakan pemberitahuan menggunakan konsol Google Cloud. Untuk informasi tentang cara menggunakan Monitoring API untuk mengelola kebijakan pemberitahuan, lihat Mengelola kebijakan pemberitahuan menurut API.
Untuk melihat daftar semua kebijakan pemberitahuan di project Google Cloud Anda, lakukan salah satu hal berikut:
Untuk menavigasi dari Logging:
-
Di konsol Google Cloud, buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Di toolbar Query results, luaskan menu Actions, lalu pilih edit Manage log alerts.
-
Untuk menavigasi dari Monitoring:
-
Di konsol Google Cloud, buka halaman notifications Alerting:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
Untuk melihat semua kebijakan dan mengaktifkan pemfilteran, di panel Policies, klik See all policies.
-
Kedua tindakan ini akan mengarahkan Anda ke halaman Kebijakan Monitoring, yang mencantumkan semua kebijakan pemberitahuan di project Google Cloud Anda.
Untuk membatasi kebijakan pemberitahuan yang tercantum, tambahkan filter.
Setiap filter terdiri dari nama dan nilai. Misalnya,
Anda dapat menetapkan nilai agar cocok persis dengan nama kebijakan,
atau pencocokan sebagian. Pencocokan tidak peka huruf besar/kecil.
Jika Anda menentukan beberapa filter, filter tersebut akan digabungkan secara implisit
oleh AND
logis, kecuali jika Anda menyisipkan filter OR
.
Screenshot berikut mencantumkan kebijakan pemberitahuan yang diaktifkan dan
dibuat setelah 1 Januari 2021:
Dari halaman Kebijakan, Anda dapat mengedit, menghapus, menyalin, mengaktifkan, atau menonaktifkan kebijakan pemberitahuan:
Untuk mengedit atau menyalin kebijakan, klik more_vert Opsi lainnya, lalu pilih salah satu opsi. Mengedit dan menyalin kebijakan mirip dengan prosedur yang dijelaskan dalam Membuat kebijakan pemberitahuan berbasis log. Anda dapat mengubah dan, dalam beberapa kasus, menghapus nilai di kolom. Setelah selesai, klik Simpan.
Anda juga dapat mengedit kebijakan pemberitahuan berbasis log dengan mengklik namanya dalam daftar kebijakan.
Untuk menghapus kebijakan, klik Opsi lainnya more_vert, lalu pilih Hapus. Dalam dialog konfirmasi, pilih Hapus.
Untuk mengaktifkan atau menonaktifkan kebijakan pemberitahuan, klik tombol alih yang terletak di bawah judul Diaktifkan.
Membuat kebijakan pemberitahuan berbasis log menggunakan Monitoring API
Anda dapat membuat kebijakan pemberitahuan berbasis log menggunakan Monitoring API. Anda memberikan informasi yang sama ke Monitoring API yang Anda berikan saat menggunakan Logs Explorer di konsol Google Cloud:
- Nama dan deskripsi untuk kebijakan pemberitahuan.
- Log yang notifikasinya ingin Anda terima.
- Waktu antara notifikasi.
- Waktu untuk penutupan insiden secara otomatis.
- Orang yang akan diberi tahu.
Untuk membuat kebijakan pemberitahuan menggunakan Monitoring API, Anda harus membuat objek AlertPolicy
dan mengirimkannya ke metode alertPolicies.create
.
Sebelum dapat menggunakan Monitoring API, Anda harus mengaktifkan API dan memiliki otorisasi untuk menggunakannya. Untuk informasi selengkapnya, lihat dokumentasi berikut:
Struktur kebijakan pemberitahuan
Monitoring API mewakili kebijakan pemberitahuan menggunakan
struktur AlertPolicy
.
Struktur AlertPolicy
memiliki beberapa struktur tersemat, termasuk
deskripsi kondisi kebijakan pemberitahuan. Kebijakan pemberitahuan berbasis log berbeda dengan kebijakan pemberitahuan berbasis metrik dalam hal berikut:
- Anda menjelaskan kondisi menggunakan jenis kondisi
LogMatch
. Kebijakan pemberitahuan berbasis metrik menggunakan jenis kondisi yang berbeda. - Kebijakan pemberitahuan berbasis log hanya dapat memiliki satu kondisi.
- Anda menentukan waktu antara notifikasi dan periode penutupan insiden otomatis
dengan menyertakan struktur
AlertStrategy
. Kebijakan pemberitahuan berbasis metrik tidak menyertakan waktu antara notifikasi.
Bagian ini menjelaskan cara membuat kebijakan pemberitahuan berbasis log. Kebijakan ini berbeda dengan kebijakan pemberitahuan berbasis metrik dalam jenis kondisi yang Anda gunakan. Untuk kebijakan pemberitahuan berbasis log,
jenis kondisinya adalah LogMatch
. Saat Anda menggunakan
Monitoring API untuk mengelola kebijakan pemberitahuan, tidak ada
perbedaan dalam cara Anda mencantumkan, mengedit, atau menghapus kebijakan berbasis metrik dan log.
Mengelola kebijakan pemberitahuan menurut API menjelaskan cara membuat, mencantumkan, mengedit, dan menghapus kebijakan pemberitahuan menggunakan Monitoring API.
Aturan notifikasi
Saat Anda membuat kebijakan pemberitahuan berbasis log, Logging akan membuat objek internal yang disebut aturan notifikasi. Logging
menggunakan aturan notifikasi untuk mencocokkan entri log
yang masuk dengan filter kebijakan pemberitahuan Anda, lalu membuat notifikasi
saat entri cocok dengan kriteria filter. Anda tidak berinteraksi langsung
dengan aturan notifikasi. Namun, untuk membuat kebijakan pemberitahuan berbasis log, Anda harus memiliki izin logging.notificationRules.create
.
Mendesain kebijakan pemberitahuan
Bagian berjudul Membuat kebijakan pemberitahuan berbasis log menggunakan Logs Explorer menjelaskan salah satu cara untuk membuat kebijakan pemberitahuan berbasis log.
Bagian tersebut menunjukkan cara membuat
kebijakan pemberitahuan berbasis log yang memberi tahu Anda saat entri log syslog
memiliki
tingkat
keparahan NOTICE
dan alamat IPv4 yang tidak valid di kolom
jsonPayload.result
.
Untuk membuat kebijakan pemberitahuan berbasis log yang sama menggunakan Monitoring API, Anda membuat objek AlertPolicy
yang terlihat seperti struktur JSON berikut:
{ "displayName": "Network address: invalid IPv4 value (API)", "documentation": { "content": "Log-based alerting policy in project ${project} detected an invalid IPv4 value.", "mimeType": "text/markdown" }, "conditions": [ { "displayName": "Log match condition: invalid IP addr (API)", "conditionMatchedLog": { "filter": "log_id(\"syslog\") severity = \"NOTICE\" jsonPayload.result !~ \"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.|$)){4}$\"", }, } ], "combiner": "OR", "alertStrategy": { "notificationRateLimit": { "period": "300s" }, "autoClose": "604800s", }, "notificationChannels": [ "projects/PROJECT_ID/notificationChannels/CHANNEL_ID" ] }
Kode JSON ini menentukan informasi yang sama dengan yang Anda tentukan saat membuat kebijakan pemberitahuan berbasis log menggunakan Logs Explorer. Bagian berikut memetakan konten struktur AlertPolicy
ini ke langkah-langkah yang Anda ikuti saat menggunakan Logs Explorer untuk membuat pemberitahuan berbasis log. Nilai
kolom conditionMatchedLog
adalah struktur LogMatch
.
Berikan nama dan deskripsi
Kebijakan pemberitahuan memiliki nama tampilan dan dokumentasi terkait yang
disertakan dengan notifikasi untuk membantu responden. Di Penjelajah Log, kolom ini disebut Nama Pemberitahuan dan Deskripsi Pemberitahuan. Anda mewakili
nilai ini dalam struktur AlertPolicy
sebagai berikut:
{ "displayName": "Network address: invalid IPv4 value (API)", "documentation": { "content": "Log-based alerting policy in project ${project} detected an invalid IPv4 value.", "mimeType": "text/markdown" }, ... }
Dalam contoh ini, nilai untuk displayName
menyertakan "(API)"
sehingga Anda dapat membedakan antara dua contoh kebijakan
saat melihat daftar kebijakan di konsol Google Cloud. Halaman
Kebijakan Pemantauan mencantumkan kebijakan berdasarkan nama tampilan dan
menunjukkan apakah kebijakan didasarkan pada metrik atau log. Untuk informasi selengkapnya,
lihat
Mengelola kebijakan pemberitahuan berbasis log di Monitoring.
Kolom documentation
menyertakan, di subkolom content
, deskripsi
yang mungkin Anda berikan saat menggunakan Logs Explorer. Subkolom kedua,
mimeType
diperlukan saat Anda menentukan nilai untuk kolom documentation
.
Satu-satunya nilai yang valid adalah "text/markdown"
.
Pilih log yang notifikasinya ingin Anda terima
Kebijakan pemberitahuan berbasis log memiliki satu kondisi. Di Logs Explorer,
Anda menentukan kondisi saat memberikan kueri di kolom Define log entries to
alert on. Anda mewakili nilai ini dalam struktur AlertPolicy
sebagai
berikut:
{ ... "conditions": [ { "displayName": "Log match condition: invalid IP addr (API)", "conditionMatchedLog": { "filter": "log_id(\"syslog\" severity = \"NOTICE\" jsonPayload.result !~ \"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.|$)){4}$\"", }, } ], "combiner": "OR", ... }
Kolom conditions
menggunakan daftar struktur Condition
, walaupun kebijakan pemberitahuan berbasis log hanya boleh memiliki satu kondisi. Setiap Condition
memiliki nama tampilan dan deskripsi
kondisi.
Nilai kolom
displayName
adalah deskripsi singkat kondisi. Saat Anda menggunakan Logs Explorer untuk membuat kebijakan pemberitahuan berbasis log, nama tampilannya selalu "Log match condition". Saat menggunakan Monitoring API, Anda dapat memberikan nama tampilan yang lebih akurat. Nilai wajib diisi.Nilai kolom
conditionMatchedLog
adalah strukturLogMatch
, dan nilai kolomfilter
adalah kueri yang Anda tentukan di Logs Explorer. Karena kueri ini disediakan sebagai nilai kolom JSON, seluruh kueri akan muncul dalam tanda kutip, dan tanda kutip apa pun dalam kueri itu sendiri harus di-escape dengan karakter\
(backslash).Struktur
LogMatch
juga menyertakan kolomlabelExtractors
opsional. Anda dapat menggunakan ekstraktor label untuk membuat label khusus dari entri log, lalu mereferensikan label tersebut dalam notifikasi.Misalnya, untuk mengekstrak nilai label
labels."compute.googleapis.com/resource_id"
dari entri log ke dalam label yang disebutvm_identifier
, kondisi sebelumnya mungkin terlihat seperti ini:"conditions": [ { "displayName": "Log match condition: invalid IP addr (API)", "conditionMatchedLog": { "filter": "log_id(\"syslog\" severity = \"NOTICE\" jsonPayload.result !~ \"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.|$)){4}$\")", "labelExtractors": { "vm_identifier": "EXTRACT(labels.\"compute.googleapis.com/resource_id\")" } }, } ],
Gunakan fungsi
EXTRACT
untuk mencocokkan seluruh nilai, atau gunakanREGEXP_EXTRACT
untuk mencocokkan substring berdasarkan ekspresi reguler. Fungsi ini sama dengan yang digunakan untuk ekstraksi label dalam metrik berbasis log; lihat Membuat label untuk mengetahui informasi selengkapnya.Anda dapat menggunakan label yang diekstrak ini dalam dokumentasi kebijakan pemberitahuan, sehingga label tersebut dilaporkan dalam notifikasi. Di kolom
documentation
dalam kebijakan pemberitahuan, Anda merujuk ke label yang diekstrak menggunakan variabel berbentuk${log.extracted_label.KEY}
, dengan KEY adalah nama yang Anda berikan ke label yang diekstrak.Contoh berikut menunjukkan cara merujuk ke kunci untuk label
vm_identifier
yang diekstrak, sehingga nilai label loglabels."compute.googleapis.com/resource_id"
disertakan dalam notifikasi:"documentation": { "content": "Log-based alerting policy in project ${project} detected an invalid IPv4 value on VM with ID ${log.extracted_label.vm_identifier}.", "mimeType": "text/markdown" },
Nilai untuk kolom combiner
menentukan cara menggabungkan hasil
beberapa kondisi dalam kebijakan pemberitahuan berbasis metrik. Anda hanya dapat menggunakan satu kondisi dalam kebijakan pemberitahuan berbasis log, dan Anda harus menentukan kolom combiner
dengan nilai "OR"
. Anda tidak dapat membuat kebijakan pemberitahuan berbasis log dengan beberapa kondisi.
Menetapkan nilai notifikasi dan penutupan otomatis
Kebijakan pemberitahuan berbasis log menentukan waktu minimum antar-notifikasi. Di Logs Explorer, Anda memilih nilai dari menu Waktu
antara notifikasi.
Anda merepresentasikan nilai ini dalam struktur AlertPolicy
dengan menentukan
nilai, dalam detik, untuk kolom period
dari
struktur NotificationRateLimit
yang disematkan dalam
struktur AlertStrategy
.
Demikian pula, kebijakan pemberitahuan mencakup periode untuk menutup insiden secara otomatis. Nilai defaultnya adalah 7 hari.
Di Penjelajah Log, Anda dapat memilih nilai lain dari menu Durasi penutupan otomatis insiden. Opsi ini sesuai dengan
kolom autoclose
dalam struktur API AlertStrategy
.
Saat Anda menggunakan kolom ini, tentukan nilai dalam detik. Nilai minimumnya adalah
1.800 detik, atau
30 menit.
{ ... "alertStrategy": { "notificationRateLimit": { "period": "300s" }, "autoClose": "604800s", }, ... }
Nilai untuk kolom period
dalam contoh ini, 300s
, setara dengan
5 menit. Nilai autoclose
, 604800s
, setara dengan 7 hari.
Tentukan siapa yang akan diberi tahu
Kebijakan pemberitahuan dapat menyertakan daftar saluran notifikasi.
Di Logs Explorer, Anda memilih saluran dari menu.
Anda merepresentasikan nilai ini dalam struktur AlertPolicy
dengan memberikan
daftar satu atau beberapa nama resource untuk objek
NotificationChannel
yang dikonfigurasi:
{ ... "notificationChannels": [ "projects/PROJECT_ID/notificationChannels/CHANNEL_ID" ] }
Saat Anda membuat saluran notifikasi, saluran tersebut akan diberi nama resource. Untuk informasi tentang cara mengambil daftar saluran notifikasi yang tersedia, yang mencakup nama resource-nya, lihat Mengambil saluran dalam dokumentasi Pemantauan. Anda tidak dapat mendapatkan ID saluran menggunakan konsol Google Cloud.
Mengirim kebijakan pemberitahuan ke Monitoring API
Untuk membuat kebijakan pemberitahuan menggunakan Monitoring API, Anda harus membuat objek AlertPolicy
dan mengirimkannya ke metode alertPolicies.create
. Anda dapat memanggil alertPolicies.create
menggunakan Google Cloud CLI, yang memanggil Monitoring API secara langsung.
Anda juga dapat membuat kebijakan pemberitahuan berbasis log
dengan menggunakan library klien untuk
C#, Go, Java, Python, dan Ruby. Anda mungkin juga dapat menggunakan library klien
lain; library untuk bahasa Anda harus menyertakan
jenis kondisi LogMatch
.
Untuk membuat kebijakan pemberitahuan menggunakan gcloud CLI, lakukan langkah-langkah berikut:
Masukkan representasi JSON kebijakan pemberitahuan Anda ke dalam file teks, misalnya, ke dalam file yang disebut
alert-invalid-ip.json
.Teruskan file JSON ini ke gcloud CLI menggunakan perintah berikut:
gcloud alpha monitoring policies create --policy-from-file="alert-invalid-ip.json"
Jika berhasil, perintah ini akan menampilkan nama resource kebijakan baru, misalnya:
Created alerting policy [projects/PROJECT_ID/alertPolicies/POLICY_ID].
Untuk membuat kebijakan pemberitahuan dengan memanggil alertPolicies.create
secara langsung,
Anda dapat menggunakan alat APIs Explorer sebagai berikut:
Buka halaman referensi
alertPolicies.create
.Di panel Coba API ini, lakukan hal berikut:
Di kolom
name
, masukkan nilai berikut:projects/PROJECT_ID
Salin representasi JSON kebijakan pemberitahuan Anda dan ganti konten kolom Isi permintaan di API Explorer dengan kebijakan pemberitahuan yang disalin.
Klik Jalankan.
Jika panggilan
alertPolicies.create
berhasil, Anda akan mendapatkan kode respons HTTP200
dan isi respons kosong,{}
. Untuk mengetahui informasi selengkapnya tentang API Explorer, lihat Menggunakan API Explorer dalam dokumentasi Pemantauan.
Untuk informasi selengkapnya tentang cara membuat kebijakan pemberitahuan menggunakan Monitoring API, lihat Membuat kebijakan. Contoh dalam dokumen tersebut menggunakan jenis kondisi untuk kebijakan pemberitahuan berbasis metrik, tetapi prinsipnya sama.
Menguji kebijakan pemberitahuan
Untuk menguji kebijakan pemberitahuan baru, Anda dapat menggunakan prosedur yang sama seperti yang dijelaskan dalam Menguji contoh pemberitahuan berbasis log.
Contoh: Membuat kebijakan pemberitahuan saat entri log berisi string teks
Contoh ini menggunakan Konsol Google Cloud untuk membuat kebijakan pemberitahuan, Logs Explorer untuk melihat entri log, dan Google Cloud CLI untuk menulis entri log:
-
Di konsol Google Cloud, buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Di panel Query, masukkan kueri berikut setelah memperbarui nilai PROJECT_ID:
logName="projects/PROJECT_ID/logs/test-log" textPayload:"Oops"
Kueri menelusuri log dengan nama
test-log
untuk entri log yang memiliki kolomtextPayload
yang berisi string "Oops".Di toolbar Query results, luaskan menu Actions, lalu pilih add_alert Create log alert. Kemudian, selesaikan dialog.
Anda harus memasukkan nama untuk kebijakan, seperti
Alert on Oops
. Kueri yang Anda masukkan di langkah sebelumnya akan otomatis disertakan dalam kebijakan pemberitahuan.Untuk menguji kebijakan pemberitahuan, buka Cloud Shell, lalu jalankan perintah berikut:
gcloud logging write test-log --severity=ERROR --payload-type=text 'This log entry contains Oops'
Perintah sebelumnya menulis entri ke log bernama
test-log
. Entri ini memiliki tingkat keparahanERROR
dan menyertakan kolomtextPayload
.Di Logs Explorer, klik Run query.
Setelah tampilan dimuat ulang, Anda dapat melihat detail entri log yang Anda tulis di langkah sebelumnya.
-
Di konsol Google Cloud, buka halaman notifications Alerting:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
Panel Insiden menampilkan insiden dan detail tentang kebijakan pemberitahuan.
Jika Anda tidak melihat insiden saat membuka halaman Pemberitahuan, tunggu beberapa menit, lalu muat ulang halaman.
Anda tidak akan melihat insiden lain atau mendapatkan notifikasi lain jika langsung mengulangi perintah Google Cloud CLI. Setelan kebijakan pemberitahuan menentukan jangka waktu minimum antar-insiden. Anda dapat melihat dan mengubah setelan tersebut dengan mengedit kebijakan.