Halaman ini menguraikan proses pembuatan aturan pemberitahuan berdasarkan log dan metrik dari lingkungan Google Distributed Cloud (GDC) dengan air gap untuk memfasilitasi pemantauan proaktif dan respons insiden yang lebih cepat.
GDC memungkinkan Anda menentukan aturan pemberitahuan berdasarkan metrik atau log project Anda. Aturan ini otomatis memicu pemberitahuan saat kondisi tertentu terpenuhi. Berikut adalah jenis alert rule 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. Dengan pemberitahuan ini, Anda dapat mengidentifikasi dan merespons peristiwa atau pola tertentu dalam log, seperti pesan error atau aktivitas yang tidak biasa. 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, serta mengevaluasi apakah kriteria yang ditentukan terpenuhi.
Saat pertama kali kondisi terpenuhi, pemberitahuan akan beralih ke status tertunda. Jika kondisi terpenuhi selama periode durasi berikut yang Anda tentukan, pemberitahuan akan beralih ke status open. Pada saat itu, sistem akan mengirimkan pemberitahuan.
Untuk memberikan konteks lebih lanjut dan memfasilitasi pengelolaan pemberitahuan yang efisien, Anda dapat menambahkan label dan anotasi ke aturan pemberitahuan:
Label: Pasangan nilai kunci yang mengategorikan dan mengidentifikasi pemberitahuan. Gunakan label untuk informasi seperti berikut:
- Tingkat keparahan (error, kritis, peringatan)
- Kode pemberitahuan
- Nama resource
Anotasi: Memberikan informasi non-identitas pribadi tambahan untuk memperkaya notifikasi. Anotasi dapat menyertakan informasi berikut:
- Pesan error mendetail
- Ekspresi yang relevan
- Link ke runbook atau panduan pemecahan masalah
Sebelum memulai
Untuk mengelola aturan berbasis metrik atau berbasis log, Anda harus memiliki izin yang diperlukan.
### Meminta peran organisasi IAM untuk aturan berbasis metrik
Hubungi Admin Organisasi IAM Anda untuk meminta peran berikut:
- MonitoringRule PA Creator (
monitoringrule-pa-creator): membuat resource kustomMonitoringRule. - MonitoringRule PA Editor (
monitoringrule-pa-editor): mengedit atau mengubah resource kustomMonitoringRule. MonitoringRule PA Viewer (
monitoringrule-pa-viewer): melihat resource kustomMonitoringRule.Meminta peran project IAM untuk aturan berbasis metrik
Hubungi IAM Project Admin Anda untuk meminta peran berikut:
- MonitoringRule Editor (
monitoringrule-editor): mengedit atau mengubah resource kustomMonitoringRuledi namespace project. - MonitoringRule Viewer (
monitoringrule-viewer): melihat resource kustomMonitoringRuledi namespace project.
Meminta peran organisasi IAM untuk aturan berbasis log
Hubungi Admin Organisasi IAM Anda untuk meminta peran berikut:
- LoggingRule PA Creator (
loggingrule-pa-creator): membuat resource kustomLoggingRule. - LoggingRule PA Editor (
loggingrule-pa-editor): mengedit atau mengubah resource kustomLoggingRule. - LoggingRule PA Viewer (
loggingrule-pa-viewer): melihat resource kustomLoggingRule.
Meminta peran project IAM untuk aturan berbasis log
Hubungi IAM Project Admin Anda untuk meminta peran berikut:
- LoggingRule Editor (
loggingrule-editor): mengedit atau mengubah resource kustomLoggingRuledi namespace project. - LoggingRule Viewer (
loggingrule-viewer): melihat resource kustomLoggingRuledi namespace project.
Menentukan aturan pemberitahuan
Anda dapat menentukan aturan pemberitahuan di namespace project menggunakan konsol GDC (lebih disukai) atau API pemantauan dan logging untuk menerapkan resource kustom.
Pilih salah satu metode berikut untuk menentukan aturan pemberitahuan berdasarkan metrik atau log:
Konsol
Buat aturan pemberitahuan dalam grup aturan dari konsol GDC:
- Di konsol GDC, pilih project.
- Di menu navigasi, pilih Operations > Alerting.
- Klik tab Kebijakan Pemberitahuan.
- Klik Create Rule Group.
Pilih jenis aturan pemberitahuan:
- Pilih Metrics untuk alert rule berdasarkan metrik.
- Pilih Logs untuk alert rule berdasarkan log.
Konfigurasikan grup aturan pemberitahuan:
- Di kolom Alert rule group name, masukkan nama untuk grup aturan.
- Di kolom Rule evaluation interval, masukkan jumlah detik untuk setiap interval.
Di kolom Limit, masukkan jumlah maksimum pemberitahuan.
Di bagian Alert rules, klik Add Rule.
Di jendela Create alert rule, masukkan detail berikut:
- Nama untuk aturan pemberitahuan.
Ekspresi untuk alert rule (Gunakan LogQL untuk aturan berbasis log dan PromQL untuk aturan berbasis metrik).
Durasi dalam detik sebelum pemberitahuan beralih dari tertunda ke terbuka.
Tingkat keparahan, seperti Error atau Warning.
Nama pendek untuk mengidentifikasi resource terkait.
Kode pemberitahuan untuk mengidentifikasi pemberitahuan.
URL runbook atau informasi pemecahan masalah.
Pesan atau deskripsi pemberitahuan.
Opsional: Tambahkan Labels dan Annotations sebagai key-value pair.
Klik Simpan untuk membuat aturan.
Klik Create untuk membuat grup aturan.
Grup aturan akan muncul dalam daftar Alert rule group. 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 namespaceNamespace project. nameNama untuk konfigurasi aturan pemberitahuan. sourceSumber log untuk alert rule. Opsi yang valid adalah operationaldanaudit. Hanya berlaku untuk resourceLoggingRule.intervalDurasi interval evaluasi aturan dalam detik. limitOpsional. Jumlah maksimum pemberitahuan. Tetapkan ke 0untuk pemberitahuan tanpa batas.alertRulesDefinisi untuk membuat alert rule. alertRules.alertNama pemberitahuan. alertRules.exprEkspresi LogQL untuk aturan berbasis log atau ekspresi PromQL untuk aturan berbasis metrik. Ekspresi harus dievaluasi ke nilai benar atau salah untuk menentukan apakah pemberitahuan beralih ke status tertunda. alertRules.forOpsional. Durasi dalam detik sebelum pemberitahuan beralih dari pending ke open. Defaultnya adalah 0detik (pemicuan langsung).alertRules.labelsKey-value pair untuk mengategorikan dan mengidentifikasi pemberitahuan. Label berikut diperlukan: severity,code, danresource.alertRules.annotationsOpsional. Metadata yang tidak mengidentifikasi ke pemberitahuan sebagai key-value pair. Simpan file YAML.
Terapkan konfigurasi resource ke server API Management dalam namespace yang sama dengan alert rule berbasis metrik atau berbasis log:
kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yamlGanti kode berikut:
KUBECONFIG_PATH: jalur ke file kubeconfig untuk server Management API.ALERT_RULE_NAME: nama file definisiMonitoringRuleatauLoggingRule.
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 Anda membuat pemberitahuan 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.