Selain notifikasi melalui email, DingTalk, Lark, WeCom, dan Slack, Cloud Monitor menyediakan fitur alert callback untuk penanganan event yang lebih fleksibel. Topik ini menjelaskan cara menggunakan fitur tersebut untuk meneruskan notifikasi peristiwa sistem ke sebuah webhook, sehingga Anda dapat mengintegrasikan peringatan Cloud Monitor dengan sistem O&M atau notifikasi yang sudah ada.
Prasyarat
Pastikan Anda memiliki URL publik untuk sistem O&M atau sistem perpesanan Anda.
Informasi latar belakang
Cloud Monitor mengirimkan notifikasi peringatan ke URL yang Anda tentukan menggunakan permintaan POST melalui HTTP atau HTTPS. Tambahkan alamat IP berikut ke daftar putih firewall Anda. Setelah menerima notifikasi peringatan, Anda dapat memprosesnya lebih lanjut berdasarkan isinya.
Prosedur
-
Buat saluran dorong (push channel).
Contoh ini menggunakan webhook sebagai saluran dorong.
-
Masuk ke Konsol Cloud Monitor.
-
Di panel navigasi sebelah kiri, pilih Event Center > Event Subscription.
-
Pada halaman Event Subscription, klik tab Push Channel.
-
Pada tab Push Channel, klik Create Push Channel.
-
Pada panel Create Push Channel, masukkan Channel Name, atur Target Type ke Webhook, Request Method ke POST, dan Data Format ke JSON. Di bidang Address, masukkan URL panggilan balik peringatan dan gunakan pengaturan default untuk parameter lainnya.
-
Klik OK.
-
-
Buat kebijakan langganan.
Contoh ini berlangganan peristiwa sistem Instance:InstanceFailure.Reboot:Executing untuk instance ECS dan mendorong notifikasi ke webhook.
-
Klik tab Subscription Policy.
-
Pada tab Subscription Policy, klik Create Subscription Policy.
-
Pada halaman Create Subscription Policy, konfigurasikan parameter-parameter berikut.
-
Basic Information: Masukkan nama untuk kebijakan langganan.
-
Alert Subscription: Atur Subscription Type ke System Event. Pada bagian Subscription Scope, atur Product ke ECS dan Event Name ke Instance:InstanceFailure.Reboot:Executing. Gunakan pengaturan default untuk parameter lainnya. Ini akan berlangganan peristiwa sistem Instance:InstanceFailure.Reboot:Executing untuk semua instance ECS di bawah akun Anda.
CatatanUntuk informasi lebih lanjut mengenai peristiwa sistem yang didukung oleh ECS, lihat ECS.
-
Merge and Denoise: Gunakan pengaturan default.
-
Notification: Jangan konfigurasikan Notification Configuration. Gunakan metode notifikasi default untuk Custom Notification Method.
CatatanKarena tidak ada kelompok peringatan yang dikonfigurasi pada Notification Settings, tidak ada kontak peringatan, sehingga Anda tidak akan menerima notifikasi peringatan.
-
Push and Integration: Pilih saluran dorong yang dibuat pada Langkah 1.
-
-
Klik Submit.
-
-
Lakukan debug langganan event.
-
Pada tab Subscription Policy, klik Debug Event Subscription.
-
Pada panel Create Event Debugging, atur Product ke ECS dan Name ke Instance:InstanceFailure.Reboot:Executing.
Sistem secara otomatis menghasilkan konten debug dalam format JSON.
-
Klik OK.
Sistem menampilkan pesan Operation successful. Cloud Monitor kemudian secara otomatis mengirimkan notifikasi peringatan uji coba ke URL webhook yang telah Anda tentukan.
-
Hasil
Ketika suatu peristiwa sistem memicu peringatan, Cloud Monitor mengirimkan informasi peringatan tersebut ke URL yang telah Anda tentukan. Webhook mendukung metode permintaan POST dan GET. Contoh berikut menunjukkan konten permintaan untuk masing-masing metode:
-
POST JSON
Nama parameter:
body.Contoh konten:
{ "userInfo": { "aliyunId": "test", "userIdSec": "te***st", "aliyunIdSec": "test***test", "nickName": "test", "nickNameSec": "te***st", "userName": "test", "userId": "test", "userNameSec": "te***st" }, "subscription": { "subscriptionUuid": "testid", "conditions": [ { "field": "source", "op": "EQ", "value": "SYS_EVENT" }, { "field": "product", "op": "IN", "value": "ECS,Redis,RDS,Config,tag" } ], "relation": "AND" }, "batchId": "testbatchid", "alert": { "alertStatus": "TRIGGERED", "groupId": "", "source": "SYS_EVENT", "eventContentMap": { "extensions": { "agentVersion": "test-version", "region": "cn-hangzhou", "azone": "cn-hangzhou-i", "uptime": 23000 }, "vmName": "i-testhost", "impact": "Alert", "opsCode": "InstanceStatusChange", "bizEventId": "test-event-id" }, "dedupId": "test-id", "eventName": "CloudAssistant:FirstHeartbeat", "arn": "acs:ecs:cn-hangzhou:testuser:instance/i-testhost", "timestamp": 1704780333000, "traceId": "testid", "severity": "INFO", "product": "ECS", "eventRawContent": "{}", "eventType": "Notification", "userId": "test", "meta": { "sysEventMeta": { "regionNameEn": "cn-hangzhou", "resourceId": "acs:ecs:cn-hangzhou:test:instance/i-testhost", "product": "ECS", "eventNameEn": "CloudAssistant:FirstHeartbeat", "instanceName": "i-testhost", "level": "INFO", "resource": "", "regionNameZh": "华东1(杭州)", "groupId": "", "serviceTypeEn": "ECS", "eventType": "Notification", "serviceTypeZh": "云服务器ECS", "regionId": "cn-hangzhou", "eventTime": "20240109T140533.642+0800", "name": "CloudAssistant:FirstHeartbeat", "id": "testid", "status": "Normal", "eventNameZh": "云助手首次心跳事件" } } }, "severity": "INFO", "strategyName": "eventwebhook", "userId": "test", "time": 1704780333000 } -
GET JSON
Nama parameter:
data.Contoh konten:
{ "userInfo": { "aliyunId": "test", "userIdSec": "te***st", "aliyunIdSec": "test***test", "nickName": "test", "nickNameSec": "te***st", "userName": "test", "userId": "test", "userNameSec": "te***st" }, "subscription": { "subscriptionUuid": "testid", "conditions": [ { "field": "source", "op": "EQ", "value": "SYS_EVENT" }, { "field": "product", "op": "IN", "value": "ECS,Redis,RDS,Config,tag" } ], "relation": "AND" }, "batchId": "testbatchid", "alert": { "alertStatus": "TRIGGERED", "groupId": "", "source": "SYS_EVENT", "eventContentMap": { "extensions": { "agentVersion": "test-version", "region": "cn-hangzhou", "azone": "cn-hangzhou-i", "uptime": 23000 }, "vmName": "i-testhost", "impact": "Alert", "opsCode": "InstanceStatusChange", "bizEventId": "test-event-id" }, "dedupId": "test-id", "eventName": "CloudAssistant:FirstHeartbeat", "arn": "acs:ecs:cn-hangzhou:testuser:instance/i-testhost", "timestamp": 1704780333000, "traceId": "testid", "severity": "INFO", "product": "ECS", "eventRawContent": "{}", "eventType": "Notification", "userId": "test", "meta": { "sysEventMeta": { "regionNameEn": "cn-hangzhou", "resourceId": "acs:ecs:cn-hangzhou:test:instance/i-testhost", "product": "ECS", "eventNameEn": "CloudAssistant:FirstHeartbeat", "instanceName": "i-testhost", "level": "INFO", "resource": "", "regionNameZh": "华东1(杭州)", "groupId": "", "serviceTypeEn": "ECS", "eventType": "Notification", "serviceTypeZh": "云服务器ECS", "regionId": "cn-hangzhou", "eventTime": "20240109T140533.642+0800", "name": "CloudAssistant:FirstHeartbeat", "id": "testid", "status": "Normal", "eventNameZh": "云助手首次心跳事件" } } }, "severity": "INFO", "strategyName": "eventwebhook", "userId": "test", "time": 1704780333000 } -
POST FORM dan GET FORM
Parameter
Nilai
userInfo
{ "aliyunId": "test", "userIdSec": "te***st", "aliyunIdSec": "test***test", "nickName": "test", "nickNameSec": "te***st", "userName": "test", "userId": "test", "userNameSec": "te***st" }subscription
{ "subscriptionUuid": "testid", "conditions": [ { "field": "source", "op": "EQ", "value": "SYS_EVENT" }, { "field": "product", "op": "IN", "value": "ECS,Redis,RDS,Config,tag" } ], "relation": "AND" }alert
{ "alertStatus": "TRIGGERED", "groupId": "", "source": "SYS_EVENT", "eventContentMap": { "extensions": { "agentVersion": "test-version", "region": "cn-hangzhou", "azone": "cn-hangzhou-i", "uptime": 23000 }, "vmName": "i-testhost", "impact": "Alert", "opsCode": "InstanceStatusChange", "bizEventId": "test-event-id" }, "dedupId": "test-id", "eventName": "CloudAssistant:FirstHeartbeat", "arn": "acs:ecs:cn-hangzhou:testuser:instance/i-testhost", "timestamp": 1704780333000, "traceId": "testid", "severity": "INFO", "product": "ECS", "eventRawContent": "{}", "eventType": "Notification", "userId": "test", "meta": { "sysEventMeta": { "regionNameEn": "cn-hangzhou", "resourceId": "acs:ecs:cn-hangzhou:test:instance/i-testhost", "product": "ECS", "eventNameEn": "CloudAssistant:FirstHeartbeat", "instanceName": "i-testhost", "level": "INFO", "resource": "", "regionNameZh": "华东1(杭州)", "groupId": "", "serviceTypeEn": "ECS", "eventType": "Notification", "serviceTypeZh": "云服务器ECS", "regionId": "cn-hangzhou", "eventTime": "20240109T140533.642+0800", "name": "CloudAssistant:FirstHeartbeat", "id": "testid", "status": "Normal", "eventNameZh": "云助手首次心跳事件" } } }severity
INFO
strategyName
eventwebhook
userId
test
time
1704780333000
Deskripsi field
|
Field |
Deskripsi |
|
|
Bidang luar |
batchId |
ID batch notifikasi. Setiap ID merepresentasikan pengiriman notifikasi yang unik. |
|
severity |
Tingkat keparahan. |
|
|
strategyName |
Nama kebijakan langganan. |
|
|
userId |
ID Akun Alibaba Cloud. |
|
|
time |
Waktu kejadian. |
|
|
Field dalam objek |
aliyunId |
ID Akun Alibaba Cloud. |
|
userIdSec |
ID Pengguna RAM. |
|
|
aliyunIdSec |
ID Akun Alibaba Cloud yang telah dimasking. |
|
|
nickName |
Alias Akun Alibaba Cloud. |
|
|
nickNameSec |
Alias Akun Alibaba Cloud yang telah dimasking. |
|
|
userName |
ID login Akun Alibaba Cloud. |
|
|
userId |
ID Akun Alibaba Cloud. |
|
|
userNameSec |
ID login Akun Alibaba Cloud yang telah dimasking. |
|
|
Field dalam objek |
subscriptionUuid |
ID unik kebijakan langganan. |
|
conditions |
Kondisi kebijakan langganan:
|
|
|
relation |
Hubungan logis antar kondisi. Nilai yang valid: |
|
|
Field dalam objek |
alertStatus |
Status peringatan. Nilai yang valid: |
|
groupId |
ID kelompok aplikasi. |
|
|
source |
Jenis event peringatan terbaru. |
|
|
dedupId |
ID deduplikasi event. |
|
|
eventName |
Nama event. |
|
|
arn |
Nama Sumber Daya Alibaba Cloud (ARN) dari resource yang menghasilkan event. |
|
|
timestamp |
Timestamp event. |
|
|
traceId |
ID asli event. |
|
|
severity |
Tingkat keparahan. |
|
|
product |
Nama produk. |
|
|
eventRawContent |
Data event mentah dalam bentuk string JSON. Isinya bervariasi tergantung layanan cloud. |
|
|
eventType |
Jenis event. |
|
|
userId |
ID Akun Alibaba Cloud. |
|
|
Field dalam sub-objek |
regionNameEn |
Nama wilayah dalam bahasa Inggris. |
|
resourceId |
Informasi tentang resource yang terkait dengan event. |
|
|
product |
Kode produk. |
|
|
eventNameEn |
Nama event dalam bahasa Inggris. |
|
|
instanceName |
Nama instans. |
|
|
level |
Tingkat event. |
|
|
resource |
ARN dari event sistem. |
|
|
regionNameZh |
Nama wilayah dalam bahasa Tiongkok. |
|
|
groupId |
ID kelompok aplikasi. |
|
|
serviceTypeEn |
Jenis layanan dalam bahasa Inggris. |
|
|
eventType |
Jenis event. |
|
|
serviceTypeZh |
Jenis layanan dalam bahasa Tiongkok. |
|
|
regionId |
ID wilayah. |
|
|
eventTime |
Waktu saat event dihasilkan. |
|
|
name |
Nama event. |
|
|
id |
ID event. |
|
|
status |
Status event. |
|
|
eventNameZh |
Nama event dalam bahasa Tiongkok. |
|
|
Field dalam sub-objek |
Field |
|