更新时间:2024-04-02 GMT+08:00
分享

通过AOM配置自定义告警

CCE对接AOM并上报告警和事件,通过在AOM中设置告警规则,您可以及时了解集群中各种资源是否存在异常。

告警配置流程

  1. 在SMN创建主题
  2. 创建行动策略
  3. 添加告警规则。
    1. 事件类告警:根据集群上报到AOM的事件配置告警。推荐配置的事件和配置方法请参见添加事件类告警
    2. 指标类告警:实时监控环境中主机、组件等资源使用情况,根据监控指标阈值告警。推荐配置阈值指标和配置方法请参见添加指标类告警

在SMN创建主题

SMN(Simple Message Notification,消息通知服务)是向订阅者主动推送消息的服务,订阅者可以是电子邮件、短信、HTTP和HTTPS等。

主题是消息发布或客户端订阅通知的特定事件类型。它作为发送消息和订阅通知的信道,为发布者和订阅者提供一个可以相互交流的通道。

您需要创建一个主题,并订阅。具体方法请参见创建主题订阅主题

订阅主题后,请前往您的订阅终端(邮件或短信)手动确认添加订阅,消息通知才可生效。

创建行动策略

AOM提供告警行动策略定制功能,您可以通过创建告警行动策略关联SMN主题与消息模板,通过创建消息模板,自定义通知消息配置。

具体方法请参见创建告警行动策略。创建时选择在SMN创建主题创建并订阅的主题。

添加事件类告警

以添加“节点状态异常告警”为例,展示添加事件类告警的步骤。

此功能为AOM的功能,详细的参数说明请参见创建事件类告警规则

表1 推荐配置的事件类告警

事件名称

来源

事件说明

处理建议

节点状态异常

CCE

节点异常立即触发告警

登录集群查看告警节点状态,确认异常后,优先将此节点设置为不可调度,并将业务pod调度到其他节点

节点重启

CCE

节点重启立即触发告警

登录集群查看告警节点状态,并确保节点正常启动可用,关注重启原因

节点kubelet故障

CCE

节点异常立即触发告警

登录集群查看告警节点状态,确认异常后,优先将此节点设置为不可调度,并将业务pod调度到其他节点;重启kubelet

节点docker故障

CCE

节点异常立即触发告警

登录集群查看告警节点状态,确认异常后,优先将此节点设置为不可调度,并将业务pod调度到其他节点;重启docker

节点kube-proxy故障

CCE

节点异常立即触发告警

登录集群查看告警节点状态,确认异常后,优先将此节点设置为不可调度,并将业务pod调度到其他节点

节点操作系统内核故障

CCE

节点异常立即触发告警

登录集群查看告警节点状态,确认异常后,优先将此节点设置为不可调度,并将业务pod调度到其他节点

节点的连接跟踪表已满

CCE

节点异常立即触发告警

登录集群查看告警节点状态,确认异常后,优先将此节点设置为不可调度,并将业务pod调度到其他节点

节点池资源售罄

CCE

节点池资源售罄立即告警

设置自动节点池切换或更换节点池规格

节点创建失败

CCE

创建节点失败立即触发

查看创建节点失败原因,尝试重新创建节点

扩容节点超时

CCE

扩容节点超时立即触发

查看扩容节点失超时原因,尝试重新扩容节点

缩容节点失败

CCE

缩容节点超时立即触发

查看缩容节点失超时原因,尝试重新缩容节点

拉取镜像重试失败

CCE

拉取镜像重试失败

登录集群查看拉取镜像失败原因,重新部署业务负载

  1. 登录AOM控制台。
  2. 在左侧导航栏选择“告警 > 告警规则”,在右上角单击“添加告警”
  3. 设置告警规则。

    • 规则类型:选择事件类告警。
    • 告警来源:选择CCE。
    • 触发对象:根据事件名称触发,选择“节点状态异常##NodeNotReady”事件。触发对象可以通过多个维度(通知类型、事件名称、告警级别、自定义属性、命名空间、集群名称)进行筛选,您可以根据需要选择。
    • 触发方式:选择立即触发。
    • 告警方式:直接告警。
    • 行动策略:选择创建行动策略创建的行动策略。

    这里设置告警的意思为:

    集群中有节点状态异常时,CCE会上报“节点状态异常##NodeNotReady”的事件到AOM,AOM根据这里设置的告警规则,当有“节点状态异常##NodeNotReady”事件时,立即触发告警通知,并根据行动策略,通过SMN通知到您。

    图1 创建事件类告警

  4. 单击“立即创建”

    创建后在规则列表中可以看到如下一行,表示创建成功。

