通过开启容器服务报警管理功能,您可以统一管理容器的报警,包括容器服务异常事件报警、集群相关基础资源的关键指标报警、集群核心组件及集群中应用的指标报警等。您还可以通过CRD方式修改集群中默认创建的报警规则,及时感知集群中异常变化。
索引
前提条件
仅支持ACK托管集群和ACK专有集群。
ACK Serverless集群需要在对应的监控实例中开启报警,请参见创建Prometheus告警规则。
已开通SLS日志服务云产品,需要登录日志服务控制台,根据页面提示开通日志服务。
已开通Prometheus监控服务,详情请参见开通方式。
计费说明
报警功能是通过日志服务SLS、阿里云Prometheus和云监控发送 ,其中各监控服务发送的短信、邮件等通知可能产生额外资费。相关计费如下。在开启报警功能之前,您可以根据默认报警规则模板确认每个报警项的来源,并开通所需的服务。
发送报警源 | 配置要求 | 计费详情 |
发送报警源 | 配置要求 | 计费详情 |
日志服务 | 开启事件监控;启用报警管理功能时,事件监控会默认开启。 | |
阿里云Prometheus | 为集群配置使用阿里云Prometheus监控。 | |
云监控 |
开启报警管理功能
开启报警管理功能后,您可以为集群内指定的资源设置指标报警,并在异常情况发生时自动接收告警通知。这将帮助您更高效地管理和维护集群,确保服务的稳定运行。相关资源报警详情请参见默认报警规则模板。
您可以选择在已有集群中开启报警配置,或在创建新集群时启用报警配置。
当您已有集群,可以根据以下步骤开启。
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在报警配置页面,单击开始安装,控制台会自动检查条件,进行安装、升级组件。
安装升级完成后,进入报警配置页面配置报警信息。
页签
说明
报警规则管理
打开启动状态开启对应报警规则集,单击编辑通知对象可设置关联的通知对象。
报警历史
目前可查看最近1天内发送的最新100条历史记录。单击报警规则列下的链接,可以跳转到对应监控系统中查看详细规则配置;单击排查现场,可以快速定位到异常发生的资源页面(异常事件、指标异常的资源)。
联系人管理
对联系人进行管理,可创建、编辑或删除联系人。
联系方式可以通过短信、邮箱和机器人类型进行设置,需先在云监控控制台中 验证,以便接收报警信息。还支持同步联系人,如果验证信息过期,可在云监控中删除对应联系人,并刷新联系人页面。通知对象为机器人类型设置请参见钉钉机器人、企业微信机器人和飞书机器人。
联系人分组管理
对联系人分组您进行管理,可创建、编辑或删除联系人分组。当无联系人分组时,控制台会从您的阿里云账号注册信息中同步创建一个默认联系人分组。
在创建集群的组件配置页面,勾选报警配置右侧使用默认报警模板配置报警,并选择报警通知联系人分组。具体操作,请参见创建ACK托管集群。
创建集群时开启报警配置后,系统将会开启默认报警规则,并默认发送报警通知到默认的联系人分组,您也可以自定义修改报警联系人或报警联系组。
ACK专有集群需要先为Worker RAM角色授权,再开启默认报警规则。
为Worker RAM角色授权
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择集群信息。
在集群信息页面,在集群资源区域,复制Worker RAM角色右侧的名称,并单击链接进入RAM访问控制控制台为该Worker RAM角色授权。
创建如下自定义权限策略。请参见通过脚本编辑模式创建自定义权限策略。
{ "Action": [ "log:*", "arms:*", "cms:*", "cs:UpdateContactGroup" ], "Resource": [ "*" ], "Effect": "Allow" }
在角色页面,搜索定位该Worker RAM角色,为其授予以上创建的自定义权限策略。具体操作,请参见方式一:在RAM角色页面为RAM角色授权。
通过日志查看报警功能访问权限是否已配置。
在目标集群管理页左侧导航栏,选择 。
选择命名空间为kube-system,单击无状态应用列表中alicloud-monitor-controller的名称链接。
单击日志页签,可看到授权成功的Pod日志。
开启默认报警配置规则
在目标集群页左侧导航栏,选择运维管理 > 报警配置。
在报警配置页面,配置如下报警信息。
页签
说明
报警规则管理
打开启动状态开启对应报警规则集,单击编辑通知对象可设置关联的通知对象。
报警历史
目前可查看最近1天内发送的最新100条历史记录。单击报警规则列下的链接,可以跳转到对应监控系统中查看详细规则配置;单击排查现场,可以快速定位到异常发生的资源页面(异常事件、指标异常的资源)。
联系人管理
对联系人进行管理,可创建、编辑或删除联系人。
联系方式可以通过短信、邮箱和机器人类型进行设置,需先在云监控控制台中 验证,以便接收报警信息。还支持同步联系人,如果验证信息过期,可在云监控中删除对应联系人,并刷新联系人页面。通知对象为机器人类型设置请参见钉钉机器人、企业微信机器人和飞书机器人。
联系人分组管理
对联系人分组您进行管理,可创建、编辑或删除联系人分组。当无联系人分组时,控制台会从您的阿里云账号注册信息中同步创建一个默认联系人分组。
通过CRD配置报警规则
报警配置功能开启后,默认会在kube-system命名空间下创建一个名为AckAlertRule类型的CRD资源配置,包含默认报警规则模板。您可以通过修改此CRD资源来修改默认报警规则,以配置符合要求的容器服务报警规则。
配置步骤
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在报警规则管理页签,单击右上角编辑报警配置,然后单击目标规则列右侧操作列下的YAML,即可查看当前集群中的AckAlertRule资源配置。
参考默认报警规则模板说明,修改示例YAML文件。
报警规则配置的YAML文件示例如下:
apiVersion: alert.alibabacloud.com/v1beta1 kind: AckAlertRule metadata: name: default spec: groups: # 以下是一个集群事件报警规则配置样例。 - name: pod-exceptions # 报警规则分组名,对应报警模板中的Group_Name字段。 rules: - name: pod-oom # 报警规则名。 type: event # 报警规则类型(Rule_Type),枚举值为event(事件类型)、metric-cms(云监控指标类型)。 expression: sls.app.ack.pod.oom # 报警规则表达式,当规则类型为event时,表达式的值为本文默认报警规则模板中Rule_Expression_Id值。 enable: enable # 报警规则开启状态,枚举值为enable、disable。 - name: pod-failed type: event expression: sls.app.ack.pod.failed enable: enable # 以下是一个集群基础资源报警规则配置样例。 - name: res-exceptions # 报警规则分组名,对应报警模板中的Group_Name字段。 rules: - name: node_cpu_util_high # 报警规则名。 type: metric-cms # 报警规则类型(Rule_Type),枚举值为event(事件类型)、metric-cms(云监控指标类型)。 expression: cms.host.cpu.utilization # 报警规则表达式,当规则类型为metric-cms时,表达式的值为本文默认报警规则模板中Rule_Expression_Id值。 contactGroups: # 报警规则映射的联系人分组配置,由ACK控制台生成,同一个账号下联系人相同,可在多集群中复用。 enable: enable # 报警规则开启状态,枚举值为enable、disable。 thresholds: # 报警规则阈值,详情见文档如何更改报警规则阈值部分。 - key: CMS_ESCALATIONS_CRITICAL_Threshold unit: percent value: '1'
配置示例:通过CRD修改集群基础资源报警规则的阈值
由默认报警规则模板集可知集群资源异常报警规则集的Rule_Type为metric-cms,同步自云监控的基础资源报警规则。本示例通过在集群节点-CPU使用率规则的报警规则集对应的CRD中,增加thresholds
参数,配置基础监控报警规则的阈值、重试判断次数以及静默期配置。
apiVersion: alert.alibabacloud.com/v1beta1
kind: AckAlertRule
metadata:
name: default
spec:
groups:
# 以下是一个集群基础资源报警规则配置样例。
- name: res-exceptions # 报警规则分组名,对应报警模板中的Group_Name字段。
rules:
- name: node_cpu_util_high # 报警规则名。
type: metric-cms # 报警规则类型(Rule_Type),枚举值为event(事件类型)、metric-cms(云监控指标类型)。
expression: cms.host.cpu.utilization # 报警规则表达式,当规则类型为metric-cms时,表达式的值为本文默认报警规则模板中Rule_Expression_Id值。
contactGroups: # 报警规则映射的联系人分组配置,由ACK控制台生成,同一个账号下联系人相同,可在多集群中复用。
enable: enable # 报警规则开启状态,枚举值为enable、disable。
thresholds: # 报警规则阈值,更多信息,请参见如何通过CRD配置报警规则。
- key: CMS_ESCALATIONS_CRITICAL_Threshold
unit: percent
value: '1'
- key: CMS_ESCALATIONS_CRITICAL_Times
value: '3'
- key: CMS_RULE_SILENCE_SEC
value: '900'
参数名 | 是否必选 | 说明 | 默认值 |
参数名 | 是否必选 | 说明 | 默认值 |
| 必选 | 报警配置阈值。未配置时规则将同步失败并关闭。
| 根据默认报警模板配置而定。 |
| 可选 | 云监控规则重试判断次数。未配置时取默认值。 | 3 |
| 可选 | 云监控持续发送异常触发规则时,初次上报报警后静默期时长(单位:秒),防止过于频繁报警。未配置时取默认值。 | 900 |
默认报警规则模板
以下为默认创建的报警规则模板。
常见问题
报警规则同步失败且报错信息为The Project does not exist : k8s-log-xxx
问题现象:
报警中心中报警规则同步状态,提示
The Project does not exist : k8s-log-xxx
。问题原因:
未创建SLS事件中心资源。
解决方案:
重新安装ack-node-problem-detector组件。
重新安装组件,会重新创建默认的名为k8s-log-xxxxxx的Project。
卸载ack-node-problem-detector组件。
在容器服务管理控制台目标集群管理页左侧导航栏中,选择 。
单击日志与监控页签,在ack-node-problem-detector组件的卡片中单击卸载。然后在弹框中单击确定。
待卸载完成后,安装ack-node-problem-detector组件。
在左侧导航栏,选择
在报警配置页面,单击开始安装,控制台会自动创建Project,安装组件、升级组件。
然后在报警配置页面,将对应的报警规则集右侧的启动状态关闭,等待其报警规则状态为规则已关闭后,再启动重试。
报警规则同步状态失败出现类似报错信息this rule have no xxx contact groups reference
问题现象:
报警规则同步状态失败出现类似报错信息
this rule have no xxx contact groups reference
。问题原因:
报警规则无订阅的联系人组。
解决方案:
已创建联系人,并将联系人加入联系人分组中。
在对应报警规则集右侧单击编辑通知对象,为该组报警规则配置订阅的联系人分组。
- 本页导读 (1)
- 索引
- 前提条件
- 计费说明
- 开启报警管理功能
- 通过CRD配置报警规则
- 配置步骤
- 配置示例:通过CRD修改集群基础资源报警规则的阈值
- 默认报警规则模板
- 常见问题
- 报警规则同步失败且报错信息为The Project does not exist : k8s-log-xxx
- 报警规则同步状态失败出现类似报错信息this rule have no xxx contact groups reference