通过告警中心一键配置告警
告警中心基于AOM告警功能,提供集群内置告警一键开启能力,在集群发生故障时能够及时发现并预警,协助您维护业务稳定性。智能告警中心可有效节省您在AOM侧手动配置告警规则的工作量,并且内置的告警规则基于华为云容器团队大规模集群运维经验,能够满足您的日常运维所需,覆盖容器服务异常事件告警、集群相关基础资源的关键指标告警及集群中应用的指标告警。
约束与限制
- 集群版本仅支持v1.17及以上。
 - 仅华为云/华为账号,或者拥有CCE Administrator权限或CCE FullAccess权限的IAM用户可进行告警中心所有操作。CCE ReadOnlyAccess权限的IAM用户可以查看所有资源信息,但是无法进行任何操作。
 
开启告警中心
CCE Standard集群和CCE Turbo集群均支持开启告警中心。
- 在目标集群左侧导航栏选择“告警中心”。
 - 选择“告警规则”页签,单击“开启告警中心”,在弹出的页面中选择一个或多个联系组,以便分组管理订阅终端并接收告警消息。如果当前还没有联系组,请参考绑定联系组进行创建。
 - 单击“确认”完成功能开启。
 
配置告警规则
CCE Standard集群、CCE Turbo集群开启智能告警中心后,可以进行告警规则的配置和管理。
- 登录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  | 
       
         事件类  | 
       
         节点故障检测插件(1.18.41及以上版本) 云原生日志采集插件(1.3.2及以上版本)  | 
       
         PodOOMKilling  | 
      |
| 
         节点资源规则集  | 
       
         Kube持久卷使用率高  | 
       
         检查节点上持久卷使用率是否过高  | 
       
         指标类  | 
       
         云原生监控插件  | 
       
         (kubelet_volume_stats_available_bytes{job="kubelet"} / kubelet_volume_stats_capacity_bytes{job="kubelet"}) < 0.03 and kubelet_volume_stats_used_bytes{job="kubelet"} > 0  | 
      
| 
         Kube持久卷声明状态异常  | 
       
         检查持久卷声明状态是否异常  | 
       
         指标类  | 
       
         云原生监控插件  | 
       
         kube_persistentvolumeclaim_status_phase{phase=~"Failed|Pending|Lost"} > 0  | 
      |
| 
         Kube持久卷状态异常  | 
       
         检查持久卷状态是否异常  | 
       
         指标类  | 
       
         云原生监控插件  | 
       
         kube_persistentvolume_status_phase{phase=~"Failed|Pending"} > 0  | 
      |
| 
         节点CPU使用率超过百分之八十  | 
       
         检查节点CPU使用率是否大于80%  | 
       
         指标类  | 
       
         云原生监控插件  | 
       
         100 - (avg by(node, cluster_name, cluster) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 80  | 
      |
| 
         节点内存可用率不足百分之十  | 
       
         检查节点可用内存是否不足10%  | 
       
         指标类  | 
       
         云原生监控插件  | 
       
         node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10  | 
      |
| 
         节点磁盘可用率不足百分之十  | 
       
         检查节点可用磁盘是否不足10%  | 
       
         指标类  | 
       
         云原生监控插件  | 
       
         avg((node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes) by (device, node, cluster_name, cluster) < 10  | 
      |
| 
         节点磁盘空间不足  | 
       
         检查节点磁盘空间是否充足  | 
       
         事件类  | 
       
         云原生日志采集插件  | 
       
         不涉及  | 
      |
| 
         节点EmptyDir存储池异常  | 
       
         检查节点临时卷存储池是否异常  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="EmptyDirVolumeGroupStatusError"} >= 1  | 
      |
| 
         节点内存资源不足  | 
       
         检查节点整体内存是否充足  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="MemoryProblem"} >= 1  | 
      |
| 
         节点持久卷存储池异常  | 
       
         检查节点上持久卷存储池是否异常  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="LocalPvVolumeGroupStatusError"} >= 1  | 
      |
| 
         节点挂载点异常  | 
       
         检查节点上的挂载点是否异常  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="MountPointProblem"} >= 1  | 
      |
| 
         节点文件句柄数不足  | 
       
         检查系统关键资源FD文件句柄数是否充足  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="FDProblem"} >= 1  | 
      |
