Saat membuat kebijakan notifikasi, Anda dapat mengirimkan pemberitahuan peringatan ke URL webhook kustom. Fitur manajemen alert memungkinkan pengiriman alert ke layanan pihak ketiga melalui integrasi webhook. Topik ini menggunakan Lark sebagai contoh untuk menunjukkan cara membuat dan mengonfigurasi webhook untuk alert.
Langkah 1: Dapatkan URL webhook
-
Buka dan masuk ke Lark.
-
Klik ikon +, lalu klik Create Group untuk membuat grup yang menerima alert.
-
Klik ikon pengaturan grup, lalu pilih tab Bots.
-
Pada tab Bots, klik Add Bot.
-
Pada panel Add Bot, pilih Custom Bot.
-
Pada halaman konfigurasi, atur Display name dan Description, lalu klik Add.
-
Pada bagian Webhook URL, klik Copy Link, lalu klik Finish.
Pada bagian Security Settings, centang kotak Custom Keywords dan tambahkan kata kunci
alert.
Langkah 2: Buat integrasi webhook
-
Masuk ke Managed Service for Prometheus console. Di panel navigasi kiri, pilih .
-
Klik tab Webhook integration, lalu klik Create webhook di pojok kanan atas. Konfigurasikan parameter berikut pada panel Create webhook.
Parameter
Deskripsi
Webhook name
Masukkan nama kustom untuk webhook.
Request method
Pilih metode permintaan, POST atau GET, dan masukkan URL yang dimulai dengan http:// atau https://. Panjang URL tidak boleh melebihi 100 karakter.
Untuk contoh ini, pilih POST dan tempel URL webhook yang Anda peroleh di Langkah 1: Dapatkan URL webhook ke dalam kotak teks di sebelah kanan.
Header, param
Atur header permintaan dan parameter. Setiap header dan parameter tidak boleh melebihi 200 karakter.
Klik + Add untuk menambahkan informasi header atau parameter lainnya. Header permintaan default adalah
Content-Type: text/plain; charset=UTF-8. Jumlah total header dan parameter tidak boleh melebihi enam.Untuk contoh ini, atur dua header berikut:
-
Arms-Content-Type : json
-
Content-Type : application/json
Jika Anda memilih POST sebagai metode permintaan, Anda juga harus mengonfigurasi parameter berikut.
Notification template
Templat untuk notifikasi alert yang dipicu. Anda dapat menggunakan placeholder $content untuk menghasilkan konten notifikasi. Panjang templat tidak boleh melebihi 500 karakter. Untuk informasi selengkapnya, lihat Konfigurasikan templat notifikasi dan templat webhook.
Berikut contoh templat notifikasi:
{ "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 contoh 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
Templat untuk notifikasi yang dikirim saat alert terselesaikan. Anda dapat menggunakan placeholder $content untuk menghasilkan konten notifikasi. Panjang templat tidak boleh melebihi 500 karakter. Untuk informasi selengkapnya, lihat Konfigurasikan templat notifikasi dan templat webhook.
Berikut contohnya:
{ "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 contoh 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 }} \nResolved alert content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } } -
-
(Opsional) Klik Test untuk memverifikasi konfigurasi Anda.
-
Klik OK.
Langkah 3: Siapkan kebijakan notifikasi
Buat atau edit kebijakan notifikasi. Untuk Notification objects, pilih Universal webhook, lalu pilih integrasi webhook yang telah Anda buat. Untuk informasi selengkapnya, lihat Kebijakan notifikasi.
Timeout untuk permintaan webhook adalah 5 detik. Jika titik akhir tidak merespons dalam waktu tersebut, pengiriman notifikasi gagal.