Anda dapat mendiagnosis dan menyelesaikan masalah notifikasi pemberitahuan Cloud Monitoring yang tidak ada dengan
memeriksa log notification_channel_events di Logs Explorer. Kemudian, Anda dapat memperbaiki masalah pengiriman dan konfigurasi di seluruh saluran webhook, Pub/Sub, dan SMS, atau menyesuaikan kebijakan pemberitahuan untuk penonaktifan virtual machine (VM) dan metrik jumlah permintaan.
Notifikasi tidak diterima
Jika Anda tidak menerima notifikasi apa pun melalui saluran notifikasi yang dikonfigurasi, lakukan langkah-langkah berikut:
-
Di konsol Google Cloud , buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
- Pilih project Google Cloud yang sesuai.
Kueri log untuk peristiwa saluran notifikasi:
- Luaskan menu Nama log dan pilih notification_channel_events.
- Luaskan menu Severity, lalu pilih Error.
- Opsional: Untuk memilih rentang waktu kustom, gunakan pemilih rentang waktu.
- Klik Run query.
Langkah-langkah sebelumnya membuat kueri berikut:
resource.type:"stackdriver_notification_channel" logName="projects/PROJECT_ID/logs/monitoring.googleapis.com%2Fnotification_channel_events" severity=ERRORBaris ringkasan dan kolom
jsonPayloadbiasanya berisi informasi kegagalan. Misalnya, saat terjadi error gateway, baris ringkasan akan menyertakan "gagal dengan 502 Bad Gateway".
Notifikasi webhook tidak diterima
Bagian ini berlaku jika Anda tidak menerima notifikasi melalui saluran notifikasi webhook yang dikonfigurasi.
Endpoint pribadi
Jika Anda memiliki endpoint pribadi, gunakan notifikasi Pub/Sub yang dikombinasikan dengan langganan pull ke topik notifikasi tersebut. Anda tidak dapat menggunakan webhook untuk notifikasi ke endpoint pribadi.
Saat Anda mengonfigurasi saluran notifikasi Pub/Sub, notifikasi pemberitahuan akan 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 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
Jika Anda tidak menerima notifikasi melalui saluran notifikasi Pub/Sub yang dikonfigurasi, log dapat membantu Anda mendiagnosis dan menyelesaikan kegagalan tersebut. Bagian ini menjelaskan entri log yang ditulis sistem saat notifikasi gagal dikirim. Anda dapat menggunakan informasi di bagian ini untuk menyelesaikan alasan kegagalan.
Log mencakup error Failed to authenticate as service account
Saat membuat kueri log notification_channel_events untuk mencari error, Anda mungkin menemukan
entri log yang kolom summary-nya menyertakan pesan berikut:
Failed to authenticate as service account service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
Error ini terjadi saat akun layanan notifikasi tidak ada. Akibatnya, notifikasi tidak dikirim.
Untuk memverifikasi bahwa akun layanan ada, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman IAM:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.
Telusuri akun layanan yang memiliki konvensi penamaan berikut:
service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.comJika akun layanan ini tidak tercantum, pilih Sertakan pemberian peran yang disediakan Google.
Untuk memicu Monitoring membuat akun layanan notifikasi, mulai proses pembuatan saluran notifikasi Pub/Sub:
-
Di konsol Google Cloud , buka halaman notifications Pemberitahuan:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Klik Edit saluran notifikasi.
Di bagian Pub/Sub, klik Tambahkan baru.
Monitoring membuat akun layanan notifikasi jika akun tersebut belum ada. Dialog Buat Channel Pub/Sub menampilkan nama akun layanan notifikasi.
Jika Anda tidak ingin menambahkan saluran notifikasi, klik Batal. Jika tidak, selesaikan pembuatan saluran notifikasi dan klik Tambahkan saluran.
Beri akun layanan izin untuk memublikasikan ke topik Pub/Sub Anda:
- Di tab browser baru, buka dokumen Membuat saluran notifikasi.
- Pilih tab Pub/Sub, lalu ikuti langkah-langkah di bagian Authorize service account di halaman tersebut.
Log mencakup error PERMISSION_DENIED
Saat membuat kueri log notification_channel_events untuk mencari error, Anda mungkin menemukan
entri log yang kolom summary-nya menyertakan pesan berikut:
An error occurred while publishing notification to Cloud Pub/Sub topic TOPIC_ID. Possible causes: 1) you don't have the required role (https://cloud.google.com/monitoring/support/notification-options#pubsub); or 2) Cloud Pub/Sub API is not enabled in your project: PERMISSION_DENIED
Error ini terjadi saat akun layanan notifikasi belum diizinkan untuk mengirim notifikasi untuk topik Pub/Sub yang diminati, atau saat Pub/Sub API tidak diaktifkan di project Anda.
Untuk melihat izin akun layanan, Anda dapat menggunakan konsolGoogle 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 mencantumkan peran yang diberikan ke akun layanan.
Untuk mencantumkan semua akun layanan dan perannya, jalankan perintah Google Cloud CLI berikut:
gcloud projects get-iam-policy PROJECT_IDBerikut 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.publisherRespons perintah hanya mencakup peran; tidak mencakup otorisasi per topik.
Untuk mencantumkan binding IAM untuk topik tertentu, jalankan perintah berikut:
gcloud pubsub topics get-iam-policy TOPIC_IDBerikut 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 mengetahui informasi tentang cara memberikan otorisasi pada akun layanan notifikasi, lihat Memberikan otorisasi pada akun layanan.
Log mencakup error FAILED_PRECONDITION
Saat membuat kueri log notification_channel_events untuk mencari error, Anda mungkin menemukan
entri log yang kolom summary-nya menyertakan pesan berikut:
An error occurred while publishing notification to Cloud Pub/Sub topic TOPIC_ID: FAILED_PRECONDITION
Error ini terjadi saat Pub/Sub menolak permintaan publikasi dari Monitoring karena topik target tidak memenuhi prasyarat yang diperlukan. Penyebab umum error ini meliputi:
Kebijakan penyimpanan pesan dan batasan residensi data: Kebijakan penyimpanan pesan topik Anda membatasi Google Cloud region tempat pesan dapat diproses atau disimpan:
- Penerapan dalam transit di wilayah yang tidak diizinkan: Kebijakan penyimpanan pesan topik telah ditetapkan
enforceInTransitketrue, dan permintaan publikasi tiba di wilayah yang tidak termasuk dalamallowedPersistenceRegions. JikaenforceInTransitadalahtrue, Pub/Sub menolak permintaan dari region yang tidak diizinkan, bukan mengalihkannya. Jika topik menggunakan transformasi pesan tunggal inferensi AI, maka region publikasi juga harus diizinkan oleh transformasi. - Wilayah persisten yang diizinkan dan dibatasi: Topik memiliki
enforceInTransityang ditetapkan kefalsedan permintaan publikasi tiba di luarallowedPersistenceRegions, tetapi Pub/Sub tidak dapat mengalihkan permintaan karena tidak ada cluster yang layak danallowedPersistenceRegionshanya berisi wilayah pribadi atau terbatas. - Replikasi sinkron lintas region tanpa region sekunder yang valid:
Topik menggunakan replikasi sinkron lintas region dan memiliki kebijakan
penyimpanan pesan, tetapi
allowedPersistenceRegionstidak menyertakan region replikasi sekunder yang valid untuk lokasi publikasi. - Endpoint regional tanpa penerapan saat transit: Permintaan publikasi
dirutekan ke endpoint regional, tetapi kebijakan penyimpanan pesan
topik memiliki
enforceInTransityang ditetapkan kefalse.
Untuk mengatasi error kebijakan penyimpanan pesan, perbarui kebijakan penyimpanan pesan topik atau konfigurasi region transformasi pesan tunggal sehingga
allowedPersistenceRegionsmenyertakan region publikasi dan region replikasi sekunder yang diperlukan, atau tetapkanenforceInTransitkefalsejika penegakan regional dalam transit tidak diperlukan.- Penerapan dalam transit di wilayah yang tidak diizinkan: Kebijakan penyimpanan pesan topik telah ditetapkan
Error kunci enkripsi yang dikelola pelanggan (CMEK): Topik Anda dikonfigurasi untuk menggunakan kunci enkripsi yang dikelola pelanggan dari Cloud Key Management Service (Cloud KMS), dan Pub/Sub tidak dapat mengenkripsi pesan yang dipublikasikan:
- Izin ditolak pada kunci Cloud KMS: Cloud KMS
menampilkan error
PERMISSION_DENIEDsaat Pub/Sub mencoba mengenkripsi pesan, yang dilaporkan Pub/Sub sebagaiFAILED_PRECONDITION. Misalnya, error ini terjadi saat agen layanan Pub/Sub tidak memiliki peran CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) pada kunci. - Status kunci Cloud KMS yang tidak dapat digunakan: Cloud KMS menampilkan error
FAILED_PRECONDITIONkarena versi kunci dinonaktifkan atau dihancurkan, atau karena kunci pengelola kunci eksternal tidak dapat dijangkau.
Untuk mengatasi error CMEK, verifikasi bahwa versi kunci Cloud KMS diaktifkan dan dapat dijangkau, serta pastikan agen layanan Pub/Sub memiliki peran
roles/cloudkms.cryptoKeyEncrypterDecrypterpada kunci tersebut.- Izin ditolak pada kunci Cloud KMS: Cloud KMS
menampilkan error
Anda tidak akan menerima notifikasi saat VM dimatikan
Untuk mendapatkan notifikasi saat virtual machine (VM) dimatikan, buat cek uptime untuk menginterogasi VM secara berkala, lalu buat kebijakan pemberitahuan untuk memantau cek uptime tersebut. Jika Anda menggunakan Virtual Private Cloud (VPC), Anda mungkin perlu membuat pemeriksaan uptime pribadi.
Kebijakan pemberitahuan yang memantau metrik
compute.googleapis.com/instance/uptime tidak akan memberi tahu Anda saat VM dimatikan. Untuk metrik ini, kebijakan pemberitahuan hanya memantau deret waktu untuk instance VM yang dalam status RUNNING. Jika VM berada dalam status lain, seperti STOPPED atau DELETED,
VM tersebut tidak dipantau. Untuk mengetahui informasi tentang status instance VM, lihat
Siklus proses instance VM.
Notifikasi untuk kebijakan pemberitahuan jumlah permintaan tidak diterima
Jika Anda tidak menerima notifikasi untuk kebijakan pemberitahuan yang memantau metrik
serviceruntime.googleapis.com/api/request_count,
pastikan periode perataan kebijakan tidak lebih
dari 7 jam 30 menit.
Pesan notifikasi SMS atau kode verifikasi tidak diterima
Jika Anda tidak menerima notifikasi SMS atau kode verifikasi, pastikan Anda belum mencapai batas pesan SMS. Mungkin ada log yang mengonfirmasi error ini. Periksa log Anda untuk Denied quota token.
Perhatikan bahwa SMS bukan jenis saluran notifikasi yang andal dan mungkin tidak tersedia di wilayah tertentu. Hindari mengandalkan saluran SMS saja untuk notifikasi. Sebagai gantinya, konfigurasi saluran notifikasi tambahan seperti email.