Memecahkan masalah notifikasi yang tidak ada

Halaman ini menjelaskan alasan Anda tidak menerima notifikasi seperti yang diharapkan, dan menawarkan kemungkinan solusi untuk situasi tersebut.

Notifikasi tidak diterima

Anda mengonfigurasi saluran notifikasi dan berharap mendapatkan notifikasi saat insiden terjadi. Anda tidak menerima notifikasi apa pun.

Untuk mengumpulkan informasi tentang penyebab kegagalan, lakukan hal berikut:

  1. Di konsol Google Cloud, buka halaman Logs Explorer:

    Buka Logs Explorer

    Jika menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil dengan subjudul Logging.

  2. Pilih project Google Cloud yang sesuai.
  3. Buat kueri log untuk peristiwa saluran notifikasi:

    1. Luaskan menu Log name, lalu pilih notification_channel_events.
    2. Luaskan menu Keparahan dan pilih Error.
    3. Opsional: Untuk memilih rentang waktu kustom, gunakan pemilih rentang waktu.
    4. Klik Jalankan kueri.

    Langkah sebelumnya akan membuat kueri berikut:

    resource.type:"stackdriver_notification_channel"
    logName="projects/PROJECT_ID/logs/monitoring.googleapis.com%2Fnotification_channel_events"
    severity=ERROR
    

    Baris ringkasan dan kolom jsonPayload biasanya berisi informasi kegagalan. Misalnya, saat terjadi error gateway, baris ringkasan akan menyertakan "failed dengan 502 Bad Gateway".

Notifikasi webhook tidak diterima

Anda mengonfigurasi saluran notifikasi webhook dan ingin menerima notifikasi saat terjadi insiden. Anda tidak menerima notifikasi apa pun.

Endpoint pribadi

Anda tidak dapat menggunakan webhook untuk notifikasi kecuali jika endpoint bersifat publik.

Untuk mengatasi situasi ini, gunakan notifikasi Pub/Sub yang dikombinasikan dengan langganan pull ke topik notifikasi tersebut.

Saat Anda mengonfigurasi saluran notifikasi Pub/Sub, notifikasi insiden dikirim ke antrean Pub/Sub yang memiliki kontrol Identity and Access Management. Layanan apa pun yang dapat membuat kueri atau memproses topik Pub/Sub dapat menggunakan notifikasi ini. Misalnya, aplikasi yang berjalan di virtual machine App Engine, Cloud Run, atau Compute Engine dapat menggunakan notifikasi ini.

Jika Anda menggunakan langganan pull, permintaan akan dikirim ke Google yang menunggu pesan tiba. Langganan ini memerlukan akses ke Google, tetapi tidak memerlukan aturan untuk firewall atau akses masuk.

Endpoint publik

Untuk mengidentifikasi alasan pengiriman gagal, periksa informasi kegagalan pada entri log Cloud Logging Anda.

Misalnya, Anda dapat mencari entri log untuk resource saluran notifikasi menggunakan Logs Explorer, dengan filter seperti berikut:

resource.type="stackdriver_notification_channel"

Notifikasi Pub/Sub tidak diterima

Anda mengonfigurasi saluran notifikasi Pub/Sub, tetapi tidak menerima notifikasi apa pun.

Untuk mengatasi kondisi ini, coba langkah berikut:

  • Pastikan akun layanan notifikasi ada. Notifikasi tidak akan dikirim saat akun layanan telah dihapus.

    Untuk memverifikasi bahwa akun layanan ada, lakukan hal berikut:

    1. Di konsol Google Cloud, buka halaman IAM:

      Buka IAM

      Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil dengan subjudul IAM & Admin.

    2. Telusuri akun layanan yang memiliki konvensi penamaan berikut:

      service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

      Jika akun layanan ini tidak tercantum, pilih Sertakan pemberian peran yang disediakan Google.

    Jika akun layanan notifikasi tidak ada, Anda harus memulai proses pembuatan saluran notifikasi Pub/Sub agar Monitoring dapat membuat akun layanan:

    1. Di konsol Google Cloud, buka halaman Alerting :

      Buka Alerting

      Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil dengan subjudulnya adalah Monitoring.

    2. Klik Edit saluran notifikasi.
    3. Di bagian Pub/Sub, klik Add new.

      Monitoring membuat akun layanan notifikasi ketika belum ada. Dialog Create Pub/Sub Channel menampilkan nama akun layanan notifikasi.

    4. Jika tidak ingin menambahkan saluran notifikasi, klik Batal. Jika tidak, selesaikan pembuatan saluran notifikasi dan klik Tambahkan saluran.

    5. Berikan izin kepada akun layanan untuk memublikasikan topik Pub/Sub:

      1. Di tab browser baru, buka dokumen Buat saluran notifikasi.
      2. Pilih tab Pub/Sub, lalu ikuti langkah-langkah di bagian Authorize service account pada halaman tersebut.
  • Pastikan akun layanan notifikasi telah diizinkan untuk mengirim notifikasi terkait topik Pub/Sub yang diminati.

    Untuk melihat izin akun layanan, Anda dapat menggunakan Google Cloud Console atau perintah Google Cloud CLI:

    • Halaman IAM di Google Cloud Console mencantumkan peran untuk setiap akun layanan.
    • Halaman Topics Pub/Sub di Konsol Google Cloud mencantumkan setiap topik. Saat Anda memilih topik, tab Izin mencantumkan peran yang diberikan ke akun layanan.
    • Untuk menampilkan daftar semua akun layanan dan perannya, jalankan perintah Google Cloud CLI berikut:

      gcloud projects get-iam-policy PROJECT_ID
      

      Berikut adalah respons sebagian untuk perintah ini:

          serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
             role: roles/monitoring.notificationServiceAgent
           - members:
             [...]
             role: roles/owner
           - members:
             - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
             role: roles/pubsub.publisher
      

      Respons perintah hanya menyertakan peran, tidak mencakup otorisasi per topik.

    • Untuk menampilkan daftar binding IAM untuk topik tertentu, jalankan perintah berikut:

      gcloud pubsub topics get-iam-policy TOPIC
      

      Berikut adalah contoh respons untuk perintah ini:

          bindings:
          - members:
            - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
            role: roles/pubsub.publisher
          etag: BwXPRb5WDPI=
          version: 1
      

    Untuk informasi tentang cara memberikan otorisasi pada akun layanan notifikasi, lihat Mengizinkan akun layanan.