CCE事件列表

事件类告警是根据CCE上报到AOM的事件来决定是否告警,CCE上报了一系列事件到AOM,您可以在配置事件告警的处查看具体事件,根据自身需求添加事件类告警。

图2 CCE上报的事件

CCE当前支持集群数据面事件集群控制面事件

表2 集群数据面事件

类别

事件描述

事件名称

事件级别

更多说明

Pod

Pod内存不足OOM

PodOOMKilling

重要

检查Pod是否因OOM退出。

该事件依赖节点故障检测插件(1.18.41及以上版本)和云原生日志采集插件(1.3.2及以上版本)。

Pod

启动失败

FailedStart

重要

检查Pod是否启动成功。

Pod

拉取镜像失败

FailedPullImage

重要

检查Pod是否拉取镜像成功。

Pod

启动重试失败

BackOffStart

重要

检查Pod是否重启失败。

Pod

调度失败

FailedScheduling

重要

检查Pod是否调度成功。

Pod

拉取镜像重试失败

BackOffPullImage

重要

检查Pod重试拉取镜像是否成功。

Pod

创建失败

FailedCreate

重要

检查Pod创建是否成功。

Pod

状态异常

Unhealthy

次要

检查Pod状态是否正常。

Pod

删除失败

FailedDelete

次要

检查工作负载是否删除成功。

Pod

未拉取镜像异常

ErrImageNeverPull

次要

检查工作负载是否拉取镜像。

Pod

扩容失败

FailedScaleOut

次要

检查工作负载副本扩容是否正常。

Pod

待机失败

FailedStandBy

次要

检查Pod待机是否成功。

Pod

更新配置失败

FailedReconfig

次要

检查Pod更新配置是否成功。

Pod

激活失败

FailedActive

次要

检查Pod是否激活成功。

Pod

回滚失败

FailedRollback

次要

检查Pod回滚是否成功。

Pod

更新失败

FailedUpdate

次要

检查Pod更新是否成功。

Pod

缩容失败

FailedScaleIn

次要

检查Pod缩容是否失败。

Pod

重启失败

FailedRestart

次要

检查Pod重启是否成功。

Deployment

标签选择器冲突

SelectorOverlap

次要

检查集群中标签选择器是否存在冲突。

Deployment

副本集创建异常

ReplicaSetCreateError

次要

检查工作负载ReplicaSet创建副本是否正常。

Deployment

部署回滚版本未发现

DeploymentRollbackRevisionNotFound

次要

检查Deployment负载回滚版本是否存在。

DaemonSet

标签选择器异常

SelectingAll

次要

检查工作负载标签选择器是否设置异常。

Job

太多活跃Pod

TooManyActivePods

次要

检查Job达到预定的Pod数后,是否还存在活动状态的Pod。

Job

太多成功Pod

TooManySucceededPods

次要

检查Job达到预定的数量后,是否存在过多运行成功的Pod。

CronJob

查询失败

FailedGet

次要

查询CronJob是否成功。

CronJob

查询Pod列表失败

FailedList

次要

检查查询Pod列表是否成功。

CronJob

未知Job

UnexpectedJob

次要

检查CronJob是否出现未知的Job。

Service

创建负载均衡失败

CreatingLoadBalancerFailed

次要

检查创建ELB是否成功。

Service

删除负载均衡失败

DeletingLoadBalancerFailed

次要

检查删除ELB是否成功。

Service

更新负载均衡失败

UpdateLoadBalancerFailed

次要

检查更新ELB是否成功。

Namespace

废弃节点清理

DeleteNodeWithNoServer

次要

检查是否清理废弃节点。

PV

主机卸载块存储失败

DetachVolumeFailed

次要

检查卸载块存储是否成功。

PV

卷回收策略未知

VolumeUnknownReclaimPolicy

次要

检查是否指定卷回收策略。

PV

挂载数据卷失败

SetUpAtVolumeFailed

次要

检查数据卷挂载是否成功。

PV

数据卷回收失败

VolumeFailedRecycle

次要

检查数据卷是否成功回收。

PV

等待主机挂载块存储失败

WaitForAttachVolumeFailed

次要

检查节点挂载块存储是否成功。

PV

数据卷删除失败

VolumeFailedDelete

次要

检查数据卷删除是否成功。

PV

挂载盘符失败

