流转规则
本文介绍如何配置流转规则。
前提条件
配置流转规则前,您需要确保集成管理配置流转规则的监控源已成功接入集成。
操作场景
管理流转规则,通过流转规则实现事件、告警等规则的自定义配置。
新增流转规则操作步骤
- 登录COC。
- 在左侧导航栏选择“故障管理 > 流转规则”,进入“流转规则”页面。
- 在流转规则列表上方,单击“新增规则”进入新增流转规则页面。
图1 新增流转规则
若两个流转规则中的信息较相似,可单击“操作”列“复制”,快速创建流转规则。
- 根据页面提示,输入规则名称、应用名称等基本信息。
图2 填写流转规则基本信息
- 在触发规则部分,选择触发类型,选择触发规则的数据源,根据相应的数据源的字段的键,配置相应的条件及满足条件的值,并选择级别。
图3 填写触发规则
1.流转规则生成事件后,在事件未走到“已完成”或“已关闭”装填前,若又满足流转规则不再会产生事件---该规则是默认启用的,支持关闭该规则。
2.流转规则生成汇聚告警,在窗口期内若没有收到原始告警,系统会将之前窗口期内的告警作为历史告警(即当前告警状态默认设置为“已处理”)图4 流转规则转事件/告警示意图
触发条件中key说明如下:
key参数
描述
对应CES告警字段
对应AOM告警字段
alarmId
告警ID
alarm_id
id
alarmName
告警名称
alarm_name
metadata中的event_name
alarmLevel
告警级别,取值有:紧急、重要、次要、提示
AlarmLevel
event_severity
time
告警发生时间
time
starts_at
nameSpace
服务的命名空间
namespace
namespace
region
Region
template_variable中的Region
/
application
应用名
/
/
resourceName
资源名称
template_variable中ResourceName
metadata中的resource_id
resourceId
资源ID
template_variable中的ResourceId
/
alarmDesc
告警描述
template_variable中的AlarmDesc
/
URL
原始告警URL
template_variable中的Link
/
alarmStatus
告警状态。一般取值为alarm(告警中)和ok(已恢复)
alarm_status
/
alarmSource
告警源名称,如从CES上报的告警,该字段的值显示CES
/
/
additional
告警附加信息,格式为additional.xxx
除以上的参数,其他参数均放在该参数中,使用additional.xxx表示,CES相关字段描述点击这里查看
除以上的参数,其他参数均放在该参数中,使用additional.xxx表示,AOM相关字段描述点击这里查看
- 在响应预案部分,选择针对本次流转规则相关联的脚本、作业和应急预案,脚本和作业的添加请参考自动化运维。
脚本、作业和自动化预案支持故障自愈能力,选择脚本作业和自动化预案后会显示“自动执行”勾选项,勾选后带出脚本或作业对应的参数
图5 填写响应预案
参数值、Region ID、和目标实例填写格式为${},需要通过该表达式解析对应的值,自动化执行参数示例说明
- 在分派规则部分,选择分派的对象,最后单击下方的“提交”,完成流转规则的创建。
图6 填写分派规则
自动化执行参数示例说明
参数值、Region ID、和目标实例填写格式为${},需要通过该表达式解析对应的值,相关示例如下:
参考示例:
告警信息如下:
{
"alarmId": "al1696664837170EWbvx24kW",
"alarmName": "alarm-4z39coctest1007",
......
"URL": "https://console.ulanqab.huawei.com/ces/?region=cn-north-7#/alarms/detail?alarmId=al16849986549022X5Vp4pxr",
"additional": {
"dimension": "instance_id:29d99a09-2d15-4ced-8723-6e94ae1c1472",
......
},
......
}
1. 如果要获取当前告警信息里面的alarmId的值,表达式写成如下形式:
${currentAlarm.alarmId}
2. 如果要从additional.dimension字符串里面获取instance_id的uuid,表达式写成如下形式:
${string.substring(currentAlarm.additional.dimension, string.indexOf(currentAlarm.additional.dimension, 'instance_id:') + 12)}
或者
${string.substring(currentAlarm.additional.dimension, 12)}
3. 如果要从URL字符串里面获取cn-north-7这个region ID,表达式写成如下形式:
${string.substring(currentAlarm.URL, string.indexOf(currentAlarm.URL, 'region=') + 7, string.indexOf(currentAlarm.URL, '#/alarms'))}
表达式里面的"currentAlarm."是个固定前缀,意思是从当前告警的数据里面获取。
编辑、启用/禁用、删除流转规则操作步骤
- 登录COC。
- 在左侧导航栏选择“故障管理 > 流转规则”,进入流转规则配置页面。
- 在流转规则列表页面,对任意一个流转规则,单击“操作”列的“更多 > 编辑”、“更多 > 删除”进行编辑和删除操作,单击“操作”列的“启用”、“禁用”对流转规则进行启用、禁用操作。禁用流转规则后,将不会触发事件或者告警。