创建告警定义规则
如果您对于繁琐复杂的告警上报字段感到困惑,可以使用统一告警定义,该功能会自动下发到业务对应的Agent,使用更加人性化的界面设计,让告警上报更加统一、准确。
- 告警定义依赖于业务在数据采集时部署的Agent和数据采集的插件,首先需要有持续的采集数据上报,告警定义才能生效。
- 告警定义决定了是否要根据上报的采集数据产生告警,相当于告警的计算公式,经过监控系统计算后,如果数据持续异常,则上报到告警系统中,产生告警。
运维中心支持对监控指标创建模板规则和自定义规则完成告警定义,同时支持对AIOps中的指标数据进行告警,如需使用AIOps指标告警,可单击界面跳转链接,进入异常检测页面,通过配置异常检测任务生成AIOPS类型告警,具体操作请参见新增异常检测任务。
前提条件
已获取服务运维岗位权限或运维管理员权限,权限申请操作请参见申请权限。
创建监控指标模板规则
- 进入AppStage运维中心。
- 在顶部导航栏选择服务。
- 单击
,选择“运维 > 监控服务(ServiceInsight)”。
- 选择左侧导航栏的 。
- 单击“统一告警定义”,进入告警定义页面,默认显示“模板告警”页签。
- 在“模板告警”页签,单击“创建”。
- 配置监控指标模板规则参数,参数说明如表1所示,配置完成后,单击“确定”。
表1 监控指标模板规则参数说明 参数名称
参数说明
指标来源
选择告警的指标来源“监控指标”。
告警定义名称
设置告警定义的名称,长度不超过512个字符,告警定义名称支持如下两种命名方式:
- 普通命名。
- 表达式命名,使用{{$labels.变量名}}命名,支持的变量如下:
- cluster:所在ERS集群名称
- namespace:命名空间
- workload:工作负载
- tenant_id:租户ID
- application_id:应用ID
- service_id:服务ID
- site:站点
例如想要获取CCE集群内存平均使用率大于70%告警,可以命名为:“{{$labels.cluster}}集群的内存使用率超过70%”。
级别
选择该规则生成告警的级别,包括提示、一般、严重和紧急。
告警类型
选择告警类型,上报的告警会显示类型信息,可根据类型筛选查看告警。
持续时间
设置指标持续异常的时间。
以持续时间5min为例,需要异常连续满足5min内的计算点全部异常才会生成告警,否则就不会生成。
持续时间控制了当前指标生成告警的速率。
运行模式
选择告警定义规则的运行模式,是主机还是容器。
是否激活
是否激活这条告警定义。
监控指标的告警定义需要推送到监控模块才能生效。如果不激活,则仅在告警侧保存,不会生效。
是否调试
选择是否调试。
如果开启调试,当这个模板检测出来的告警上报时,告警侧会将对应告警打上debug的标签,用于存库留痕,并且对应的告警不会触发任何通知,包括语音、短信、WeLink。
关联监控模板
选择需要关联的监控模板,可选模板是系统创建的“_OS_DEFAULT”模板或已创建的模板,创建模板请参见创建监控模板。
指标名称
选择插件、指标。
指标名称由插件决定,即为主机绑定的插件能够采集到的指标。例如插件选择cpu,指标选择iowait,指的是宿主机的cpu io等待时间,在比较方式里可以根据不同的策略来决定当前指标是否异常,异常则生产告警。
比较方式
- 区间阈值分为在区间内和在区间外。
- 在区间内:指数据值满足在该范围内则指标正常,否则异常。
- 在区间外:指数据值满足不在该范围内则指标正常,否则异常。
- 固定阈值是指数据不满足当前设置表达式则指标异常,有四种表达式,包括大于等于、小于、等于和不等于。
- 同比是计算指标的时,与前一天同一时刻的比较,根据前一条的值的大小来决定当前指标是否异常。
告警标签
指标的补充条件,如果存在告警标签则需要满足所有的告警标签才会生成告警。
标签的范围也是由指标定义。例如选择ip=10.123.15.102,则上报的指标数据不仅需要满足指标的比较方式同时也需要满足ip=10.123.15.102才能产生指标,如果是同一个业务下其他ip的异常,则不会产生告警。
标签的判断方式包括等于(=)、不等于(!=)、正则匹配成功(=~)、正则匹配不成功(!~)。
消息模板
消息模板是生成告警的msg字段中的具体信息,可选变量名由指标来决定,每一个指标都有自己对应的变量名列表。
表达式
获取表达式,即根据配置的指标、比较方式等生成表达式。
创建监控指标自定义规则
- 进入AppStage运维中心。
- 在顶部导航栏选择服务。
- 单击
,选择“运维 > 监控服务(ServiceInsight)”。
- 选择左侧导航栏的 。
- 单击“统一告警定义”,进入告警定义页面,默认显示“模板告警”页签。
- 单击“自定义告警”,切换至“自定义告警”页签。
- 在“自定义告警”页签,单击“创建”。
- 配置监控指标自定义规则参数,参数说明如表2所示,配置完成后,单击“确定”。
表2 监控指标自定义规则参数说明 参数名称
参数说明
指标来源
选择告警的指标来源“监控指标”。
告警定义名称
设置告警定义的名称,长度不超过512个字符,告警定义名称支持如下2种命名方式:
- 普通命名。
- 表达式命名,使用{{$labels.变量名}}命名,支持的变量如下:
- cluster:所在ERS集群名称
- namespace:命名空间
- workload:工作负载
- tenant_id:租户ID
- application_id:应用ID
- service_id:服务ID
- site:站点
例如想要获取CCE集群内存平均使用率大于70%告警,可以命名为:“{{$labels.cluster}}集群的内存使用率超过70%”。
级别
选择该规则生成告警的级别,包括提示、一般、严重和紧急。
告警类型
选择告警类型,上报的告警会显示类型信息,可根据类型筛选查看告警。
持续时间
设置指标持续异常的时间。
以持续时间5min为例,需要异常连续满足5min内的计算点全部异常才会生成告警,否则就不会生成。
持续时间控制了当前指标生成告警的速率。
表达式
输入表达式,既可以复制其他已创建的模板规则获取的表达式填写,也可以使用表达式对容器集群进行告警,容器集群常用表达式请参见容器集群常用告警表达式。
容器集群常用告警表达式
容器集群常用告警表达式如表3所示,表达式中的加粗数字为告警阈值,可根据业务需要修改,并且其他加粗参数后的斜体需要改成具体业务参数,加粗参数包括container容器、cluster集群名称、namespace命名空间、workload工作负载、tenant_id租户ID、application_id产品ID和service_id服务ID。
异常情况 |
告警定义名称 |
表达式 |
---|---|---|
pod在30分钟内多次重启告警 |
{{$labels.cluster}}集群中的pod_{{$labels.pod}}的container正在频繁重启 |
label_replace(label_replace(label_replace(label_replace(label_replace(pod_container_restarts_count_30m{cluster="erscluster",namespace="ersnamespace"}, "scope_name","","","(.*)") > 1,"tenant_id","T006","","(.*)"),"application_id","com.huawei.wiseeye","","(.*)"), "service_id","com.huawei.wiseeyeersservice","","(.*)"),"site","cn_product_cbu","","(.*)") |
CPU使用率大于70%告警 |
{{$labels.cluster}}集群中的pod_{{$labels.pod}}的CPU使用率超过百分之70% |
label_replace(label_replace(label_replace(label_replace(label_replace(pod_container_cpu_rate{cluster="erscluster-xxx",namespace="ersnamespace"}, "scope_name","","","(.*)") > 0.7,"tenant_id","T006","","(.*)"),"application_id","com.huawei.wiseeye","","(.*)"), "service_id","com.huawei.wiseeyeersservice","","(.*)"),"site","cn_product_cbu","","(.*)") |
Pod状态异常告警 |
{{$labels.cluster}}集群中的pod_{{$labels.pod}}状态异常 |
label_replace(label_replace(label_replace(label_replace(label_replace(pod_status_ready{cluster="erscluster-xxx",namespace="ersnamespace"}, "scope_name","","","(.*)") > 0 or label_replace(pod_status_phase{cluster="cbu-ers-control",namespace="ers-monitoring"}, "scope_name","","","(.*)") > 0,"tenant_id","T006","","(.*)"),"application_id","com.huawei.wiseeye","","(.*)"), "service_id","com.huawei.wiseeyeersservice","","(.*)"),"site","cn_product_cbu","","(.*)") |
内存使用率告警 |
{{$labels.cluster}}集群中的pod_{{$labels.pod}}物理内存使用率已经超过80% |
label_replace(label_replace(label_replace(label_replace(label_replace(container_memory_working_set_utilization{namespace="ersnamespace",container="service-container"}, "scope_name","","","(.*)") >0.8,"tenant_id","T006","","(.*)"),"application_id","com.huawei.wiseeye","","(.*)"), "service_id","com.huawei.wiseeyeersservice","","(.*)"),"site","cn_product_cbu","","(.*)") |