| 
         节点磁盘卡IO  | 
       
         检查节点磁盘是否存在卡IO故障  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="DiskHung"} >= 1  | 
      |
| 
         节点磁盘只读  | 
       
         检查节点磁盘是否只读  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="DiskReadonly"} >= 1  | 
      |
| 
         节点磁盘异常  | 
       
         检查节点系统盘、CCE数据盘(包含Docker逻辑盘与Kubelet逻辑盘)的磁盘使用情况  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="DiskProblem"} >= 1  | 
      |
| 
         节点磁盘慢IO  | 
       
         检测节点磁盘是否存在慢IO故障  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="DiskSlow"} >= 1  | 
      |
| 
         节点进程资源不足  | 
       
         检查系统关键资源PID进程资源是否充足  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="PIDProblem"} >= 1  | 
      |
| 
         节点链接跟踪表不足  | 
       
         检查节点链接跟踪表是否充足  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="ConntrackFullProblem"} >= 1  | 
      |
| 
         节点状态规则集  | 
       
         ResolvConf配置文件异常  | 
       
         检查ResolvConf配置文件是否异常  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="ResolvConfFileProblem"} >= 1  | 
      
| 
         节点CNI组件异常  | 
       
         检查节点CNI(容器网络)组件是否正常运行  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="CNIProblem"} >= 1  | 
      |
| 
         节点CRI组件异常  | 
       
         检查关键组件CRI(容器运行时组件)Docker或Containerd的运行状态  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="CRIProblem"} >= 1  | 
      |
| 
         节点Kube-proxy故障  | 
       
         检查Kube-proxy是否正常运行  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="KUBEPROXYProblem"} >= 1  | 
      |
| 
         节点Kubelet异常  | 
       
         检查Kubelet状态是否异常  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="KUBELETProblem"} >= 1  | 
      |
| 
         节点存在计划事件  | 
       
         检查节点是否存在主机计划事件  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="ScheduledEvent"} >= 1  | 
      |
| 
         Node状态抖动  | 
       
         检查节点状态是否在正常和异常之间抖动  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         sum(changes(kube_node_status_condition{status="true",condition="Ready"}[15m])) by (cluster_name, node, cluster) > 2  | 
      |
| 
         节点Containerd频繁重启  | 
       
         检查Containerd是否频繁重启  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="FrequentContainerdRestart"} >= 1  | 
      |
| 
         节点任务夯住  | 
       
         检查节点是否存在任务夯住  | 
       
         事件类  | 
       
         云原生日志采集插件  | 
       
         TaskHung  | 
      |
| 
         节点存储池配置有误  | 
       
         检查节点临时卷及持久卷存储池配置是否异常  | 
       
         事件类  | 
       
         云原生日志采集插件  | 
       
         InvalidStoragePool  | 
      |
| 
         节点状态异常  | 
       
         检查节点状态是否异常  | 
       
         事件类  | 
       
         云原生日志采集插件  | 
       
         NodeNotReady  | 
      |
| 
         节点进程D异常  | 
       
         检查节点是否存在D进程  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="ProcessD"} >= 1  | 
      |
| 
         节点进程Z异常  | 
       
         检查节点是否存在Z进程  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="ProcessZ"} >= 1  | 
      |
| 
         节点CRI频繁重启  | 
       
         检查CRI是否频繁重启  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="FrequentCRIRestart"} >= 1  | 
      |
| 
         节点Docker频繁重启  | 
       
         检查Docker是否频繁重启  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="FrequentDockerRestart"} >= 1  | 
      |
| 
         节点Kubelet频繁重启  | 
       
         检查Kubelet是否频繁重启  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="FrequentKubeletRestart"} >= 1  | 
      |
| 
         节点NTP服务故障  | 
       
         检查关键系统服务节点时钟同步服务ntpd或chronyd是否正常运行  | 
       
         指标类  | 
       
         云原生监控插件 节点故障检测插件  | 
       
         problem_gauge{type="NTPProblem"} >= 1  | 
      |
| 
         节点内存不足强杀进程  | 
       
         检查节点是否存在OOM事件  | 
       
         事件类  | 
       
         节点故障检测插件  | 
       
         OOMKilling  | 
      |
