Dokumen ini menjelaskan cara membuat dan mengelola saluran notifikasi dengan menggunakan library klien atau menggunakan Google Cloud CLI, yang keduanya memanggil Cloud Monitoring API. Cloud Monitoring menggunakan saluran notifikasi untuk memberi tahu Anda, atau tim piket Anda, saat kondisi kebijakan pemberitahuan terpenuhi. Ada beberapa jenis saluran yang tersedia; setiap jenis dijelaskan dalam deskripsi saluran notifikasi. Saluran notifikasi dari jenis tertentu adalah instance deskripsi jenis tersebut. Kebijakan pemberitahuan Anda menyertakan referensi ke saluran notifikasi yang akan digunakan sebagai jalur notifikasi.
Saluran notifikasi harus ada sebelum dapat digunakan dalam kebijakan pemberitahuan. Deskripsi saluran notifikasi diberikan kepada Anda, tetapi Anda harus membuat saluran sebelum dapat digunakan.
Untuk mengonfigurasi saluran notifikasi menggunakan Konsol Google Cloud, lihat Membuat dan mengelola saluran notifikasi.
Contoh kode yang digunakan dalam dokumen ini diekstrak dari contoh API kebijakan pemberitahuan, yang dijelaskan dalam Contoh: pencadangan dan pemulihan.
Tentang API
Resource NotificationChannel
mendukung operasi yang memungkinkan Anda
mengelola saluran notifikasi. API ini juga mendukung operasi yang terkait dengan
pengelolaan kolom verificationStatus
channel:
- Mengirim kode verifikasi
- Membuat kode untuk menyalin status verifikasi channel terverifikasi ke channel identik lainnya dalam project yang sama atau baru
- Memverifikasi saluran menggunakan kode yang dibuat oleh dua operasi sebelumnya
Untuk informasi selengkapnya, lihat dokumen referensi
notificationChannels
.
Sebelum memulai
Untuk mendapatkan izin yang diperlukan guna melihat dan mengonfigurasi saluran notifikasi menggunakan Cloud Monitoring API,
minta administrator untuk memberi Anda
peran IAM Monitoring NotificationChannel Editor (roles/monitoring.notificationChannelEditor
) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi selengkapnya tentang peran Cloud Monitoring, lihat Mengontrol akses dengan Identity and Access Management.
Mencantumkan jenis saluran notifikasi
Pemantauan menyediakan sejumlah jenis saluran notifikasi bawaan. Setiap jenis ini dijelaskan dalam NotificationChannelDescriptor
.
Deskripsi ini memiliki kolom type
, dan nilai kolom ini
bertindak sebagai ID untuknya saat membuat instance
jenis saluran tersebut. Untuk mengambil daftar jenis saluran yang dapat Anda buat dengan Cloud Monitoring API atau Google Cloud CLI, masukkan perintah berikut:
$ gcloud beta monitoring channel-descriptors list --format='value(type)'
campfire
email
google_chat
hipchat
pagerduty
pubsub
slack
sms
webhook_basicauth
webhook_tokenauth
Untuk informasi selengkapnya tentang saluran notifikasi, lihat Membuat dan mengelola saluran notifikasi.
Jika saluran notifikasi pilihan Anda tidak didukung, sebaiknya buat pipeline yang mengandalkan pengiriman notifikasi ke Pub/Sub. Untuk contoh Python yang menggunakan Flask, lihat Membuat notifikasi kustom dengan Cloud Monitoring dan Cloud Run. Untuk contoh lainnya, lihat repositori Git cloud-alerting-notification-forwarding.
Untuk mengambil semua deskripsi saluran di project Google Cloud, gunakan metode notificationChannelDescriptors.list
.
Deskripsi yang diambil bersifat hanya baca.
Jika mencari deskripsi tertentu dan mengetahui namanya,
Anda dapat menggunakan metode notificationChannelDescriptors.get
untuk mengambil deskripsi channel tersebut saja. Nama deskripsi saluran
memiliki format
projects/[PROJECT_ID]/notificationChannelDescriptors/[CHANNEL_TYPE]
[CHANNEL_TYPE]
harus berupa salah satu jenis yang tercantum di atas, misalnya:
projects/[PROJECT_ID]/notificationChannelDescriptors/email
gcloud
Untuk mencantumkan semua deskripsi saluran notifikasi dalam project Google Cloud,
gunakan perintah gcloud beta monitoring channel-descriptors list
:
gcloud beta monitoring channel-descriptors list
Jika berhasil, perintah list
akan memberikan listingan semua deskripsi
saluran dalam project yang ditentukan. Misalnya, deskripsi saluran email
akan muncul dalam daftar seperti ini:
--- description: A channel that sends notifications via email. displayName: Email labels: - description: An address to send email. key: email_address name: projects/[PROJECT_ID]/notificationChannelDescriptors/email type: email ---
Semua deskripsi saluran menyertakan kolom berikut:
name
: Nama resource yang sepenuhnya memenuhi syarat dari deskripsi salurantype
: Bagian nama yang menunjukkan jenis salurandisplayName
: Deskripsi kolomtype
, untuk tujuan tampilandescription
: Deskripsi singkat tentang saluranlabels
: Kumpulan kolom yang spesifik untuk jenis saluran. Setiap jenis saluran memiliki kumpulan labelnya sendiri.
Saat dibuat, channel juga akan mendapatkan kolom enabled
, dengan nilai
true
secara default.
Untuk mencantumkan satu deskripsi saluran, gunakan gcloud beta monitoring
channel-descriptors describe
, dan tentukan nama deskripsi saluran. Anda tidak perlu menentukan nama yang sepenuhnya memenuhi syarat. Misalnya, kedua perintah ini menampilkan listingan di atas:
gcloud beta monitoring channel-descriptors describe email
gcloud beta monitoring channel-descriptors describe projects/[PROJECT_ID]/notificationChannelDescriptors/email
Lihat referensi gcloud beta monitoring channel-descriptors
list
dan describe
untuk informasi selengkapnya. Perintah describe
sesuai dengan metode
notificationChannelDescriptors.get
di API.
Membuat saluran notifikasi
Anda dapat membuat saluran notifikasi untuk project Google Cloud dari file JSON atau YAML menggunakan Google Cloud CLI, dan Anda dapat membuatnya secara terprogram.
Untuk membuat saluran notifikasi, Anda harus memberikan nilai untuk
kolom dalam deskripsinya. Sebagian besar dari ini, seperti type
, umum
di semua deskripsi saluran notifikasi; lihat
notificationChannelDescriptors
.
Setiap deskripsi juga memiliki kumpulan label, dan kumpulan ini bervariasi di seluruh
deskripsi. Untuk melihat kumpulan label untuk deskripsi tertentu, ambil
deskripsi menggunakan perintah gcloud beta monitoring channel-descriptors describe
yang dijelaskan dalam Mencantumkan jenis saluran notifikasi.
Misalnya, mengambil
deskripsi saluran email
akan menampilkan satu label:
labels: - description: An address to send email. key: email_address
Deskripsi saluran pubsub
juga berisi satu label; label tersebut
mengidentifikasi topik Pub/Sub. Namun, saluran dapat berisi beberapa label. Misalnya, deskripsi saluran slack
memiliki dua label:
labels: - description: A permanent authentication token provided by Slack. This field is obfuscated by returning only a few characters of the key when fetched. key: auth_token - description: The Slack channel to which to post notifications. key: channel_name
Mengambil deskripsi saluran webhook_basicauth
akan menampilkan beberapa label:
labels: - description: The password. The field is obfuscated when the channel is fetched. key: password - description: The public URL to which to publish the webhook. key: url - description: The username. key: username
Baik Anda membuat saluran baru secara terprogram atau dari command line, nilai type
dalam spesifikasi Anda harus cocok dengan kolom type
dalam deskripsi saluran notifikasi yang sesuai. Setiap kunci label
yang diperlukan juga harus cocok dengan kunci di deskripsi saluran.
Beberapa label sesuai dengan kredensial yang digunakan untuk mengautentikasi dengan penyedia. Saat membuat saluran, nilai untuk label ini harus diperoleh dari penyedia. Untuk mendapatkan kredensial, Anda mungkin perlu menggunakan halaman pembuatan kunci API di situs penyedia atau menyelesaikan alur login OAuth dengan penyedia. Detail cara mendapatkan kredensial tersebut bergantung pada penyedia tertentu.
Misalnya, contoh berikut menunjukkan spesifikasi saluran notifikasi pubsub
baru dalam JSON:
{ "type": "pubsub", "displayName": "Notifications", "description": "Pub/Sub channel for notifications", "labels": { "topic": "projects/[PROJECT_ID]/topics/notificationTopic" }, }
Nilai type
(pubsub
) dan kunci label tunggal (topic
)
cocok dengan kolom type
dan labels.key
dalam deskripsi saluran
yang sesuai.
Saluran diaktifkan secara default. Jika ingin membuat saluran yang tidak aktif,
Anda dapat menyertakan kolom enabled
dengan nilai false
.
Contoh berikut menggambarkan pembuatan saluran notifikasi.
gcloud
Untuk membuat saluran notifikasi di project Google Cloud, gunakan perintah gcloud beta monitoring
channels create
. Untuk memuat saluran dari file, gunakan flag --channel-content-from-file
untuk menentukan file.
Contoh berikut membuat saluran Pub/Sub baru
dari file pubsub-channel.json
:
gcloud beta monitoring channels create --channel-content-from-file="pubsub-channel.json"
Jika berhasil, perintah ini akan menampilkan nama saluran baru, misalnya:
Created notification channel [projects/[PROJECT_ID]/notificationChannels/1355376463305411567].
Lihat referensi gcloud beta monitoring channels create
untuk informasi selengkapnya.
C#
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Contoh: Membuat saluran notifikasi Slack
Untuk mengonfigurasi saluran notifikasi untuk aplikasi Slack, lakukan hal berikut:
Konfigurasi aplikasi Slack Anda:
- Jika Anda belum memiliki aplikasi Slack, ikuti dokumentasi referensi Slack untuk membuatnya dan menginstalnya ke ruang kerja Anda.
- Konfigurasikan aplikasi Slack Anda dengan cakupan OAuth untuk
chat:write
danchat:write.public
. - Salin token OAuth Pengguna Bot aplikasi.
Buat file yang menentukan konfigurasi saluran notifikasi Anda. Sertakan label tempat kunci
auth_token
memiliki nilai token OAuth Pengguna Bot aplikasi Slack Anda. Contoh:{ "description": "A Slack notification channel", "displayName": "Slack", "type": "slack", "enabled": true, "labels": { "auth_token": "OAUTH_TOKEN_VALUE", "channel_name": "SLACK_CHANNEL_NAME" } }
Jalankan perintah berikut untuk membuat saluran notifikasi:
gcloud beta monitoring channels create --channel-content-from-file="FILE_NAME"
Mencantumkan saluran notifikasi dalam project
Untuk mengambil semua saluran notifikasi dalam project Google Cloud, gunakan metode notificationChannels.list
. Metode ini juga mendukung opsi filter
dan orderBy
untuk membatasi dan mengurutkan hasil; lihat Mengurutkan dan Memfilter.
Jika mencari channel tertentu dan mengetahui namanya,
Anda dapat menggunakan metode notificationChannels.get
untuk mengambil channel tersebut saja. Nama saluran memiliki format
projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
, misalnya:
projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Saat Anda mengambil saluran, nilai sensitif seperti token autentikasi dan kunci API mungkin di-obfuscate karena alasan keamanan. Jika Anda membuat channel baru dengan menyalin channel yang ada, nilai yang di-obfuscate harus diperbaiki.
gcloud
Untuk mencantumkan semua saluran notifikasi dalam project Google Cloud, gunakan perintah gcloud beta monitoring channels list
:
gcloud beta monitoring channels list
Jika berhasil, perintah list
akan memberikan listingan semua saluran
dalam project yang ditentukan. Misalnya, perintah di atas mungkin menampilkan daftar
yang menyertakan entri berikut:
--- description: E-mail channel created by gcloud as a test displayName: test e-mail channel enabled: false labels: email_address: user@example.com name: projects/[PROJECT_ID]/notificationChannels/1355376463305411567 type: email --- description: Pub/Sub channel for notifications displayName: Notifications enabled: true labels: topic: projects/[PROJECT_ID]/topics/notificationTopic name: projects/[PROJECT_ID]/notificationChannels/1355376463305411567 type: pubsub
Untuk mencantumkan satu saluran, gunakan gcloud beta monitoring
channels describe
, dan tentukan nama saluran.
Misalnya, perintah ini menampilkan saluran Pub/Sub yang ditampilkan dalam
daftar di atas:
gcloud beta monitoring channels describe projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Lihat referensi gcloud beta monitoring channels list
dan describe
untuk informasi selengkapnya. Perintah describe
sesuai dengan metode
notificationChannels.get
di API.
C#
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Menghapus saluran notifikasi dari project
Untuk menghapus saluran notifikasi dari project Google Cloud, gunakan metode notificationChannels.delete
, dan berikan nama saluran notifikasi yang akan dihapus. Nama saluran adalah nilai
kolom name
, bukan displayName
, dalam instance NotificationChannel
.
Nama saluran memiliki format
projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
, misalnya:
projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Secara default, jika Anda mencoba menghapus saluran yang dirujuk oleh
kebijakan pemberitahuan, saluran tersebut tidak akan dihapus. Untuk memaksa penghapusan
referensi dari kebijakan pemberitahuan dan menghapus channel, tetapkan opsi force
ke true
. Opsi ini otomatis menghapus saluran dari semua
kebijakan pereferensian.
gcloud
Untuk menghapus saluran notifikasi, gunakan gcloud beta monitoring channels
delete
, dan tentukan nama saluran yang akan dihapus. Misalnya, perintah berikut menghapus saluran email
yang dibuat dalam contoh lain:
gcloud beta monitoring channels delete projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Lihat referensi
gcloud beta monitoring channels delete
untuk informasi selengkapnya.
C#
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Mengubah saluran notifikasi
Untuk mengubah saluran notifikasi, gunakan
metode notificationChannels.patch
(di REST API).
Implementasi API lainnya dan Google Cloud CLI memanggilnya update
,
bukan patch
.
Operasi pembaruan dapat sepenuhnya mengganti saluran yang ada, atau dapat mengubah subkumpulan kolom. Misalnya, Anda dapat mengaktifkan dan menonaktifkan saluran. Menonaktifkan saluran akan mencegah pengiriman notifikasi ke saluran tersebut. Menonaktifkan channel biasanya lebih mudah daripada menghapus channel dari kebijakan pemberitahuan yang merujuk ke channel tersebut, jika perubahannya bersifat sementara.
gcloud
Untuk mengaktifkan saluran notifikasi yang dinonaktifkan, gunakan perintah gcloud beta monitoring channels update
, dan berikan tanda --enabled
. Perintah berikut mengaktifkan saluran notifikasi email
yang dibuat—dalam status nonaktif—dalam contoh sebelumnya:
gcloud beta monitoring channels update projects/[PROJECT_ID]/notificationChannels/1355376463305411567 --enabled
Untuk menonaktifkan kebijakan, gunakan perintah yang sama dan berikan flag --no-enabled
.
Lihat referensi gcloud beta monitoring channels update
untuk informasi selengkapnya. Perintah update
sesuai dengan metode
notificationChannels.patch
di REST API.
C#
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Melihat log saluran notifikasi
Anda dapat menggunakan Logs Explorer untuk melihat error saluran notifikasi:
-
Di konsol Google Cloud, buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Masukkan dan jalankan kueri Anda. Untuk kueri khusus error channel notifikasi, lihat Kueri Cloud Monitoring.