Notifikasi untuk kebijakan pemberitahuan cek uptime tidak diterima

Anda ingin diberi tahu saat virtual machine (VM) dimulai ulang atau dimatikan, sehingga Anda membuat kebijakan pemberitahuan yang memantau metrik compute.googleapis.com/instance/uptime. Anda membuat dan mengonfigurasi kondisi untuk menghasilkan insiden saat tidak ada data metrik. Anda tidak menentukan kondisi menggunakan Bahasa Kueri Monitoring (MQL)1. Anda tidak akan diberi tahu saat virtual machine (VM) dimulai ulang atau dimatikan.

Kebijakan pemberitahuan ini hanya memantau deret waktu untuk instance VM Compute Engine yang ada dalam status RUNNING. Deret waktu untuk VM yang ada dalam status lain, seperti STOPPED atau DELETED, difilter sebelum kondisinya dievaluasi. Karena perilaku ini, Anda tidak dapat menggunakan kebijakan pemberitahuan dengan kondisi pemberitahuan yang tidak ada metrik untuk menentukan apakah instance VM sedang berjalan atau tidak. Untuk mengetahui informasi tentang status instance VM, lihat Siklus proses instance VM.

Untuk mengatasi masalah ini, buat kebijakan pemberitahuan untuk memantau pemeriksaan uptime. Untuk endpoint pribadi, gunakan cek uptime pribadi.

Alternatif yang memungkinkan untuk pemberitahuan cek uptime adalah dengan menggunakan kebijakan pemberitahuan yang memantau tidak adanya data. Kami sangat menyarankan pemberitahuan pada cek uptime, bukan tidak adanya data: kebijakan pemberitahuan yang tidak ada metrik dapat menghasilkan positif palsu (PP) jika ada masalah sementara dengan ketersediaan data Monitoring.

Namun, jika penggunaan cek uptime tidak memungkinkan, Anda dapat membuat kebijakan pemberitahuan dengan MQL yang memberi tahu Anda bahwa VM telah dinonaktifkan. Kondisi yang ditentukan MQL tidak memfilter data deret waktu terlebih dahulu berdasarkan status instance VM. Karena MQL tidak memfilter data berdasarkan status VM, Anda dapat menggunakannya untuk mendeteksi tidak adanya data dari VM yang telah dinonaktifkan.

Pertimbangkan kondisi MQL berikut yang memantau metrik compute.googleapis.com/instance/cpu/utilization:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
|absent_for 3m

Jika VM yang dipantau oleh kondisi ini dinonaktifkan, tiga menit kemudian, insiden akan dihasilkan dan notifikasi dikirim. Nilai absent_for harus berdurasi minimal tiga menit.

Untuk informasi selengkapnya tentang MQL, lihat Kebijakan pemberitahuan dengan MQL.

1: MQL adalah bahasa berbasis teks ekspresif yang dapat digunakan dengan panggilan Cloud Monitoring API dan di konsol Google Cloud. Untuk mengonfigurasi kondisi dengan MQL saat menggunakan Konsol Google Cloud, Anda harus menggunakan editor kode.

Notifikasi untuk kebijakan pemberitahuan jumlah permintaan tidak diterima

Anda ingin memantau jumlah permintaan yang telah selesai. Anda membuat kebijakan pemberitahuan yang memantau yang memantau metrik serviceruntime.googleapis.com/api/request_count, tetapi Anda tidak akan diberi tahu saat jumlah permintaan melebihi nilai minimum yang Anda konfigurasikan.

Periode perataan maksimum untuk metrik jumlah permintaan adalah 7 jam 30 menit.

Untuk mengatasi masalah ini, periksa nilai periode penyelarasan dalam kebijakan pemberitahuan Anda. Jika nilai ini lebih panjang dari nilai maksimum untuk metrik ini, kurangi periode perataan sehingga tidak lebih dari 7 jam 30 menit.