MountDeviceFailed

次要

检查数据卷挂盘是否成功。

PV

卸载数据卷失败

TearDownAtVolumeFailed

次要

检查数据卷卸载是否成功。

PV

卸载盘符失败

UnmountDeviceFailed

次要

检查数据卷卸载盘符是否成功。

PV

主机挂载块存储失败

AttachVolumeFailed

次要

检查节点卸载块存储是否成功。

PVC

数据卷扩容失败

VolumeResizeFailed

次要

检查数据卷扩容是否成功。

PVC

卷PVC丢失

ClaimLost

次要

检查PVC卷是否正常。

PVC

创建卷失败

ProvisioningFailed

次要

检查创建数据卷是否正常。

PVC

创建卷清理失败

ProvisioningCleanupFailed

次要

检查清理数据卷是否正常。

PVC

卷误绑定

ClaimMisbound

次要

检查PVC是否绑定错误的卷。

Node

节点重启

Rebooted

重要

检查节点是否重启。

Node

节点不可调度

NodeNotSchedulable

重要

检查节点是否可调度。

Node

节点状态异常

NodeNotReady

重要

检查节点状态是否异常。

Node

节点创建失败

NodeCreateFailed

重要

检查节点是否创建成功。

Node

节点kubelet故障

KUBELETIsDown

次要

检查节点kubelet是否正常。

Node

节点内存空间不足

NodeHasInsufficientMemory

次要

检查节点内存空间是否充足。

Node

节点上发现未注册的网络设备

UnregisterNetDevice

次要

检查节点上是否绑定了未注册的网络设备。

Node

网卡未发现

NetworkCardNotFound

次要

检查节点网卡状态。

Node

节点kube-proxy故障

KUBEPROXYIsDown

次要

检查节点上的kube-proxy是否正常。

Node

节点磁盘空间已满

NodeOutOfDisk

次要

检查节点磁盘空间是否正常。

Node

节点任务夯住

TaskHung

次要

检查节点上是否存在夯住的任务。

Node

CIDR不可用

CIDRNotAvailable

次要

检查节点CIDR是否可用。

Node

节点的连接跟踪表已满

ConntrackFull

次要

检查节点的连接跟踪表是否已满。

Node

节点磁盘空间不足

NodeHasDiskPressure

次要

检查节点磁盘空间是否充足。

Node

节点纳管失败

NodeInstallFailed

次要

检查集群纳管节点是否成功。

Node

节点操作系统内核故障

KernelOops

次要

检查节点操作系统内核是否故障。

Node

节点内存不足强杀进程

OOMKilling

次要

检查节点是否出现OOM。

Node

节点docker故障

DOCKERIsDown

次要

检查节点容器引擎是否正常。

Node

CIDR分配失败

CIDRAssignmentFailed

次要

检查节点CIDR分配是否成功。

Node

节点docker夯住

DockerHung

次要

检查节点Docker进程是否夯住。

Node

节点文件系统只读

FilesystemIsReadOnly

次要

检查节点文件系统是否只读。

Node

节点ntp服务故障

NTPIsDown

次要

检查节点NTP服务是否正常。

Node

节点卸载失败

NodeUninstallFailed

次要

检查节点卸载是否成功。

Node

节点磁盘卸载夯住

AUFSUmountHung

次要

检查节点磁盘卸载是否夯住。

Node

节点cni插件故障

CNIIsDown

次要

检查节点CNI插件是否故障。

Autoscaler

扩容节点超时

ScaleUpTimedOut

重要

检查节点池扩容节点是否超时。

Autoscaler

节点池资源充足

NodePoolAvailable

重要

检查节点池资源是否充足。

Autoscaler

缩容节点

ScaleDown

重要

集群正在缩容节点。

Autoscaler

未触发节点扩容

NotTriggerScaleUp

重要

检查节点是否成功触发扩容。

Autoscaler

删除未注册节点成功

DeleteUnregistered

重要

检查删除未注册的节点是否成功。

Autoscaler

缩容空闲节点成功

ScaleDownEmpty

重要

检查缩容空闲节点是否成功。

Autoscaler

缩容节点失败

ScaleDownFailed

重要

检查缩容节点是否成功。

Autoscaler

节点池扩容节点失败

FailedToScaleUpGroup

重要

检查节点池扩容节点是否异常。

Autoscaler

节点池扩容节点成功

ScaledUpGroup

重要

检查节点池扩容是否成功。

Autoscaler

