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:
-
Di konsol Google Cloud, buka halaman Logs Explorer:
Jika Anda menggunakan bilah pencarian untuk menemukan halaman ini, kemudian pilih hasil yang sub judulnya Logging.
- Pilih project Google Cloud yang sesuai.
Buat kueri log untuk peristiwa saluran notifikasi:
- Luaskan menu Log name, lalu 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 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:
-
Di Konsol Google Cloud, buka halaman IAM:
Jika Anda menggunakan bilah pencarian untuk menemukan halaman ini, kemudian pilih hasil yang sub judulnya IAM & Admin.
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:
-
Di Konsol Google Cloud, buka notifications Halaman Alerting:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Klik Edit saluran notifikasi.
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.
Jika Anda tidak ingin menambahkan saluran notifikasi, klik Batal. Jika tidak, selesaikan pembuatan saluran notifikasi dan klik Tambahkan channel.
Memberi akun layanan izin untuk memublikasikan Pub/Sub Anda topik:
- Di tab browser baru, buka Dokumen Membuat saluran notifikasi.
- 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.