Halaman ini menguraikan proses pembuatan aturan pemberitahuan berdasarkan log dan metrik dari lingkungan yang terisolasi dari internet Google Distributed Cloud (GDC) untuk memfasilitasi pemantauan proaktif dan respons insiden yang lebih cepat.
GDC memungkinkan Anda menentukan aturan pemberitahuan berdasarkan metrik atau log project Anda. Aturan ini akan otomatis memicu pemberitahuan saat kondisi tertentu terpenuhi. Berikut adalah jenis aturan pemberitahuan yang dapat Anda tentukan:
- Aturan berbasis metrik: Memicu pemberitahuan berdasarkan data numerik yang dikumpulkan dari
aplikasi atau infrastruktur Anda. Misalnya, Anda dapat membuat aturan untuk memicu pemberitahuan jika penggunaan CPU melebihi 80%. Buat aturan berbasis metrik menggunakan
konsol GDC atau definisi resource kustom
MonitoringRule
. - Aturan berbasis log: Memicu pemberitahuan berdasarkan analisis data log. Peringatan ini memungkinkan Anda mengidentifikasi dan merespons peristiwa atau pola tertentu dalam log, seperti pesan error atau aktivitas tidak wajar. Buat aturan berbasis log menggunakan
konsol GDC atau definisi resource kustom
LoggingRule
.
Aturan berbasis metrik dan berbasis log mengandalkan ekspresi bahasa kueri untuk menentukan kondisi yang memicu pemberitahuan. Ekspresi ini memfilter dan menganalisis data yang masuk, mengevaluasi apakah kriteria yang ditentukan terpenuhi.
Saat kondisi terpenuhi untuk pertama kalinya, pemberitahuan akan bertransisi ke status tertunda. Jika kondisi benar selama periode durasi berikut yang Anda tentukan, pemberitahuan akan berpindah ke status terbuka. Pada saat itu, sistem akan mengirimkan notifikasi.
Untuk memberikan konteks lebih lanjut dan memfasilitasi pengelolaan pemberitahuan yang efisien, Anda dapat menambahkan label dan anotasi ke aturan pemberitahuan:
Label: Key-value pair yang mengategorikan dan mengidentifikasi pemberitahuan. Gunakan label untuk informasi seperti berikut:
- Tingkat keparahan (error, kritis, peringatan)
- Kode pemberitahuan
- Nama fasilitas
Anotasi: Memberikan informasi tambahan yang tidak mengidentifikasi untuk memperkaya notifikasi. Anotasi dapat mencakup informasi berikut:
- Pesan error mendetail
- Ekspresi yang relevan
- Link ke runbook atau panduan pemecahan masalah
Sebelum memulai
Untuk mendapatkan izin yang Anda perlukan untuk mengelola aturan berbasis metrik, minta Admin IAM Organisasi atau Admin IAM Project Anda untuk memberi Anda salah satu peran resource MonitoringRule
terkait.
Di sisi lain, untuk mendapatkan izin yang Anda perlukan untuk mengelola aturan berbasis log, minta Admin IAM Organisasi atau Admin IAM Project Anda untuk memberi Anda salah satu peran resource LoggingRule
yang terkait.
Bergantung pada tingkat akses dan izin yang Anda perlukan, Anda mungkin mendapatkan peran pembuat, editor, atau pelihat untuk resource ini dalam organisasi atau project. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan izin IAM.
Menentukan aturan pemberitahuan
Anda dapat menentukan aturan pemberitahuan di namespace project menggunakan konsol GDC (lebih disarankan) atau API pemantauan dan logging untuk menerapkan resource kustom.
Pilih salah satu metode berikut untuk menentukan aturan pemberitahuan berdasarkan metrik atau log:
Konsol
Membuat aturan pemberitahuan dalam grup aturan dari konsol GDC:
- Di konsol GDC, pilih project.
- Di menu navigasi, pilih Operations > Alerting.
- Klik tab Alerting Policy.
- Klik Buat Grup Aturan.
Pilih jenis aturan pemberitahuan:
- Pilih Metrik untuk aturan pemberitahuan berdasarkan metrik.
- Pilih Log untuk aturan pemberitahuan berdasarkan log.
Konfigurasi grup aturan pemberitahuan:
- Di kolom Nama grup aturan pemberitahuan, masukkan nama untuk grup aturan.
- Di kolom Interval evaluasi aturan, masukkan jumlah detik untuk setiap interval.
Di kolom Batas, masukkan jumlah maksimum pemberitahuan.
Di bagian Aturan pemberitahuan, klik
Tambahkan Aturan.Di jendela Buat aturan pemberitahuan, masukkan detail berikut:
- Nama untuk aturan pemberitahuan.
Ekspresi untuk aturan pemberitahuan (Gunakan LogQL untuk aturan berbasis log dan PromQL untuk aturan berbasis metrik).
Durasi dalam detik sebelum transisi pemberitahuan dari tertunda menjadi terbuka.
Tingkat keparahan, seperti Error atau Peringatan.
Nama singkat untuk mengidentifikasi resource terkait.
Kode pemberitahuan untuk mengidentifikasi pemberitahuan.
URL runbook atau informasi pemecahan masalah.
Pesan atau deskripsi pemberitahuan.
Opsional: Tambahkan Label dan Anotasi sebagai pasangan nilai kunci.
Klik Simpan untuk membuat aturan.
Klik Buat untuk membuat grup aturan.
Grup aturan muncul dalam daftar Grup aturan pemberitahuan. Anda dapat mengelompokkan lebih banyak aturan pemberitahuan dalam grup aturan ini.
API
Buat aturan pemberitahuan dari API pemantauan atau logging:
Tentukan resource kustom
MonitoringRule
(aturan berbasis metrik) atauLoggingRule
(aturan berbasis log) dalam file YAML.Spesifikasi resource lengkap menunjukkan contoh untuk aturan berbasis metrik dan berbasis log.
Ganti nilai berikut dalam file YAML sesuai kebutuhan Anda:
Kolom Deskripsi namespace
Namespace project. name
Nama untuk konfigurasi aturan pemberitahuan. source
Sumber log untuk aturan pemberitahuan. Opsi yang valid adalah operational
danaudit
. Hanya berlaku untuk resourceLoggingRule
.interval
Durasi interval evaluasi aturan dalam detik. limit
Opsional. Jumlah maksimum pemberitahuan. Setel ke 0
untuk pemberitahuan tanpa batas.alertRules
Definisi untuk membuat aturan pemberitahuan. alertRules.alert
Nama pemberitahuan. alertRules.expr
Ekspresi LogQL untuk aturan berbasis log atau ekspresi PromQL untuk aturan berbasis metrik. Ekspresi harus dievaluasi ke nilai benar atau salah untuk menentukan apakah pemberitahuan bertransisi ke status tertunda. alertRules.for
Opsional. Durasi dalam detik sebelum transisi pemberitahuan dari tertunda ke terbuka. Defaultnya adalah 0
detik (pemicuan langsung).alertRules.labels
Pasangan nilai kunci untuk mengategorikan dan mengidentifikasi pemberitahuan. Atribut ini memerlukan label berikut: severity
,code
, danresource
.alertRules.annotations
Opsional. Metadata yang tidak mengidentifikasi ke pemberitahuan sebagai key-value pair. Simpan file YAML.
Terapkan konfigurasi resource ke server Management API dalam namespace yang sama dengan aturan pemberitahuan berbasis metrik atau berbasis log Anda:
kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yaml
Ganti kode berikut:
KUBECONFIG_PATH
: jalur ke file kubeconfig untuk server Management API.ALERT_RULE_NAME
: nama file definisiMonitoringRule
atauLoggingRule
.
Spesifikasi resource lengkap
Bagian ini berisi template YAML yang dapat Anda gunakan untuk membuat aturan pemberitahuan berbasis metrik dan berbasis log dengan menerapkan resource kustom. Jika membuat notifikasi dari konsol GDC, Anda dapat melewati bagian ini.
Tentukan aturan pemberitahuan di resource kustom berikut:
MonitoringRule
: aturan berbasis metrik.LoggingRule
: aturan berbasis log.
MonitoringRule
File YAML berikut menunjukkan template untuk resource kustom MonitoringRule
. Untuk mengetahui informasi selengkapnya, lihat
dokumentasi referensi API.
# Configures either an alert or a target record for precomputation.
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: MONITORING_RULE_NAME
spec:
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure metric-based alert rules.
alertRules:
# Define an alert name.
- alert: my-metric-based-alert
# Define the PromQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# The duration in seconds before an alert transitions from pending to open.
# Optional.
# Default value: '0s'
for: 0s
# Define labels to add or overwrite.
# Map of key-value pairs.
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to the alert
# Additional labels are optional.
labels:
severity: error
code: 202
resource: AIS
another-label: another-value
# Define annotations to add.
# Map of key-value pairs.
# Optional.
# Recommended annotations:
# message: value of the Message field in the user interface.
# expression: value of the Rule field in the user interface.
# runbookurl: URL of the Actions to take field in the user interface.
annotations:
message: my-alert-message
Ganti kode berikut:
PROJECT_NAMESPACE
: namespace project Anda.MONITORING_RULE_NAME
: nama file definisiMonitoringRule
.
LoggingRule
File YAML berikut menunjukkan template untuk resource kustom LoggingRule
. Untuk mengetahui informasi selengkapnya, lihat
dokumentasi referensi API.
# Configures either an alert or a target record for precomputation.
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: LOGGING_RULE_NAME
spec:
# Choose the log source to base alerts on (operational or audit logs).
# Optional.
# Valid options: 'operational' and 'audit'
# Default value: 'operational'
source: operational
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure log-based alert rules.
alertRules:
# Define an alert name.
- alert: my-log-based-alert
# Define the LogQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# The duration in seconds before an alert transitions from pending to open.
# Optional.
# Default value: '0s'
for: 0s
# Define labels to add or overwrite.
# Map of key-value pairs.
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to the alert
# Additional labels are optional.
labels:
severity: warning
code: 202
resource: AIS
another-label: another-value
# Define annotations to add.
# Map of key-value pairs.
# Optional.
# Recommended annotations:
# message: value of the Message field in the user interface.
# expression: value of the Rule field in the user interface.
# runbookurl: URL of the Actions to take field in the user interface.
annotations:
message: my-alert-message
Ganti kode berikut:
PROJECT_NAMESPACE
: namespace project Anda.LOGGING_RULE_NAME
: nama file definisiLoggingRule
.