1 - 平台组件告警
本文档介绍了如何在 KubeCube 中配置平台级告警,包括配置集群内的 Alertmanager 、告警通知联系人、通知路由规则、告警规则。
简介
默认情况下,KubeCube 会在平台部署kubecube-monitoring
Chart,该 Chart 包含 Alertmanager
组件和默认的 Alertmanager Config Secret
配置以及平台基础组件的告警规则。默认情况下,KubeCube 创建的 Alertmanager Config Secret
不会因为 Chart 的升级或删除操作而被修改,以防用户的配置丢失。
准备工作
以平台管理员角色登录 KubeCube 平台。
配置 AlertManager
登录到 KubeCube 平台,点击【运维管理】,侧边栏选择【告警–全局告警配置】,列表页可以看到各个集群的AlertManager
的配置信息,点击【设置】按钮进行配置,
全局配置
若使用企业邮箱作为告警通知方式,需要在全局配置中配置以下字段:
smtp_smarthost
: 邮箱服务器域名和端口信息,e.g. imap.163.com:465smtp_from
: 发件人邮箱smtp_auth_username
: 邮件服务器认证用户名smtp_auth_password
: 邮件服务器认证密码或授权码
若使用企业微信作为告警通知方式,需要在全局配置中配置以下字段:
wechat_api_url
: 默认使用https://qyapi.weixin.qq.com/cgi-bin/
wechat_api_secret
: 第三方企业应用的密钥wechat_api_corp_id
: 企业微信账号唯一 ID
通知方式
目前页面支持配置Email、WeChat、Webhook三种联系方式,其他联系方式如Slack、OpsEngine等会在后续版本支持
更多字段含义请参考Alertmanager官方文档中关于receivers的定义
通知路由规则
相关配置如下:
receiver
: 选择上一步骤中定义的联系人group_by
: 当前 route 节点的分组规则matchers
: 当前 route 节点的匹配规则group_wait
: 告警组内的发送一条告警通知的等待时间group_interval
: 告警组内发送两条告警通知的间隔时间repeat_interval
: 相同告警发送的间隔时间
更多字段含义请参考Alertmanager官方文档中关于route的定义,当前页面暂不支持子路由的配置,会在后续版本提供支持。
管理告警规则
查看告警规则组
登录到 KubeCube 平台,点击【运维管理】,侧边栏选择【告警–告警规则】,列表页可以看到各个集群的PrometheusRule
的配置信息,默认情况下, KubeCube 为每个集群内置了基础资源以及平台组件的 PrometheusRule
,
配置告警规则内容
可以点击【设置】按钮查看并配置每条告警规则的具体内容,包括
- 表达式 :
Promql
表达式 for
: 告警持续时长- 告警程度 : 可以在上述 通知方式中配置不同告警程度对应的 Receiver 来接收告警通知
- Annotations
- 摘要: 接收告警通知的摘要信息
- 描述信息: 接收告警通知的具体描述信息,如发生故障的 Pod 所在的集群,空间等
Runbook Url
: 针对该告警规则的运维排障文档,应作为最佳实践在企业内部进行维护- 也可以【展开更多配置】,添加更多自定义的Annotations(键-值对)
- Labels: 为告警规则附带的标签信息(键-值对),可以配合通知路由规则 实现告警通知的高级配置
更多字段含义请参考Prometheus-Operator的API文档
2 - 通知策略管理
本文档介绍了如何在 KubeCube 中管理项目级别的告警联系人与通知策略。
准备工作
登录 KubeCube 平台并创建租户、项目、空间
联系人管理
推荐在一个告警通知策略内配置多个联系人,代表联系人组信息,而不是为每个联系人都创建一个通知策略。
登录到 KubeCube 控制台,选择租户项目后,侧边栏展开【告警】菜单,选择【告警策略组】,并点击创建.
弹出对话框后,填写告警联系人基本信息,目前页面支持配置Email、WeChat、Webhook三种联系方式,其他联系方式如Slack、OpsEngine等会在后续版本支持,如有需求可以通过列表页的【yaml配置】进行设置。
- 名称: 标识联系人组的名称,如"frontend",在后续创建告警规则时作为关联。
Email配置
- 是否接收告警恢复通知
- 收件人: 收件人的邮箱地址
- 更多配置:
注意:以下配置默认使用集群全局配置,可以询问集群管理员获知。
- smarthost: 邮箱服务器域名和端口信息,e.g. imap.163.com:465
- from: 发件人邮箱
- authUsername: 邮件服务器认证用户名
- authPassword: 邮件服务器认证密码,需要提前在项目空间(kubecube-project-
)创建一个Secret,再指定Secret和key - Secret: 选择已创建的Secret的名称
- key: 选择指定Secret的key
更多配置请参考EmailConfig
WeChat配置
- 是否接收告警恢复通知
- toUser: 接收告警通知的企业微信用户名
- toParty: 接收告警通知的企业微信用户组
- toTag: 接收告警通知的企业微信用户标签
- 更多配置:
注意:以下配置默认使用集群全局配置,可以询问集群管理员获知。
- apiURL: 微信第三方通知的apiURL
- corpID: 企业微信账号唯一 ID,可以在我的企业中查看。
- agentID: 第三方企业应用的 ID,可以在已创建的第三方企业应用详情页面查看。
- apiSecret: 需要根据第三方企业应用的密钥,提前在项目空间(kubecube-project-
)创建一个Secret,再指定Secret和key - Secret: 选择已创建的Secret的名称
- key: 选择指定Secret的key
更多配置请参考企业微信文档以及WeChatConfig。
Webhook配置
- 是否接收告警恢复通知
- url: Webhook的url,用来接受HTTP POST请求
- max_alerts: Alertmanager一次发往webhook通知中,包含告警的最大数量,当超过该值,告警会被截断,默认为全部发送。
更多配置参考WebhookConfig
高级功能
KubeCube 告警通知策略组支持高级策略配置,如
- 配置告警组内的发送一条告警通知的等待时间(group_wait)
- 配置告警组内发送两条告警通知的间隔时间(group_interval)
- 配置相同告警发送的间隔时间(repeat_interval)
- 配置嵌套的告警路由策略
- 配置告警抑制规则
- …
如果需要实现更灵活的自定义通知策略,可以通过点击【列表】页面的【yaml设置】进行设置与修改,相关字段请参考AlertmanagerConfig-CRD文档, 具体字段含义请参考Alertmanager配置
3 - 告警规则管理
本文档介绍了如何在 KubeCube 中管理项目级告警规则。
准备工作
- 登录 KubeCube 平台并创建租户、项目、空间
- 创建告警通知策略
告警规则管理
创建告警规则
- 登录到 KubeCube 控制台,选择租户项目后,侧边栏展开【告警】菜单,选择【告警规则】,并点击创建.
- 填写告警规则基本信息:
- 告警名称: 告警规则名称
- 表达式:promql表达式,具体配置方式请参考prometheus文档
- 持续时间:代表告警规则表达式持续被触发的时长,如果达到该期望时间,就触发一条告警。
- 告警程度:告警程度信息
- 通知策略组:选择告警触发后需要通知的联系人与相应的通知策略。
- 告警描述信息: 告警触发后发送的告警描述信息,具体配置方式请参考Prometheus告警规则模版配置
告警状态查询
在告警规则列表页面,可以查看项目下所有告警规则的状态,状态包含以下三种:
- normal: 代表该告警规则未触发告警
- pending: 代表告警规则被触发,但未达到期望持续时间。
- firing:代表告警规则被触发,并达到期望持续时间。
点击【告警名称】的状态,可以查看触发该告警规则的具体对象信息,如空间信息,Pod信息等,静默功能将在后续版本中支持。