Anda dapat menggunakan layanan webhook untuk menentukan penerima pemberitahuan peringatan secara dinamis, alih-alih memelihara daftar penerima di Simple Log Service.
Kasus penggunaan
Anda dapat membuat pengguna atau kelompok pengguna di Simple Log Service dan memilihnya dalam kebijakan tindakan untuk menerima pemberitahuan peringatan. Namun, pendekatan ini mungkin tidak cocok untuk semua skenario, seperti:
-
Mengintegrasikan dengan sistem manajemen pengguna pihak ketiga: Beberapa organisasi menggunakan sistem manajemen pengguna internal, dan menyinkronkan informasi pengguna secara real-time dengan Simple Log Service bisa menjadi tantangan. Model pengguna dan kelompok pengguna di Simple Log Service mungkin tidak sepenuhnya selaras dengan struktur yang telah ada di organisasi tersebut.
-
Memberi notifikasi kepada kontak dinamis: Jika sistem Anda memiliki banyak layanan dan setiap layanan memerlukan pengiriman peringatan ke penerima yang berbeda, mengonfigurasi cabang terpisah dalam kebijakan tindakan akan meningkatkan beban pemeliharaan.
Cara kerja
Dengan fitur penerima dinamis, Anda menyediakan layanan webhook yang dipanggil oleh Simple Log Service saat peringatan dipicu. Webhook tersebut mengembalikan informasi kontak penerima, sehingga Anda tidak perlu memelihara daftar penerima di Simple Log Service.
-
Penerima dinamis
-
Penerima statis
Konfigurasi
Dalam action policy, atur Recipient Type ke Dynamic Recipient, lalu konfigurasikan parameter berikut.
|
Parameter |
Deskripsi |
|
Recipient type |
Pilih Dynamic Recipient. |
|
Recipient callback URL |
URL layanan webhook Anda. Untuk informasi lebih lanjut, lihat spesifikasi API. Batasan berikut berlaku:
Penting
Webhook penerima dinamis mengikuti konvensi pemanggilan yang sama dengan webhook pemberitahuan peringatan standar. Untuk mengontrol akses, Anda dapat mengonfigurasi Daftar putih alamat IP atau Header HTTP kustom. Untuk informasi lebih lanjut, lihat Configure access control. |
|
Request header |
Header permintaan yang disertakan saat Simple Log Service mengirim permintaan ke Recipient callback URL. Secara default, Simple Log Service menambahkan header permintaan Content-Type: application/json. Mengatur Content-Type ke nilai lain tidak akan berpengaruh. |
Spesifikasi API
Permintaan
-
Metode permintaan: POST
-
Header permintaan:
-
Header permintaan kustom Anda.
-
Header permintaan default: Content-Type: application/json.
-
-
Muatan permintaan contoh
Bidang alerts adalah array yang berisi hingga 10 peringatan terkait. Untuk informasi lebih lanjut tentang parameter tersebut, lihat Variables in alert templates (new). Layanan webhook Anda menggunakan data ini untuk menentukan penerima dan mengembalikan informasi kontak mereka ke Simple Log Service.
{ "alerts": [ { "alert_id": "test-alert-1", // ID unik peringatan "alert_instance_id": "jid-**********-a578-441e-8d25-42e92aef506c", // ID instans "alert_name": "Test Alert 1", // Nama aturan peringatan "alert_time": 1646808904, // Waktu evaluasi saat ini "alert_type": "sls_alert", // Jenis peringatan "aliuid": "123****3424", // ID akun Alibaba Cloud // Anotasi "annotations": { "desc": "Test alert triggered", // Deskripsi "title": "Test Title" // Judul }, // Entri data yang memicu peringatan "fire_results": [ {"message": "error occurs"} ], "fire_results_count": 1, // Total jumlah entri data yang memicu peringatan "fire_time": 1646808904, // Waktu pemicu pertama // Label "labels": { "app": "nginx", // Tag aplikasi "env": "prod", // Tag lingkungan "team": "sre" // Tim yang bertanggung jawab }, "next_eval_interval": 60, // Interval evaluasi berikutnya (detik) "project": "demo-alert", // Proyek tempat aturan peringatan berada "region": "cn-hangzhou", // wilayah "resolve_time": 0, // Waktu saat peringatan diselesaikan. Nilainya 0 jika status peringatan 'firing', atau waktu resolusi aktual jika status peringatan 'resolved'. "severity": 8, // Tingkat keparahan peringatan (10: Critical, 8: High, 6: Medium, 4: Low, 2: Report-Only) "status": "firing" // Status peringatan ('firing': dipicu, 'resolved': notifikasi pemulihan) } ] }
Tanggapan
-
Kode status: 200
-
Header tanggapan: Harus menyertakan Content-Type: application/json.
-
Contoh badan tanggapan:
{ "receivers": [{ "code": "86", "phone": "137****34", "email": "****@example.com" }] }Parameter
Tipe
Wajib
Deskripsi
code
string
Tidak
Kode panggilan negara. Default-nya 86 jika tidak ditentukan.
phone
string
Tidak
Digunakan untuk notifikasi SMS, voice, DingTalk, dan Enterprise WeChat. Tidak diperlukan untuk notifikasi email.
email
string
Tidak
Hanya digunakan untuk notifikasi email. Tidak diperlukan untuk saluran lain.