扩容节点失败

ScaleUpFailed

重要

检查节点扩容是否成功。

Autoscaler

修复节点池节点个数成功

FixNodeGroupSizeDone

重要

检查修复节点池节点个数是否成功。

Autoscaler

节点池退避重试中

NodeGroupInBackOff

重要

检查节点池扩缩容是否存在回退重试。

Autoscaler

修复节点池节点个数失败

FixNodeGroupSizeError

重要

检查修复节点池节点个数是否成功。

Autoscaler

节点池资源售罄

NodePoolSoldOut

重要

检查节点池资源是否充足。

Autoscaler

触发节点扩容

TriggeredScaleUp

重要

检查节点是否触发扩容。

Autoscaler

节点池扩容节点启动

StartScaledUpGroup

重要

检查节点池扩容是否启动。

Autoscaler

删除未注册节点失败

DeleteUnregisteredFailed

重要

检查删除未注册的节点是否成功。

表3 集群控制面事件

事件名称

事件ID

事件级别

事件说明

内部故障

Internal error

重要

检查集群是否出现内部故障。

外部依赖异常

External dependency error

重要

检查集群是否存在外部依赖异常。

初始化执行线程失败

Failed to initialize process thread

重要

检查集群初始化执行线程是否成功。

更新数据库失败

Failed to update database

重要

检查集群更新数据库是否成功。

节点池触发创建节点失败

Failed to create node by nodepool

重要

检查节点池中创建节点是否成功。

节点池触发删除节点失败

Failed to delete node by nodepool

重要

检查节点池中删除节点是否成功。

创建包周期节点失败

Failed to create yearly/monthly subscription node

重要

检查集群创建包周期的节点是否成功。

解除资源租户访问控制节点镜像的授权失败

Failed to cancel the authorization of accessing the image of the master.

重要

创建集群时,检查解除资源租户访问控制节点镜像的授权是否成功。

创建虚拟IP失败

Failed to create the virtual IP for the master

重要

创建集群时检查创建虚拟IP是否成功。

删除节点虚拟机失败

Failed to delete the node VM

重要

检查集群删除节点虚拟机是否成功。

删除节点安全组失败

Failed to delete the security group of node

重要

检查集群删除节点安全组是否成功。

删除控制节点安全组失败

Failed to delete the security group of master

重要

检查集群删除控制节点安全组是否成功。

删除控制节点网卡安全组失败

Failed to delete the security group of port

重要

检查集群删除控制节点网卡安全组是否成功。

删除集群ENI/SubENI安全组失败

Failed to delete the security group of eni or subeni

重要

检查集群删除ENI/SubENI安全组是否成功。

解绑控制节点网卡失败

Failed to detach the port of master

重要

检查集群解绑控制节点网卡是否成功。

删除控制节点网卡失败

Failed to delete the port of master

重要

检查集群删除控制节点网卡是否成功。

删除控制节点虚拟机失败

Failed to delete the master VM

重要

检查集群删除控制节点虚拟机是否成功。

删除控制节点密钥对失败

Failed to delete the key pair of master

重要

检查集群删除控制节点密钥对是否成功。

删除控制节点subnet失败

Failed to delete the subnet of master

重要

检查集群删除控制节点subnet是否成功。

删除控制节点VPC失败

Failed to delete the VPC of master

重要

检查集群删除控制节点VPC是否成功。

删除集群证书失败

Failed to delete certificate of cluster

重要

检查集群删除集群证书是否成功。

删除控制节点云服务器组失败

Failed to delete the server group of master

重要

检查集群删除控制节点云服务器组是否成功。

删除虚拟IP失败

Failed to delete the virtual IP for the master

重要

检查集群删除虚拟IP是否成功。

获取控制节点浮动IP失败

Failed to get floating IP of the master

重要

检查获取控制节点浮动IP是否成功。

获取集群规格信息失败

Failed to get cluster flavor

重要

检查获取集群规格信息是否成功。

获取集群endpoint失败

Failed to get cluster endpoint

重要

检查获取集群endpoint是否成功。

获取Kubernetes集群连接失败

Failed to get kubernetes connection

重要

检查获取Kubernetes集群连接是否成功。

更新集群Secret失败

Failed to update secret

重要

检查更新集群Secret是否成功。

处理用户操作超时

Operation timed out

重要

检查处理用户操作是否超时。

连接Kubernetes集群超时

Connecting to Kubernetes cluster timed out

重要

检查连接Kubernetes集群是否超时。

