Dokumen ini menjelaskan cara membuat dan mengelola saluran notifikasi dengan menggunakan library klien atau Google Cloud CLI, yang keduanya memanggil Cloud Monitoring API. Cloud Monitoring menggunakan saluran notifikasi untuk memberi tahu Anda, atau tim siaga, saat kondisi kebijakan pemberitahuan terpenuhi. Ada beberapa jenis saluran yang tersedia; setiap jenis dijelaskan dalam deskripsi saluran notifikasi. Saluran notifikasi jenis tertentu adalah instance deskriptor jenis tersebut. Kebijakan pemberitahuan Anda mencakup referensi ke saluran notifikasi yang akan digunakan sebagai jalur notifikasi.
Saluran notifikasi harus ada sebelum dapat digunakan dalam kebijakan pemberitahuan. Deskripsi saluran notifikasi disediakan untuk Anda, tetapi Anda harus membuatnya 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 alertsing-policy API, 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
pada saluran:
- Mengirim kode verifikasi
- Membuat kode untuk menyalin status verifikasi saluran terverifikasi ke saluran identik lainnya dalam proyek yang sama
- Memverifikasi saluran menggunakan kode yang dibuat oleh dua operasi sebelumnya
Untuk mengetahui informasi selengkapnya, lihat dokumen referensi notificationChannels
.
Sebelum memulai
Untuk mendapatkan izin yang diperlukan untuk 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.
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.
Membuat daftar jenis saluran notifikasi
Monitoring 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 dari
jenis saluran tersebut. Anda dapat mengambil jenis saluran yang tersedia, yang dijelaskan secara lebih umum di Membuat dan mengelola saluran notifikasi, dengan perintah berikut:
$ gcloud beta monitoring channel-descriptors list --format='value(type)'
campfire
email
google_chat
hipchat
pagerduty
pubsub
slack
sms
webhook_basicauth
webhook_tokenauth
Jika saluran notifikasi pilihan Anda tidak didukung, pertimbangkan untuk membuat pipeline yang mengandalkan pengiriman notifikasi Anda ke Pub/Sub. Untuk contoh Python yang menggunakan Flask, lihat Membuat notifikasi kustom dengan Cloud Monitoring dan Cloud Run. Untuk contoh lain, lihat repositori Git cloud-alerting-notification-forwarding.
Untuk mengambil semua deskripsi saluran dalam project Google Cloud, gunakan metode notificationChannelDescriptors.list
.
Deskriptor yang diambil bersifat hanya baca.
Jika mencari deskriptor tertentu dan mengetahui namanya,
Anda dapat menggunakan metode notificationChannelDescriptors.get
untuk mengambil deskripsi saluran tersebut saja. Nama deskriptor
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 menampilkan daftar 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 menyediakan listingan semua deskriptor
saluran dalam project yang ditentukan. Misalnya, deskriptor saluran email
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 channel mencakup kolom berikut:
name
: Nama resource yang sepenuhnya memenuhi syarat dari deskripsi salurantype
: Bagian dari nama yang menunjukkan jenis salurandisplayName
: Deskripsi kolomtype
, untuk tujuan tampilandescription
: Deskripsi singkat tentang channellabels
: Kumpulan kolom khusus untuk jenis saluran. Setiap jenis saluran memiliki kumpulan labelnya sendiri.
Saat dibuat, saluran 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 deskriptor
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 dengan menggunakan Google Cloud CLI, dan Anda dapat membuatnya secara terprogram.
Untuk membuat saluran notifikasi, Anda harus memberikan nilai untuk kolom-kolom dalam deskriptornya. Sebagian besar fungsi tersebut, seperti type
, bersifat umum
di semua deskripsi saluran notifikasi; lihat
notificationChannelDescriptors
.
Setiap deskripsi juga memiliki kumpulan label, dan kumpulan ini bervariasi di seluruh
deskriptor. 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
menunjukkan 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 channel webhook_basicauth
menunjukkan 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 maupun dari command line,
nilai type
dalam spesifikasi harus cocok dengan kolom type
di
deskripsi saluran notifikasi yang sesuai. Kunci label
yang diperlukan juga harus cocok dengan yang ada di deskriptor saluran.
Beberapa label berkaitan dengan kredensial yang digunakan untuk mengautentikasi dengan penyedia. Saat membuat saluran, nilai untuk label ini harus diperoleh dari penyedia. Untuk mendapatkan kredensial, Anda dapat menggunakan halaman pembuatan kunci API di situs penyedia atau menyelesaikan alur login OAuth dengan penyedia tersebut. Detail cara mendapatkan kredensial tersebut bergantung pada penyedia tertentu.
Misalnya, contoh berikut menunjukkan spesifikasi saluran notifikasi pubsub
baru di 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
di deskriptor 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
tanda --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 mengetahui informasi selengkapnya.
C#
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi 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 bagi aplikasi Slack, lakukan hal berikut:
Konfigurasi aplikasi Slack Anda:
- Jika belum memiliki aplikasi Slack, ikuti dokumentasi referensi Slack untuk membuat aplikasi 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 mendefinisikan 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"
Membuat daftar saluran notifikasi dalam sebuah 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 Pengurutan dan Pemfilteran.
Jika mencari saluran tertentu dan mengetahui namanya, Anda dapat menggunakan metode notificationChannels.get
untuk mengambil saluran 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 akan di-obfuscate untuk alasan keamanan. Jika Anda membuat saluran baru dengan menyalin channel yang sudah ada, setiap nilai yang di-obfuscate perlu dikoreksi.
gcloud
Untuk menampilkan daftar semua saluran notifikasi dalam project Google Cloud, gunakan perintah gcloud beta monitoring channels list
:
gcloud beta monitoring channels list
Jika berhasil, perintah list
akan menyediakan listingan semua saluran dalam project yang ditentukan. Misalnya, perintah di atas mungkin menampilkan daftar
yang berisi entri berikut:
--- description: E-mail channel created by gcloud as a test displayName: test e-mail channel enabled: false labels: email_address: [email protected] 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
, lalu tentukan nama salurannya.
Misalnya, perintah ini akan menampilkan saluran Pub/Sub yang ditunjukkan dalam listingan 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 mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi 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 channel yang dirujuk oleh kebijakan pemberitahuan, channel tersebut tidak akan dihapus. Untuk memaksa penghapusan referensi dari kebijakan pemberitahuan dan menghapus saluran, tetapkan opsi force
ke true
. Opsi ini secara otomatis menghapus channel dari semua kebijakan yang merujuk.
gcloud
Untuk menghapus saluran notifikasi, gunakan gcloud beta monitoring channels
delete
, dan tentukan nama saluran yang akan dihapus. Misalnya, perintah berikut akan 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 mengetahui informasi selengkapnya.
C#
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi 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 memanggil update
ini,
bukan patch
.
Operasi update dapat sepenuhnya mengganti saluran yang ada, atau dapat mengubah subkumpulan kolom. Misalnya, Anda dapat mengaktifkan dan menonaktifkan channel. Menonaktifkan saluran akan mencegah pengiriman notifikasi ke saluran. Menonaktifkan saluran biasanya lebih mudah daripada menghapus saluran dari kebijakan pemberitahuan yang merujuknya, jika perubahan tersebut dimaksudkan 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 mengetahui informasi selengkapnya. Perintah update
sesuai dengan metode notificationChannels.patch
di REST API.
C#
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat log saluran notifikasi
Anda dapat menggunakan Logs Explorer untuk melihat error saluran notifikasi:
-
Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Logs Explorer:
Masukkan dan jalankan kueri Anda. Untuk kueri khusus error saluran notifikasi, lihat Kueri Cloud Monitoring.