日志服務提供動態接收人功能,您可以通過Webhook服務設置告警通知的動態接收人。
使用場景
一般情況下,您在日志服務告警中創建用戶或用戶組后,可以在行動策略中選擇對應的用戶或用戶組作為告警通知的接收人,但是此方式并不能滿足特殊場景。例如:
對接第三方的用戶管理系統:某些企業擁有自建的用戶管理系統,確保用戶管理系統與日志服務告警用戶實時同步存在較大困難。 并且企業擁有自己的組織架構,日志服務告警用戶、用戶組模型并不能完全適用。
通知給動態聯系人:當您的系統中存在很多服務,且每個服務的告警需要通知給不同的接收人時,如果使用行動策略的動態分派機制,需要配置很多分支,也會增加維護成本。
工作原理
針對上述特殊場景,您可以使用動態接收人完成告警通知的接收人設置。通過動態接收人方式,您只需提供一個Webhook服務,日志服務告警發送時,會調用該Webhook服務,然后由該服務返回需要通知的用戶信息。您無需在日志服務告警中維護接收人。
動態接收人
靜態接收人
配置說明
在創建行動策略時,設置接收人類型為動態接收人,然后配置如下參數。
參數 | 說明 |
接收人類型 | 選擇動態接收人 。 |
接收人回調地址 | 設置為Webhook服務地址。Webhook接口規范說明,請參見接口規范。相關限制說明如下:
重要 調用動態聯系人的Webhook與調用告警通知的Webhook類似,當您需要設置訪問限制時,可以通過設置IP白名單或設置HTTP Header的方式。更多信息,請參見如何設置訪問權限校驗。 |
請求頭 | 在日志服務向接收人回調地址發送請求時,需要添加的請求頭。 默認添加Content-Type: application/json請求頭,因此設置Content-Type為其它值時不會生效。 |
接口規范
Request信息
請求方法:POST
請求頭:
您自定義設置的請求頭。
默認請求頭Content-Type: application/json。
請求數據格式示例
alerts為告警信息(數組類型),表示告警合并后的一個告警集合,最多包含10條告警。當您的Webhook服務接收到該數據后,會根據該數據判斷告警通知接收人,并將接收人信息返回給日志服務。
{ "alerts": [{ "alert_id": "test-alert-1", "alert_instance_id": "jid-2ed042ba079041c-a578-441e-8d25-42e92aef506c", "alert_name": "Test Alert 1", "alert_time": 1646808904, "alert_type": "sls_alert", "aliuid": "123****3424", "annotations": { "desc": "Test alert triggered", "title": "Test Title" }, "fire_results": [{ "message": "error occurs" }], "fire_results_count": 1, "fire_time": 1646808904, "labels": { "app": "nginx" }, "next_eval_interval": 60, "project": "demo-alert", "region": "cn-hangzhou", "resolve_time": 0, "severity": 8, "status": "firing" }] }
Response信息
狀態碼:200
響應頭:必須包含Content-Type: application/json。
返回數據格式示例:
{ "receivers": [{ "code": "86", "phone": "137****34", "email": "****@example.com" }] }
屬性
數據類型
是否必須存在
說明
code
string
否
如果返回結果中無此字段,則日志服務默認code為86。
phone
string
否
對于短信、語音、釘釘和企業微信通知生效。如果為郵件通知,可忽略該字段。
email
string
否
僅對郵件通知渠道生效。如果為其它渠道,可忽略該字段。