检查组件状态失败或组件状态异常

Failed to check component status or components are abnormal

重要

检查集群检查组件状态是否成功,或组件状态是否异常。

无法在Kubernetes集群中找到该节点

The node is not found in kubernetes cluster

重要

检查是否能在Kubernetes集群中找到该节点。

节点在Kubernetes集群中状态异常

The status of node is not ready in kubernetes cluster

重要

检查节点在Kubernetes集群中状态是否正常。

无法在ECS服务中找到该节点对应的虚拟机

Can't find corresponding vm of this node in ECS

重要

检查能否在ECS服务中找到该节点对应的虚拟机。

升级控制节点失败

Failed to upgrade the master

重要

检查升级控制节点是否成功。

升级节点失败

Failed to upgrade the node

重要

检查升级节点是否成功。

变更控制节点规格失败

Failed to change flavor of the master

重要

检查变更控制节点规格是否成功。

变更控制节点规格超时

Change flavor of the master timeout

重要

检查变更控制节点规格是否超时。

创建包周期节点校验不通过

Failed to pass verification while creating yearly/monthly subscription node

重要

检查创建包周期节点校验是否成功。

安装节点失败

Failed to install the node

重要

检查集群安装节点是否成功。

清理VPC中集群容器网络路由表条目失败

Failed to clean routes of cluster container network in VPC

重要

检查清理VPC中集群容器网络路由表条目是否成功。

集群状态不可用

Cluster status is Unavailable

重要

检查集群状态是否可用。

集群状态故障

Cluster status is Error

重要

检查集群是否出现故障。

集群状态长时间不更新

Cluster status is not updated for a long time

重要

检查集群状态是否长时间不更新。

集群升级超时后更新控制节点状态失败

Failed to update master status after upgrading cluster timeout

重要

检查集群升级超时后更新控制节点状态是否成功。

集群升级超时后更新运行中的任务失败

Failed to update running jobs after upgrading cluster timeout

重要

检查集群升级超时后更新运行中的任务是否成功。

更新集群状态失败

Failed to update cluster status

重要

检查更新集群状态是否成功。

更新节点状态失败

Failed to update node status

重要

检查更新节点状态是否成功。

纳管节点超时后移除数据库中的节点记录失败

Failed to remove the static node from database

重要

检查纳管节点超时后移除数据库中的节点记录是否成功。

节点处理超时后更新节点状态为异常失败

Failed to update node status to abnormal after node processing timeout

重要

检查节点处理超时后,是否更新节点状态为异常。

更新集群访问地址失败

Failed to update the cluster endpoint

重要

检查更新集群访问地址是否成功。

删除不可用的Kubernetes连接失败

Failed to delete the unavailable connection of the Kubernetes cluster

重要

检查删除不可用的Kubernetes连接是否成功。

同步集群证书失败

Failed to sync the cluster cert

重要

检查同步集群证书是否成功。

添加指标类告警

以添加 promql: 'kube_persistentvolume_status_phase{phase=~"Failed|Pending"} > 0' 为例,展示添加指标类告警的步骤。

此功能为AOM的功能,详细的参数说明请参见创建指标告警规则

everest-csi-controller、everest-csi-driver、coredns、autoscaler、yangtse组件必须配置Pod的cpu使用率、物理mem使用率、文件系统使用率告警。如果资源使用率较高,请及时扩大规格,以免部分系统功能不可用。

  1. 登录AOM2.0控制台。
  2. 在左侧导航栏选择“告警管理 > 告警规则”,单击“创建告警规则”。
  3. 设置告警规则,关键参数如下。

    • 规则类型:选择“指标告警规则”。
    • 配置方式:选择“PromQL”。建议指定需要告警的集群。例:

      kube_persistentvolume_status_phase{phase=~"Failed|Pending",cluster="${cluster_id}"} > 0

    • Prometheus 实例:选择云原生监控插件所对接的AOM实例。
    • 告警方式:选择“直接告警”。
    • 行动规则:建议选择开启告警中心时为本集群创建的行动规则。规则名称:auto-cluster-${cluster_id}

    这里设置的告警的含义为:

    AOM根据PromQL设置的告警规则,当PromQL规则触发时,立即触发告警通知,并根据行动规则,通过SMN通知到您。

    图3 自定义指标告警

  4. 单击“立即创建”。

    创建后在规则列表中可以看到如下一行,表示创建成功。

    图4 告警规则列表

分享:

    相关文档

    相关产品