Memecahkan masalah notifikasi yang tidak muncul

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

Notifikasi tidak diterima

Anda mengonfigurasi saluran notifikasi dan mengharapkan untuk 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 Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

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

    1. Luaskan menu Nama log, lalu pilih notification_channel_events.
    2. Luaskan menu Severity dan pilih Error.
    3. Opsional: Untuk memilih rentang waktu kustom, gunakan pemilih rentang waktu.
    4. Klik Run query.

    Langkah-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 error gateway terjadi, baris ringkasan akan menyertakan "gagal dengan 502 Bad Gateway".

Notifikasi webhook tidak diterima

Anda mengonfigurasi saluran notifikasi webhook dan ingin diberi tahu saat insiden terjadi. 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 digabungkan dengan langganan pull ke topik notifikasi tersebut.

Saat Anda mengonfigurasi saluran notifikasi Pub/Sub, notifikasi insiden akan dikirim ke antrean Pub/Sub yang memiliki kontrol Identity and Access Management. Setiap layanan yang dapat membuat kueri, atau memproses, topik Pub/Sub dapat menggunakan notifikasi ini. Misalnya, aplikasi yang berjalan di VM 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 entri log Cloud Logging Anda untuk mengetahui informasi kegagalan.

Misalnya, Anda dapat menelusuri 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 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 yang subjudulnya adalah IAM & Admin.

    2. Telusuri akun layanan yang memiliki konvensi penamaan berikut:

      service-PROJECT_NUMBER@gcp-sa-monitoring-notification.

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

    Jika akun layanan notifikasi tidak ada, Anda harus memulai proses pembuatan saluran notifikasi Pub/Sub untuk Pemantauan guna membuat akun layanan:

    1. Di konsol Google Cloud, buka halaman  Alerting:

      Buka Pemberitahuan

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

    2. Klik Edit notification channels.
    3. Di bagian Pub/Sub, klik Tambahkan baru.

      Pemantauan membuat akun layanan notifikasi jika tidak ada. Dialog Create Pub/Sub Channel menampilkan nama akun layanan notifikasi.

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

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

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

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

    • Halaman IAM di konsol Google Cloud mencantumkan peran untuk setiap akun layanan.
    • Halaman Topics Pub/Sub di konsol Google Cloud mencantumkan setiap topik. Saat Anda memilih topik, tab Izin akan mencantumkan peran yang diberikan kepada akun layanan.
    • Untuk mencantumkan 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.
             role: roles/monitoring.notificationServiceAgent
           - members:
             [...]
             role: roles/owner
           - members:
             - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.
             role: roles/pubsub.publisher
      

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

    • Untuk mencantumkan 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.
            role: roles/pubsub.publisher
          etag: BwXPRb5WDPI=
          version: 1
      

    Untuk mengetahui informasi tentang cara memberikan otorisasi ke akun layanan notifikasi, lihat Memberikan otorisasi ke akun layanan.

Notifikasi untuk kebijakan pemberitahuan pemeriksaan uptime tidak diterima

Anda ingin diberi tahu jika 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 membuat insiden saat tidak ada data metrik. Anda tidak menentukan kondisi menggunakan Monitoring Query Language (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 dalam status RUNNING. Deret waktu untuk VM yang berada dalam status lain, seperti STOPPED atau DELETED, akan difilter sebelum kondisi dievaluasi. Karena perilaku ini, Anda tidak dapat menggunakan kebijakan pemberitahuan dengan kondisi pemberitahuan ketidakhadiran metrik untuk menentukan apakah instance VM berjalan. 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 pemeriksaan uptime pribadi.

Alternatif yang mungkin untuk pemberitahuan pada pemeriksaan uptime adalah menggunakan kebijakan pemberitahuan yang memantau tidak adanya data. Sebaiknya aktifkan pemberitahuan untuk pemeriksaan uptime, bukan ketiadaan data: kebijakan pemberitahuan ketiadaan metrik dapat menghasilkan positif palsu jika ada masalah sementara dengan ketersediaan data Monitoring.

Namun, jika tidak dapat menggunakan pemeriksaan waktu aktif, 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 menurut status VM, Anda dapat menggunakannya untuk mendeteksi tidak adanya data dari VM yang telah dimatikan.

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 dimatikan, tiga menit kemudian, insiden akan dibuat dan notifikasi akan dikirim. Nilai absent_for harus setidaknya tiga menit.

Untuk mengetahui 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 diselesaikan. Anda membuat kebijakan pemberitahuan yang memantau metrik serviceruntime.googleapis.com/api/request_count, tetapi Anda tidak diberi tahu saat jumlah permintaan melebihi nilai minimum yang dikonfigurasi.

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

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