日志服务提供动态接收人功能,您可以通过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
否
仅对邮件通知渠道生效。如果为其它渠道,可忽略该字段。