Anda dapat mengirim pemberitahuan peringatan ke URL webhook kustom saat membuat kebijakan notifikasi. Fitur manajemen alert di Application Real-Time Monitoring Service (ARMS) memungkinkan Anda mengirim alert ke layanan pihak ketiga melalui webhook. Topik ini menggunakan Lark sebagai contoh untuk menunjukkan cara menyiapkan webhook guna menerima notifikasi tersebut.
Langkah 1: Dapatkan URL webhook Lark
Konfigurasikan bot webhook Lark dari klien desktop Lark.
Buka dan masuk ke Lark.
Klik ikon +, lalu klik New group untuk membuat grup yang menerima alert.
Klik ikon pengaturan grup, lalu klik tab Bots.
Pada tab Bots, klik Add Bot.
Pada panel Add Bot, pilih Custom Bot.
Pada halaman konfigurasi, atur Bot name dan Description, lalu klik Add.
Pada bagian hasil, klik Copy untuk menyimpan URL webhook, lalu klik Complete.
Pada bagian Security Settings, centang kotak Custom Keywords dan masukkan kata kunci alert di kotak teks.
Langkah 2: Buat webhook
-
Masuk ke Konsol ARMS. Di panel navigasi sebelah kiri, pilih .
Klik tab Webhook Integration, lalu klik Create Webhook.
Pada kotak dialog Create Webhook, konfigurasikan parameter berikut.
Parameter
Deskripsi
Webhook name
Wajib diisi. Nama kustom untuk webhook.
Post/Get
Wajib diisi. Metode HTTP. URL tidak boleh melebihi 256 karakter.
Pada contoh ini, pilih Post dan tempel URL webhook yang Anda peroleh di Langkah 1: Dapatkan URL webhook dari Lark ke dalam kotak teks di sebelah kanan.
Header and Param
Opsional. Menentukan header permintaan, yang tidak boleh melebihi 200 karakter. Klik +Add untuk menambahkan Header atau Param lainnya. Header permintaan default adalah Content-Type: text/plain; charset=UTF-8, dan jumlah total Header dan Param tidak boleh melebihi 6.
Pada contoh ini, atur dua Header berikut:
Arms-Content-Type : json
Content-Type : application/json
Notification template
Opsional. Templat untuk notifikasi yang dikirim saat alert dipicu. Parameter ini hanya tersedia untuk metode Post. Anda dapat menggunakan placeholder
$contentuntuk menyertakan konten notifikasi. Templat tidak boleh melebihi 500 karakter. Untuk informasi selengkapnya, lihat Konfigurasikan templat notifikasi dan templat webhook.{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Alert Time":"{{ .startTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Untuk Lark, Anda dapat menggunakan format teks berikut:
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Notification Policy: {{ .dispatchRuleName }} \nAlert Time: {{ .startTime }} \nAlert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }Template to Clear Alerts
Opsional. Templat untuk notifikasi yang dikirim saat alert diselesaikan. Parameter ini hanya tersedia untuk metode Post. Anda dapat menggunakan placeholder
$contentuntuk menyertakan konten notifikasi. Templat tidak boleh melebihi 500 karakter. Untuk informasi selengkapnya, lihat Konfigurasikan templat notifikasi dan templat webhook.{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Recovery Time":"{{ .endTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Untuk Lark, Anda dapat menggunakan format teks berikut:
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Recovery Time: {{ .startTime }} \nNotification Policy: {{ .dispatchRuleName }} \nCleared Alert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }Opsional: Klik Send Test untuk memverifikasi konfigurasi.
Klik OK.
Langkah 3: Konfigurasikan kebijakan notifikasi
Buat atau edit kebijakan notifikasi. Atur Notification Objects menjadi Universal Webhook, lalu pilih webhook yang telah Anda buat. Untuk informasi selengkapnya, lihat Kebijakan notifikasi.
Permintaan webhook akan timeout jika respons tidak diterima dalam waktu 5 detik, sehingga menyebabkan notifikasi gagal terkirim.