Membuat aturan pemberitahuan

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:

  1. Di konsol GDC, pilih project.
  2. Di menu navigasi, pilih Operations > Alerting.
  3. Klik tab Alerting Policy.
  4. Klik Buat Grup Aturan.
  5. Pilih jenis aturan pemberitahuan:

    • Pilih Metrik untuk aturan pemberitahuan berdasarkan metrik.
    • Pilih Log untuk aturan pemberitahuan berdasarkan log.
  6. 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.

  7. Di bagian Aturan pemberitahuan, klik Tambahkan Aturan.

  8. 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.

  9. Klik Simpan untuk membuat aturan.

  10. 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:

  1. Tentukan resource kustom MonitoringRule (aturan berbasis metrik) atau LoggingRule (aturan berbasis log) dalam file YAML.

    Spesifikasi resource lengkap menunjukkan contoh untuk aturan berbasis metrik dan berbasis log.

  2. 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 dan audit. Hanya berlaku untuk resource LoggingRule.
    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, dan resource.
    alertRules.annotations Opsional. Metadata yang tidak mengidentifikasi ke pemberitahuan sebagai key-value pair.
  3. Simpan file YAML.

  4. 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 definisi MonitoringRule atau LoggingRule.

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 definisi MonitoringRule.

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 definisi LoggingRule.