响应
当智能告警产品监控的指标触发了告警时,默认仅会将相关告警信息展示在事件中心和警报页面;当北冥产品收敛出故障时,默认仅会展示在故障页面。如需将告警信息或者故障信息通知给相关责任人或第三方群组,需要做响应配置,包括设置推送人、内容通知模板和响应策略。
推送配置
用户可以通过推送配置为智能告警产品的告警和北冥产品的故障设置推送渠道和推送目标。
注意:悟空平台和原有的SaaS 2.0平台的接收人、接收组、第三方推送数据,会有一次性同步。一次性同步之后,两个平台的新增配置数据,是完全分开的功能,悟空平台使用的推送,需在本平台中配置。
接收人
新建接收人,请按照以下步骤进行操作:
- 在左侧导航栏中选择配置>响应>推送配置,进入推送配置页面。
- 在页面上方点击接收人列表页签,然后在页面右上角点击新建接收人按钮,弹出修改/新建接收人对话框。
配置接收人。
- 接收人姓名(必填):接收人的姓名。
- 邮箱(必填):接收人的邮箱地址。
- 手机号(选填):接收人的手机号。
- 免打扰时段(选填):开启后,支持设置时间段,在该时间段内发生的告警等不会通知该接收人。默认是关闭,即任何时间段都通知该接收人。
- 加入接收组(选填):选择后接收人将包含于相应的接收组内。
点击确定,保存配置。
新创建的接收人会展示在接收人列表中。
接收组
创建接收组前,请先创建好接收人。
新建接收组,请按照以下步骤进行操作:
- 在左侧导航栏中选择配置>响应>推送配置,进入推送配置页面。
- 在页面上方点击接收组列表页签,然后在页面右上角点击新建接收组按钮,弹出修改/新建接收组对话框。
配置接收组。
- 组名(必填):接收组的名称。
- 组员名单:选择接收人加入该接收组。
点击确定,保存配置。
新创建的接收组会展示在接收组列表中。
第三方推送
目前支持的第三方平台有:钉钉、企业微信、ITSM、飞书、WebHook。配置钉钉、企业微信、飞书后,机器人可以将基调听云警报信息聚合到群聊中,实现自动化的信息同步;配置WebHook后,警报消息会实时地发送到用户指定的外部服务上;配置ITSM后,警报消息会实时地发送到ITSM系统中。
配置Hook URL
在配置第三方推送前,需要先在第三方平台中获取Hook URL。
配置钉钉的Hook URL,请在钉钉群中的设置页面中找到智能群助手,添加机器人后获取。
配置企业微信的Hook URL,请参见企业微信帮助文档。
配置飞书的Hook URL,请参见飞书帮助文档。
配置自定义WebHook的Hook URL,基调听云 Outgoing 会将满足条件了信息 POST 到用户设置的这个URL 地址。
配置第三方推送
在左侧导航栏中依次选择配置>响应>推送配置,在页面上方点击第三方推送页签。
点击页面右上角的新建第三方推送按钮,在弹出的对话框中进行配置。
- 第三方平台:选择一个目标平台进行推送。
- 推送名称:输入第三方推送的名称,支持特殊字符。
- Header(可选):仅自定义WebHook有该配置项。通过配置HTTP请求头中的字段,可以告诉第三方平台系统可以接受的信息,例如accept:application/json,代表系统可以接收JSON格式的响应报文。
- Hook URL:支持 HTTPS和HTTP协议,基调听云智能告警系统会将触发的告警信息、北冥系统会将故障信息或非内置数据源事件推送到该URL 地址。将上面配置出的Hook URL填到此处。
- 免打扰时段(可选):在该时段内,上述URL地址不会收到警报信息或故障信息。
点击确定按钮,完成配置。
新创建的第三方推送将显示在第三方推列表中。支持修改和删除推送方案。
通知模板
用户可以按照自己的需求来自定义通知发送的内容。支持多个通知模板同时使用,针对不同的响应策略可以选择不同的通知模板。目前模版支持短信、邮件、语音、微信和第三方推送。
新建通知模板
新建通知模板,请按照以下步骤进行操作:
在左侧导航栏中选择配置>响应>通知模板,进入通知模板列表页面。
在页面右上角点击新建模板按钮,进入新建模板页面。
配置模板。
模版类型:分为事件和故障,区别是右侧的配置说明内容中的变量不同。
模版名称、邮件标题、邮件内容,都可以引用变量。
内容格式:支持TXT和HTML,后者支持富文本。
请参见模板变量的说明,配置模板内容。右侧配置说明中,鼠标悬浮在变量上,会出现“复制”图标,点击后可以复制该变量。模板内容样例如下:
{ "id":${id}, "beginTime":"${beginTime?datetime}", "duration":${duration}, <#if closeTime??>"closeTime":"${closeTime?datetime}"</#if> "transactor":"${transactor}", "processingStatus":"${processingStatus}", "status":"${status}", "importance":"${importance}", "policy":"${policy}", "sources":"${sources}", "count":${count}, "importantCount":${importantCount}, "processingStatus":"${processingStatus}", "metricsTopFive":[<#list metrics as metric><#if metric_index!=0>,</#if> {"metric":"${metric.metric}","count":${metric.count}}</#list>], "targetsTopFive":[<#list targets as target><#if target_index!=0>,</#if> {"target":"${target.targetName}","count":${target.count},"targetType":"${target.targetType}"} </#list>], "alert":{ "id":${alert.id}, "status":"${alert.status}", "beginTime":"${alert.beginTime?datetime}", "duration":${alert.duration}, "metric":"${alert.metric}", "source":"${alert.source}", "targetType":"${alert.targetType}", "targetName":"${alert.targetName}", "importance":"${alert.importance}", "count":${alert.count}, "description":"${alert.description?replace("\n"," ")}", "attribute":{<#list alert.attribute?keys as mykey><#if mykey_index!=0>, </#if>"${mykey}":"${alert.attribute['${mykey}']}"</#list>} }<#if allAlerts??>, "allAlerts":[<#list allAlerts as alertOne><#if alertOne_index!=0>,</#if> { "id":${alertOne.id}, "status":"${alertOne.status}", "beginTime":"${alertOne.beginTime?datetime}", "duration":${alertOne.duration}, "metric":"${alertOne.metric}", "source":"${alertOne.source}", "targetType":"${alertOne.targetType}", "targetName":"${alertOne.targetName}", "importance":"${alertOne.importance}", "count":${alertOne.count}, "description":"${alertOne.description?replace("\n"," ")}", "attribute":{<#list alertOne.attribute?keys as mykey><#if mykey_index!=0>, </#if>"${mykey}":"${alertOne.attribute['${mykey}']}"</#list>} }</#list>]</#if><#if importantAlerts??>, "importantAlerts":[<#list importantAlerts as alertOne><#if alertOne_index!=0>,</#if> { "id":${alertOne.id}, "status":"${alertOne.status}", "beginTime":"${alertOne.beginTime?datetime}", "duration":${alertOne.duration}, "metric":"${alertOne.metric}", "source":"${alertOne.source}", "targetType":"${alertOne.targetType}", "targetName":"${alertOne.targetName}", "importance":"${alertOne.importance}", "count":${alertOne.count}, "description":"${alertOne.description?replace("\n"," ")}", "attribute":{<#list alertOne.attribute?keys as mykey><#if mykey_index!=0>, </#if>"${mykey}":"${alertOne.attribute['${mykey}']}"</#list>} }</#list>]</#if><#if criticalAlerts??>, "criticalAlerts":[<#list criticalAlerts as alertOne><#if alertOne_index!=0>,</#if> { "id":${alertOne.id}, "status":"${alertOne.status}", "beginTime":"${alertOne.beginTime?datetime}", "duration":${alertOne.duration}, "metric":"${alertOne.metric}", "source":"${alertOne.source}", "targetType":"${alertOne.targetType}", "targetName":"${alertOne.targetName}", "importance":"${alertOne.importance}", "count":${alertOne.count}, "description":"${alertOne.description?replace("\n"," ")}", "attribute":{<#list alertOne.attribute?keys as mykey><#if mykey_index!=0>, </#if>"${mykey}":"${alertOne.attribute['${mykey}']}"</#list>} }</#list>]</#if><#if unclosedAlerts??>, "unclosedAlerts":[<#list unclosedAlerts as alertOne><#if alertOne_index!=0>,</#if> { "id":${alertOne.id}, "status":"${alertOne.status}", "beginTime":"${alertOne.beginTime?datetime}", "duration":${alertOne.duration}, "metric":"${alertOne.metric}", "source":"${alertOne.source}", "targetType":"${alertOne.targetType}", "targetName":"${alertOne.targetName}", "importance":"${alertOne.importance}", "count":${alertOne.count}, "description":"${alertOne.description?replace("\n"," ")}", "attribute":{<#list alertOne.attribute?keys as mykey><#if mykey_index!=0>, </#if>"${mykey}":"${alertOne.attribute['${mykey}']}"</#list>} }</#list>]</#if> }
点击保存,完成配置。
说明:短信、语音和第三方推送,和邮件类似,在这里不一一列举。
模板变量说明
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
shortUrl | string | 否 | 单击该链接,在非登录状态下可直接查看警报详情。 | |
product | string | 是 | 产品线 | |
target | string | 是 | 事件对象,如一台主机192.168.1.23。 | |
targetName | string | 是 | 事件对象,如一台主机192.168.1.23。 | |
targetType | string | 是 | 对象类型,如主机、应用、事务、业务等。 | |
happendTime | string | 是 | 发生时间,即当前事件触发的时间。 ${happendTime?date} :标准日期转日期字符串, ${happendTime?datetime} :标准日期转日期+时间 字符串, ${happendTime?string("yyyy-MM-dd HH:mm:ss")} :标准日期转自定格式字符串。 | |
metric | string | 是 | 指标名称,逗号拼接如:a,b,c。 | |
groupType | string | 否 | 分组方式。$user_id :VIP分组 ,$instance_id :实例 ,$country_id :城市, $region_id :区域, $isp_id :运营商, $request_type :服务类型。 | |
errorCode | string | 否 | 错误率等指标配置该变量后,通知中会显示该错误的top数据。 | |
externalExceptionCount | number | 否 | 外部服务错误率配置该变量后,会显示外部服务的错误次数。 | |
eventType | string | 是 | 基调听云告警 | 事件来源。固定为:基调听云告警。 |
eventLevel | string | 是 | 事件级别:告警、严重。 | |
duration | number | 否 | 持续时长,当前时间-开始时间。单位:毫秒。 | |
description | string | 是 | 事件描述,描述该事件的详细信息。 | |
beginTime | string | 是 | 事件初始化时间。 ${beginTime?date} :标准日期转日期字符串, ${beginTime?datetime} :标准日期转日期+时间 字符串, ${beginTime?string("yyyy-MM-dd HH:mm:ss")} :标准日期转自定格式字符串。 | |
endTime | string | 否 | 事件结束时间。 ${endTime?date} :标准日期转日期字符串, ${endTime?datetime} :标准日期转日期+时间 字符串, ${endTime?string("yyyy-MM-dd HH:mm:ss")} :标准日期转自定格式字符串。 | |
alarmPolicyId | number | 是 | 告警策略id。 | |
policyName | string | 是 | 策略名称。 | |
id | number | 是 | 告警明细事件ID(单次推送唯一)。 | |
traceId | number | 是 | 警告traceID(告警未关闭之前不变)。 | |
eventStatus | number | 是 | 事件状态。 1 :触发, 2 :解除 ,3 :手动解除, 5 :无数据解除, 6 :配置变更解除。 | |
level | number | 是 | 事件级别: 1 :普通告警 2 :严重告警 | |
groupName | string | 否 | 分组名称:根据告警分组不同,内容不同。如:河北,石家庄,张三等。 | |
sampleGroupNames | string | 否 | sampleGroupNames,收敛使用。 | |
detailList | object [] | 是 | 指标实际值。item 类型: object。 | |
detail.threshold | string | 是 | 指标阈值。为-1时,指标无效。 | |
detail.metric | string | 是 | 指标code。 | |
detail.metricName | string | 是 | 指标名称。 | |
detail.compareType | string | 是 | 比较类型。0 :无, 1 :大于, 2 :小于, 3 :偏离(仅适用于基线比较), 4 :等于, 5 : 不等于。 | |
detail.compareTypeName | string | 是 | 比较类型: 无、大于、小于、偏离、等于、不等于。 | |
detail.value | string | 是 | 指标实际值 | |
detail.baselineType | string | 是 | 基线比较类型。 0 :不使用基线, 1:基线值百分比, 2:X倍基线标准差。 | |
detail.baselineValue | string | 是 | 基线值。 | |
detail.baselineStddev | string | 是 | 标准差基线值。 | |
customTags | object | 是 | 自定义标签,包含以下部分字段,字段及字段ID成对出现。字段是否存在,依赖于产品线数据类型: 业务系统(biz_system_id) 应用(application_id、browser_application_id、mp_application_id、app_id) 页面(page_uri) 业务模块(biz_id) URL域名/Host(domain_host_id) 主机名(host) 云厂商(cloud_sponsor) 数据中心(data_cente) 集群(cluster) 主机IP(host_ip) 表空间名称(tablespace) Schema名称(schema) 名称(name、device) 分区名称(mountpoint)。 | |
customTagObject | object | 是 | 自定义标签。 | |
wrapper | object | 是 | 辅助参数集。 | |
et | number | 是 | 警告详情URL参数,结束时间。 | |
bt | number | 是 | 警告详情URL参数,开始时间。 | |
reference | string | 否 | trace对象,包含trace所有信息。 | |
source | string | 是 | Tingyun 3.0 | 事件来源,如集成功能的数据源实例名称,固定为:Tingyun 3.0。 |
targetCategory | string | 是 | 应用名称。(北冥使用) | |
errorCode | string | 否 | Top5错误。 |
管理通知模板
用户可以根据模版名称、通知渠道、类型、是否启用进行模版的筛选。
在是否启用列,可启用或者禁用通知模板,来控制通知模板是否生效。
在操作列,点击修改、删除和复制,可分别对模版进行修改、删除和复制。
响应策略
响应策略是当系统产生警报、故障或疑似问题后如何通知用户的一种策略。提前制定响应策略,进而相关人员采取有效的防范措施,可以解决告警、故障或疑似问题造成的影响。
创建警报类型的响应策略
警报是指智能告警产品和北冥产品中的警报。创建警报类型的响应策略,请按照以下步骤进行操作:
在左侧导航栏中选择配置>响应>响应策略,进入响应策略列表页面。
在页面右上角点击新建响应按钮,选择警报,进入新建响应策略页面。
配置基本信息。
响应策略:输入策略的名称,最多不超过100个字符。
策略启停:控制策略生效的开关。
使用标签过滤警报:开启后,选择事件的数据源,然后设置匹配规则,筛选出目标事件。选择的数据源不同,显示的内容也不同。如果选择的是“Tingyun Alert”,需要选择产品线、业务系统或应用、告警规则,然后按照筛选条件筛选事件;如果选择的是其他数据源,则是按照K-V标签对告警事件进行筛选。用户可单击标签块左下方的新增按钮,设置多个标签过滤警报,多个标签之间是或的关系。
说明:Tingyun Event和Tingyun Alert是基调听云悟空平台内置的两个数据源,新建账号时会默认创建。Tingyun Event存储的是告警的原子事件数据,Tingyun Alert存储的是多个告警原子事件组成的告警数据。
当选择不是“Tingyun Alert”的数据源时,规则条件为:“标签+逻辑表达式+匹配内容”。匹配规则说明:
包含:输入的字符串在对应字段中以整体出现过。
不包含:输入的字符串在对应字段中没有以整体出现过。
等于:输入的字符串和对应字段中的内容完全一致。
不等于:输入的字符串和对应字段中的内容存在差异。
大于:输入的值大于对应字段中的值(一般用于数字比较)。
小于:输入的值小于对应字段中的值(一般用于数字比较)。
在...之中:输入多个值,对应字段中的值与其中一个值完全一致。
不在...之中:输入多个值,对应字段中的值与其中任意一个值都存在差异。
包含任意一个:输入多个值,对应字段中的值包含其中一个输入的值(例:设定a,b,c 字段中的值为adult,adult包含a所以符合条件)。
以前缀开始:输入的字符串在对应字段中以整体出现,并且必须位于字段开头。
以后缀结束:输入的字符串在对应字段中以整体出现,并且必须位于字段结尾。
正则表达式:符合正则表达式规范。
当选择的是“Tingyun Alert”数据源时,会出现产品线选项,系统会将该选项与告警规则中的适用于一项相匹配。然后设置规则条件为:先选出哪些产品线的告警规则,再选择具体产生这些告警事件的对象。
匹配的告警规则,分为“任何规则”和“指定规则”。前者代表某一产品下的任何告警规则。后者会根据产品线的选择自动列出匹配的告警规则。
筛选对象:在筛选出上述目标告警事件的基础上,继续进行更细粒度的事件筛选。系统默认选择任何对象,表示不再继续筛选。用户可单击新增,根据需要设置筛选条件,多个条件之间是与的关系。
配置触发规则。
选择告警状态在警告、严重或解除的事件配置延迟或者重复通知。多个触发条件彼此之间都是或的关系。如果用户没有购买北冥产品,那么该触发条件内容只包括告警状态。当用户购买了北冥,那么触发条件还包括生命周期状态和重要度配置。
告警状态:
延迟响应:默认0分钟后立即通知,即满足条件的事件一发生就立即通知相关人员。设置后,事件发生N分钟后再通知相关人员。
重复响应(不推荐配置):代表一个告警在未恢复之前,可以反复通知给用户,未开通北冥授权的用户才能看到此选项。默认告警事件持续0分钟后仍未解除发送一次通知,然后每间隔1分钟通知一次,即事件一发生就发送一次通知。
累计响应:开通了北冥授权的用户才能看到此选项,因为北冥有合并和压缩警报功能,当一个告警反复发送给北冥后,可以计算累计值,如当经过1分钟累计严重告警发生3次再通知给用户。
生命周期状态:打开代表一直处于警报状态,关闭代表警报已经关闭。
重要度:1~5星,5星代表最重要,北冥用该属性来判断警报是否重要,用于降噪。
单击下图红框中的图标,可以创建多个响应规则(包括触发规则和响应动作),这样在一个响应策略中不同的警报状态可以通知不同的人,并且可以选择不同的通知模版,例如规则1是当严重告警时以语音发给张三,规则2是当警告告警时以短信发给李四。响应策略中,如果只有一个解除状态的规则,系统不再执行通知操作,目的是减少用户没有收到过触发的通知却突然收到解除通知的情况。
配置响应动作。
目前对警报事件的响应动作仅支持通知,分为通用通知和第三方通知。通用通知支持语音、短信、邮件、微信和工单,第三方通知支持钉钉和倍洽。
- 当选择完通用通知渠道或第三方通知渠道后,单击各自图标后的下拉箭头,可选择内容模板。
- 当选择的是通用通知方式时,需要继续单击红框中的加号图标,配置通知人。排班计划需要在北冥产品的配置>排班计划下进行配置,具体请参见排班计划。当选择工单时,则通知接收人为故障所包含警报的一个警报负责人。
- 通知时段为可选项,可设置每天、每周或每月的指定时间进行通知,减少对用户的打扰。
单击保存,完成配置。
新的响应策略将显示在响应策略列表中。
创建故障类型的响应策略
故障专指北冥产品中的故障,即多个警报的组合。创建故障类型的响应策略,请按照以下步骤进行操作:
在左侧导航栏中选择配置>响应>响应策略,进入响应策略列表页面。
在页面右上角点击新建响应按钮,选择故障,进入新建响应策略页面。
配置基本信息。
响应策略:输入策略的名称,最多不超过100个字符。
策略启停:控制策略生效的开关。
使用标签过滤故障:该选项一般不会被开启,仅适用于少部分应用场景,因为产生的故障来源就是从各个数据源进行数据关联分析而来的。开启后,选择故障的数据源,然后设置匹配规则,按照K-V标签对告警事件进行筛选,筛选出目标故障。用户可单击标签块左下方的新增按钮,设置多个标签过滤故障,多个标签之间是或的关系。
说明:Tingyun Event和Tingyun Alert是基调听云悟空平台内置的两个数据源。Tingyun Event存储的是告警的原子事件数据,Tingyun Alert存储的是多个告警原子事件组成的告警数据。
规则条件为:“标签+逻辑表达式+匹配内容”。匹配规则说明:
- 包含:输入的字符串在对应字段中以整体出现过。
不包含:输入的字符串在对应字段中没有以整体出现过。
等于:输入的字符串和对应字段中的内容完全一致。
不等于:输入的字符串和对应字段中的内容存在差异。
大于:输入的值大于对应字段中的值(一般用于数字比较)。
小于:输入的值小于对应字段中的值(一般用于数字比较)。
在...之中:输入多个值,对应字段中的值与其中一个值完全一致。
不在...之中:输入多个值,对应字段中的值与其中任意一个值都存在差异。
包含任意一个:输入多个值,对应字段中的值包含其中一个输入的值(例:设定a,b,c 字段中的值为adult,adult包含a所以符合条件)。
以前缀开始:输入的字符串在对应字段中以整体出现,并且必须位于字段开头。
以后缀结束:输入的字符串在对应字段中以整体出现,并且必须位于字段结尾。
正则表达式:符合正则表达式规范。
配置触发规则。
当故障属性满足条件时执行响应动作:
- 告警状态:当故障产生时状态符合条件则触发通知,或者当故障状态产生变化时符合条件则触发通知。用户可针对故障中出现严重、警告和解除这三种状态配置响应,不包含对提醒进行响应,因为提醒级别是最弱的,用户往往不太关心。北冥对提醒的告警事件没有形成故障,而只是形成了警报(alert)。
- 时间窗口响应:当时间窗口关闭时进行响应(仅用于收敛规则产生的故障)。该时间窗口对应手动创建的“收敛规则”中的时间窗口。当收敛规则窗口选择为5分钟时,代表从该故障第一个event开始到第5分钟,在这5分钟之内,不管收敛了多少个event都不会通知,直到第5分钟统一通知一次。
- 延迟响应:默认0分钟后立即通知,即故障中的警报只要满足条件就立即通知相关人员。设置后,故障中的警报满足条件N分钟后再通知相关人员。
- 重复响应:设置持续的告警事件的响应措施。默认告警事件持续0分钟后仍未解除发送一次通知,然后每间隔1分钟通知一次,即故障一发生就发送一次通知。
- 生命周期状态:包括打开、重新打开、解决、关闭四种。默认0分钟后立即通知,即满足条件的故障一发生就立即通知相关人员。设置后,故障发生N分钟后再通知相关人员。
- 打开:当在观察期内有event产生时,则进行通知。
- 重新打开:当故障为解除状态时(包含的所有alert都为ok时),在观察期内有新的event产生,此时故障为“重新打开”,则进行通知。
- 解决:故障为解除状态(包含的所有alert都为ok时),则进行通知。
- 关闭:故障为关闭状态(所有alert都为ok,且经过了一段观察期还未收敛新的event),则进行通知。
- 首次警报:故障中第一个事件形成的警报。这个触发条件通常是用在开工单的时候,部分用户需求场景是形成故障的一个警报要开工单。
- 故障优先级:当故障优先级符合被选中的优先级时,则进行通知。
- 时间窗口响应:当时间窗口关闭时进行响应(仅用于收敛规则产生的故障)。该时间窗口对应手动创建的“收敛规则”中的时间窗口。当收敛规则窗口选择为5分钟时,代表从该故障第一个event开始到第5分钟,在这5分钟之内,不管收敛了多少个event都不会通知,直到第5分钟统一通知一次。
- 延迟响应:默认0分钟后立即通知,即故障只要满足优先级条件就立即通知相关人员。设置后,故障优先级满足条件N分钟后再通知相关人员。
当故障中的警报满足条件时执行响应动作:
重要度:当警报产生时重要度符合条件则触发通知。
告警状态:当警报产生时状态符合条件则触发通知。
生命周期状态:当警报处于首次打开、解除或关闭状态时,则触发通知。
累计响应:在一个警报生命周期内,默认当经过1分钟,故障中的警报发生超过2次时再通知。
- 告警状态:当故障产生时状态符合条件则触发通知,或者当故障状态产生变化时符合条件则触发通知。用户可针对故障中出现严重、警告和解除这三种状态配置响应,不包含对提醒进行响应,因为提醒级别是最弱的,用户往往不太关心。北冥对提醒的告警事件没有形成故障,而只是形成了警报(alert)。
配置执行动作。
目前对故障的响应动作支持通知和升级两种,其中通知分为通用通知和第三方通知。通用通知支持语音、短信、邮件、微信和工单,第三方通知支持钉钉和倍洽。
- 当选择完通用通知渠道或第三方通知渠道后,单击各自图标后的下拉箭头,可选择内容模板。
- 当选择的是通用通知方式时,需要继续单击红框中的加号图标,配置通知人。排班计划需要在北冥产品的配置>排班计划下进行配置,具体请参见排班计划。当选择工单时,则通知接收人为故障所包含警报的一个警报负责人。
- 通知时段为可选项,可设置每天、每周或每月的指定时间进行通知,减少对用户的打扰。
当选择升级时,需要选择一个升级策略。如果没有建立过策略,则需要新建策略。请在北冥产品的配置>通知升级下进行配置,具体请参见通知升级。
点击保存,完成配置。
新的响应策略将显示在响应策略列表中。
创建疑似问题类型的响应策略
疑似问题是数据洞察中的疑似问题。创建疑似问题类型的响应策略,请按照以下步骤进行操作:
在左侧导航栏中选择配置>响应>响应策略,进入响应策略列表页面。
在页面右上角单击新建按钮,选择疑似问题,进入新建响应策略页面。
配置基本信息。
策略名称:输入策略名称,最多不超过100个字符。
启用状态:控制策略生效的开关。
过滤疑似问题:该选项一般不会被开启,仅适用于少部分应用场景,因为触发的疑似问题来源是从各个数据源进行数据关联分析而来的。开启后,设置匹配规则,按照K-V标签对告警事件进行筛选,筛选出目标疑似问题。用户可单击标签左下方的新增按钮,设置多个标签过滤疑似问题,多个标签之间是或的关系。
规则条件为:“标签+逻辑表达式+匹配内容”。匹配规则说明:
- 包含:输入的字符串在对应字段中以整体出现过。
- 不包含:输入的字符串在对应字段中没有以整体出现过。
- 等于:输入的字符串和对应字段中的内容完全一致。
- 不等于:输入的字符串和对应字段中的内容存在差异。
- 大于:输入的值大于对应字段中的值(一般用于数字比较)。
- 小于:输入的值小于对应字段中的值(一般用于数字比较)。
- 在...之中:输入多个值,对应字段中的值与其中一个值完全一致。
- 不在...之中:输入多个值,对应字段中的值与其中任意一个值都存在差异。
- 包含任意一个:输入多个值,对应字段中的值包含其中一个输入的值(例:设定a,b,c 字段中的值为adult,adult包含a所以符合条件)。
- 以前缀开始:输入的字符串在对应字段中以整体出现,并且必须位于字段开头。
- 以后缀结束:输入的字符串在对应字段中以整体出现,并且必须位于字段结尾。
- 正则表达式:符合正则表达式规范。
配置触发规则
当疑似问题产生时状态符合条件则触发通知,或者当疑似问题产生变化时符合条件则触发通知。
- 重复响应:代表一个告警在未恢复之前,可以反复通知用户。默认告警时间持续0分钟后仍未解除发送一次通知,然后每间隔1分钟通知一次,即事件一发生就发送一次通知。
- 延迟响应:默认0分钟后立即通知,即满足条件的时间已发生就立即通知相关人员。设置后,时间发生N分钟后再通知相关人员。
- 打开:当在观察期内有疑似问题产生时,则进行通知。
- 关闭:当疑似问题为关闭状态,则进行通知。
单击下图红框中的图表,可以创建多个响应规则(包括触发规则和响应动作),这样在一个策略中不同的告警 状态可以通知不同的人,而且可以选择不同的通知模板。
配置响应动作
目前对疑似问题事件的响应动作仅支持通知,分为通用通知和第三方通知。通用通知支持语音、短信、邮件、微信和工单,第三方通知支持钉钉、飞书和企业微信(群)。
当选择完通用通知渠道或第三方通知渠道后,单击各自图表后的下拉箭头,可选择内容模板。
当选择的是通用通知方式时,需要继续单击红框中的加号图标,配置通知人。排班计划需要在北冥产品的配置>排班计划下进行配置,具体请参见排班计划。当选择工单时,则通知接收人为故障所包含告警的一个告警负责人。
通知时间段为可选项,可设置每天、每周或每月的指定时间进行通知,减少对用户的打扰。
单击保存,完成配置。
新的响应策略将显示在响应策略列表中。
管理响应策略
在响应策略列表中,用户可以对已创建好的策略进行策略启停、修改、复制和删除操作。
在策略启停列,单击开关控制策略的启停。当停止某一个策略时,正在执行的该策略的响应动作依然会执行完成。
在操作列,单击修改,可编辑响应策略。
在操作列,单击复制,可将当前策略进行复制,需要用户重新命名即可,然后可基于此策略进行修改,提高创建策略的效率。
在操作列,单击删除,可删除该策略。其中正在执行该策略的响应动作依然会执行完成。
单击列表右上角的新建响应按钮,可新创建一个响应策略。
在搜索框中,用户可根据策略名称、策略类型、策略启停、数据源和产品线搜索出目标响应策略。
在列表的触发规则一列中,如果该策略配置了多个触发规则,则可以通过切换不同的规则来查看具体的规则详情。
通知抑制
当将相关的警报关联在一起聚合成故障后,该故障如何通知,通知哪些内容,哪些警报应该通知,哪些警报需要被抑制不被通知,这就是通知抑制要做的事情。
新建抑制策略
在左侧导航栏中选择配置>响应>通知抑制,进入抑制策略列表页面。
在页面的左上角单击添加策略按钮,页面下方会增加一条配置策略的区域。
当选择根据标签抑制时,配置如下(默认)。
抑制的源警报:根据标签筛选出当出现哪些警报时,会抑制故障中其他后续追加进来的警报。
被抑制的目标警报:根据标签筛选出当出现“被抑制掉的警报”。
两者之间相同值筛选条件:如果“抑制的源警报”和“被抑制的目标警报”具有相同的属性,可以继续在这里设置。
当选择根据拓扑抑制时,配置如下(需集成拓扑关系数据)。
抑制的源警报:根据标签筛选出当出现哪些警报时,会抑制故障中其他后续追加进来的警报。
被抑制的目标警报:假如当一个业务系统是由一个应用和一个数据库组成的,而这两个软件都部署在两个容器中,这两个容器都部署在一个主机上。那么垂直拓扑关系就是“业务系统>应用软件>容器>主机”。如果主机不能正常运行,那么主机上面部署的容器、应用软件、业务系统的相关监控指标都会告警。此时,用户只希望收到一条告警信息,就是:主机异常,抑制掉其他告警。对于这种场景,就可以选择拓扑关系抑制。拓扑关系一般分为“垂直关系”和“水平关系”。
上游关系就代表垂直关系,根据选项筛选即可。这里特别说明的是“向上关联至”,这个关系可以指定向上关联至哪个层级。如上述应用场景举例中那样,假设源警报对应的是主机这一层级,那么抑制“向上关联至业务系统”代表从主机一直向上到业务系统所涉及到的所有层级对应的警报都会被抑制掉。
单击列表操作一列的保存按钮,完成通知抑制策略的创建。
管理抑制策略
在通知抑制策略列表页面,用户可进行以下操作。
您可能已经创建了多个抑制策略,当故障中一个警报要发送通知时,会按顺序逐一匹配抑制策略列表内容,直至匹配到该警报属于被抑制的警报(匹配到源警报不算),不再往下匹配。单击列表上方的排序,然后拖动策略可调整顺序。
单击操作列的图标,可删除策略。
单击详情列的图标,可查看策略配置详情。