Memecahkan masalah notifikasi yang tidak ada

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

Notifikasi tidak diterima

Anda mengonfigurasi saluran notifikasi dan memperkirakan 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 bilah pencarian untuk menemukan halaman ini, kemudian pilih hasil yang sub judulnya 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 Severity lalu 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 kegagalan tidak akurat atau tidak sesuai. Misalnya, ketika terjadi kesalahan {i>gateway<i}, baris ringkasan berisi "gagal dengan 502 Bad Gateway".

Notifikasi webhook tidak diterima

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

Endpoint pribadi

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

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

Saat Anda mengonfigurasi saluran notifikasi Pub/Sub, insiden notifikasi dikirim ke antrean Pub/Sub yang memiliki Identity and Access Management kontrol. 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 memakai notifikasi ini.

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

Endpoint publik

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

Misalnya, Anda bisa mencari entri log untuk 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 sudah ada, lakukan hal berikut:

    1. Di Konsol Google Cloud, buka halaman IAM:

      Buka IAM

      Jika Anda menggunakan bilah pencarian untuk menemukan halaman ini, kemudian pilih hasil yang sub judulnya 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 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 yang subjudulnya adalah Monitoring.

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

      Monitoring membuat akun layanan notifikasi padahal 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 dan klik Tambahkan channel.

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

      1. Di tab browser baru, buka Dokumen Membuat saluran notifikasi.
      2. Pilih tab Pub/Sub, lalu ikuti langkah-langkahnya di bagian Otorisasi akun layanan pada halaman.
  • Pastikan akun layanan notifikasi telah diberi otorisasi untuk mengirim notifikasi untuk topik minat Pub/Sub.

    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 Anda.
    • Halaman Topics Pub/Sub di Konsol Google Cloud, mencantumkan setiap topik. Saat Anda memilih topik, tab Izin akan mencantumkan peran yang diberikan ke akun layanan.
    • Untuk menampilkan daftar semua akun layanan dan perannya, jalankan perintah berikut Perintah Google Cloud CLI:

      gcloud projects get-iam-policy PROJECT_ID
      

      Berikut adalah respons parsial 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 termasuk per topik otorisasi.

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

    Untuk informasi tentang cara memberi otorisasi akun layanan notifikasi, lihat Mengotorisasi akun layanan.

Notifikasi untuk kebijakan pemberitahuan cek uptime tidak diterima

Anda ingin diberi tahu jika mesin virtual (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 terjadi tidak ada data metrik. Anda tidak bisa menentukan kondisi dengan 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 di status, seperti STOPPED atau DELETED, difilter sebelum maka kondisi tersebut dievaluasi. Karena perilaku ini, Anda tidak dapat menggunakan kebijakan pemberitahuan kondisi pemberitahuan absensi metrik untuk menentukan apakah instance VM sedang berjalan. Untuk informasi tentang status instance VM, lihat Siklus proses instance VM.

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

Alternatif yang dapat dilakukan untuk pemberitahuan cek uptime adalah dengan menggunakan kebijakan pemberitahuan yang memantau ketiadaan data. Sebaiknya Anda menerima pemberitahuan tentang uptime pemeriksaan, sebagai ganti tanpa data: kebijakan pemberitahuan absen metrik dapat menghasilkan positif palsu (PP) jika ada masalah sementara dengan ketersediaan data Monitoring.

Namun, jika tidak dapat menggunakan cek uptime, Anda dapat membuat dengan MQL yang memberi tahu Anda bahwa VM telah dimatikan. Kondisi yang ditentukan MQL tidak memfilter data deret waktu terlebih dahulu berdasarkan dari instance VM. Karena MQL tidak memfilter data berdasarkan status VM, Anda dapat menggunakannya untuk mendeteksi ketidaktersediaan data dari VM yang dimatikan.

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

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

Jika VM yang dipantau oleh kondisi ini dimatikan, kemudian tiga menit kemudian, sebuah insiden dibuat dan notifikasi dikirim. Nilai absent_for harus sama setidaknya tiga menit.

Untuk informasi lebih lanjut tentang MQL, lihat Kebijakan pemberitahuan dengan MQL.

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

Notifikasi untuk kebijakan pemberitahuan jumlah permintaan tidak diterima

Anda ingin memantau jumlah permintaan yang 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 batas yang dikonfigurasi.

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

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