| 
         节点扩缩容规则集  | 
       
         节点池资源售罄  | 
       
         检查节点池资源是否充足  | 
       
         事件类  | 
       
         云原生日志采集插件  | 
       
         NodePoolSoldOut  | 
      
| 
         扩容节点超时  | 
       
         检查节点池扩容节点是否超时  | 
       
         事件类  | 
       
         云原生日志采集插件  | 
       
         ScaleUpTimedOut  | 
      |
| 
         节点池扩容节点失败  | 
       
         检查节点池扩容节点是否异常  | 
       
         事件类  | 
       
         云原生日志采集插件  | 
       
         FailedToScaleUpGroup  | 
      |
| 
         节点池缩容节点失败  | 
       
         检查节点池缩容节点是否异常  | 
       
         事件类  | 
       
         云原生日志采集插件  | 
       
         ScaleDownFailed  | 
      |
| 
         集群状态规则集  | 
       
         集群状态不可用  | 
       
         检查集群状态是否可用 相关解决方案请参见当集群状态为“不可用”时,如何排查解决?  | 
       
         事件类  | 
       
         云原生日志采集插件  | 
       
         不涉及  | 
      
绑定联系组
 
    告警规则最多绑定5个联系组。
联系组是基于消息通知服务 SMN的主题功能实现的,目的是为消息发布者和订阅者提供一个可以相互交流的通道。联系组包含一个或多个订阅终端,您可以通过为告警规则绑定联系组,分组管理订阅终端,接收告警信息。
- 登录CCE控制台,单击集群名称进入集群。
 - 在左侧导航栏选择“告警中心”,选择“默认联系组”页签。
 - 单击“绑定联系组”,您可以选择SMN服务中已创建的联系组,也可以新建联系组,新建时的参数说明如下:
     
     
- 联系组名称:输入联系组名称,创建后不可修改。名称只能包含大写字母、小写字母、数字、-和_,且必须由大写字母、小写字母或数字开头,名称长度为1~255字符。
 - 告警消息显示名:即订阅终端接收消息的标题名称。假设订阅终端为邮件,推送邮件消息时,若已设置告警消息显示名,发件人则呈现为“显示名”,若未设置告警消息显示名,发件人呈现为“username@example.com”。支持在联系组创建完成后修改告警消息显示名。
 - 添加订阅终端:您需要添加一个或多个订阅终端来接收告警消息。 
       
终端类型
终端
安全设置
短信
您需要输入有效的手机号码,用于接收告警消息。
-
邮件
您需要输入有效的电子邮件地址,用于接收告警消息。
-
钉钉机器人
您需要输入钉钉机器人的URL链接,用于接收告警消息。
您可以选择以下安全设置,支持多选:
- 密钥:加签的密钥请在钉钉机器人的“安全设置”中查找。
 - 自定义关键字:关键词必须为钉钉“安全设置”中的关键词之一。
 
飞书机器人
您需要输入飞书机器人的URL链接,用于接收告警消息。
您可以选择以下安全设置,仅支持单选:
- 密钥:加签的密钥请在飞书机器人的“安全设置”中查找。
 - 自定义关键字:关键词必须为飞书“安全设置”中的关键词之一。
 
企业微信机器人
您需要输入企业微信机器人的URL链接,用于接收告警消息。
-
 
 - 单击“确定”完成联系组的绑定。
     
     
返回联系组列表,订阅终端状态为“未确认”,您需要继续执行后续操作,向该终端发送订阅请求,以验证终端有效性。
 - 单击操作列“请求订阅”,向该终端发送订阅请求。若终端收到请求,请按照提示进行确认,确认完成后订阅终端状态将变为“已确认”。
 
查看告警列表
您可以在“告警列表”页面查看最近发送的历史记录。
- 登录CCE控制台,单击集群名称进入集群。
 - 在左侧导航栏选择“告警中心”,选择“告警列表”页签。
     
     
列表中默认展示全部待解决告警,支持按照告警关键字、告警等级,以及告警发生的时间范围筛选。同时支持查看指定筛选条件的告警在不同时间段的分布情况。
待解决告警若十分钟内不再触发,则会默认已解决并转换为历史告警。如果提前确认某条告警已解决,也可以单击操作列的“清除”,清除后的告警可在历史告警中查询。
图1 告警列表