通过告警中心一键配置告警
告警中心基于AOM告警功能,提供集群内置告警一键开启能力,在集群发生故障时能够及时发现并预警,协助您维护业务稳定性。智能告警中心可有效节省您在AOM侧手动配置告警规则的工作量,并且内置的告警规则基于华为云容器团队大规模集群运维经验,能够满足您的日常运维所需,覆盖容器服务异常事件告警、集群相关基础资源的关键指标告警及集群中应用的指标告警。
约束与限制
仅华为云/华为账号,或者拥有CCE Administrator权限或CCE FullAccess权限的IAM用户可进行告警中心所有操作。CCE ReadOnlyAccess权限的IAM用户可以查看所有资源信息,但是无法进行任何操作。
开启告警中心
- 在目标集群左侧导航栏选择“告警中心”。
- 选择“告警规则”页签,单击“开启告警中心”,在弹出的页面中选择一个或多个联系组,以便分组管理订阅终端并接收告警消息。如果当前还没有联系组,请参考配置告警通知人进行创建。
- 单击“确认”完成功能开启。
告警中心中的指标类告警规则依赖云原生监控插件上报指标数据到AOM Prometheus实例,需要开通监控中心。当您的集群未安装插件或者在安装插件时未对接AOM Prometheus实例,告警中心将不会创建指标类告警规则。开通监控中心请参考开通监控中心。
表1中的事件类告警依赖日志中心开启收集Kubernetes事件的能力,详情请参见收集Kubernetes事件。
配置告警规则
开启智能告警中心后,可以进行告警规则的配置和管理。
- 登录CCE控制台。
- 在集群列表页面,单击目标集群名称进入详情页。
- 在左侧导航栏选择“告警中心”,选择“告警规则”页签,在此处进行告警规则的配置和管理。
智能告警中心功能会默认生成容器场景下的告警规则模板(包含异常事件告警、异常指标告警)。告警规则被分类为若干个告警规则集,您可以为告警规则集关联多个联系组,并开启或关闭告警项。告警规则集中包含多个告警规则,一个告警规则对应单个异常的检查项。关于默认告警规则模板,请参见表1。
告警规则类型 |
告警项 |
告警说明 |
告警类型 |
依赖项 |
PromQL/事件名称 |
---|---|---|---|---|---|
负载规则集 |
Pod状态异常 |
检查Pod状态是否异常 |
指标类 |
云原生监控插件 |
sum(min_over_time(kube_pod_status_phase{phase=~"Pending|Unknown|Failed"}[10m]) and count_over_time(kube_pod_status_phase{phase=~"Pending|Unknown|Failed"}[10m]) > 18 )by (namespace,pod, phase, cluster_name, cluster) > 0 |
Pod频繁重启 |
检查Pod是否频繁重启 |
指标类 |
云原生监控插件 |
increase(kube_pod_container_status_restarts_total[5m]) > 3 |
|
Deployment副本数不匹配 |
检查无状态负载的副本数是否匹配 |
指标类 |
云原生监控插件 |
(kube_deployment_spec_replicas != kube_deployment_status_replicas_available ) and ( changes(kube_deployment_status_replicas_updated[5m]) == 0) |
|
Statefulset副本数不匹配 |
检查有状态负载的副本数是否匹配 |
指标类 |
云原生监控插件 |
(kube_statefulset_status_replicas_ready != kube_statefulset_status_replicas) and (changes(kube_statefulset_status_replicas_updated[5m]) == 0) |
|
容器CPU使用率大于百分之八十 |
检查容器CPU使用率是否大于80% |
指标类 |
云原生监控插件 |
100 * (sum(rate(container_cpu_usage_seconds_total{image!="", container!="POD"}[1m])) by (cluster_name,pod,node,namespace,container, cluster) / sum(kube_pod_container_resource_limits{resource="cpu"}) by (cluster_name,pod,node,namespace,container, cluster)) > 80 |
|
容器内存使用率大于百分之八十 |
检查容器内存使用率是否大于80% |
指标类 |
云原生监控插件 |
(sum(container_memory_working_set_bytes{image!="", container!="POD"}) BY (cluster_name, node,container, pod , namespace, cluster) / sum(container_spec_memory_limit_bytes > 0) BY (cluster_name, node, container, pod , namespace, cluster) * 100) > 80 |
|
容器状态异常 |
检查容器状态是否异常 |
指标类 |
云原生监控插件 |
sum by (namespace, pod, container, cluster_name, cluster) (kube_pod_container_status_waiting_reason) > 0 |
|
更新负载均衡失败 |
检查更新负载均衡是否成功 |
事件类 |
云原生日志采集插件 |
不涉及 |
|
Pod内存不足OOM |
检查Pod是否OOM |
事件类 |
节点故障检测插件 云原生日志采集插件 |
PodOOMKilling |
|
集群状态规则集 |
集群状态不可用 |
检查集群状态是否可用 |
事件类 |
云原生日志采集插件 |
不涉及 |
配置告警通知人
联系组是基于消息通知服务 SMN的主题功能实现的,目的是为消息发布者和订阅者提供一个可以相互交流的通道。联系组包含一个或多个订阅终端,您可以通过配置告警联系组,分组管理订阅终端,接收告警信息。联系组创建完成后,需要绑定至告警规则集,这样,当有告警触发时,联系组中的订阅终端就可以收到告警消息了。
- 登录CCE控制台。
- 在集群列表页面,单击目标集群名称进入详情页。
- 在左侧导航栏选择“告警中心”,选择“默认联系组”页签。
- 单击“新建联系组”,在弹出的页面中输入联系组参数。
- 联系组名称:输入联系组名称,创建后不可修改。名称只能包含大写字母、小写字母、数字、-和_,且必须由大写字母、小写字母或数字开头,名称长度为1~255字符。
- 告警消息显示名:即订阅终端接收消息的标题名称。假设订阅终端为邮件,推送邮件消息时,若已设置告警消息显示名,发件人则呈现为“显示名”,若未设置告警消息显示名,发件人呈现为“username@example.com”。支持在联系组创建完成后修改告警消息显示名。
- 添加订阅终端:您需要添加一个或多个订阅终端来接收告警消息。终端类型包括短信和邮件,选择“短信”时,请输入有效的手机号码;选择“邮件”时,请输入有效的电子邮件地址。
- 单击“确定”完成联系组的创建。
返回联系组列表,订阅终端状态为“未确认”,您需要继续执行后续操作,向该终端发送订阅请求,以验证终端有效性。
- 单击操作列“请求订阅”,向该终端发送订阅请求。若终端收到请求,请按照提示进行确认,确认完成后订阅终端状态将变为“已确认”。
- 联系组创建并确认后,单击图标启用联系组,实现联系组和告警规则集的绑定。
告警规则集最多支持绑定5个联系组。
查看告警列表
您可以在“告警列表”页面查看最近发送的历史记录。
- 登录CCE控制台。
- 在集群列表页面,单击目标集群名称进入详情页。
- 在左侧导航栏选择“告警中心”,选择“告警列表”页签。
列表中默认展示全部待解决告警,支持按照告警关键字、告警等级,以及告警发生的时间范围筛选。同时支持查看指定筛选条件的告警在不同时间段的分布情况。
如果确认某条告警已排除,可以单击操作列的“清除”,清除后可在历史告警中查询。
图1 告警列表