通知和告警
概述
为了保证您的集群和应用随时处于健康状态,提高组织的生产力,您需要知悉集群和项目内出现的计划内事件和计划外事件。事件会触发您设置的告警,您就会收到通知,您可以根据通知作出对应的操作。
通知和告警是基于Prometheus Alertmanager构建的,借助这些工具,Rancher 可以通知集群所有者和项目所有者集群内发生的事件,由他们决定如何处理触发告警的事件。
收到告警信息之前,您需要在集群层级设置至少一个通知。
只有Rancher 管理员、集群所有者或集群成员或项目所有者有权限管理告警。
告警的作用范围
Rancher 的告警可以作用于集群层级或项目层级。
在项目层级,Rancher 监控特定的部署,发出的告警信息主要和以下几个方面相关:
- 部署是否可用
- 工作负载的状态
- Pod 的状态
- Prometheus 表达式类型的告警是否超过了设定的阈值
项目层级的默认告警
当您启用项目监控的时候,Rancher 提供了一些项目层级的默认告警。如果您已经在集群层级配置了通知,当项目触发任意一个默认告警的时候,您就可以通过 Slack、电子邮件、微信、webhook 等方式收到相关的告警。项目层级的默认告警如下表所示。
告警 | 解释 |
---|---|
Less than half workload available | 工作负载的键值对是 app 和 workload 时,如果只有少于一半的工作负载可以使用,Rancher 会触发这条重要的告警。 |
Memory usage close to the quota | 如果工作负载占用的内存超过了工作负载的内存资源配额,会触发这条告警。您可以从 Rancher UI 中的安全和主机配置查看工作负载的内存限制。 |
除了上述的默认告警以外,Rancher 还有其他的默认告警,详情请参考集群监控的默认告警。
添加项目告警组
先决条件: 收到项目告警信息前,您必须添加项目层级的告警提醒。
单击 全局,打开全局视图的下拉菜单,选择到您需要设置告警的项目。
单击工具,从下拉菜单中单击告警,进入告警页面。如果您使用的是 v2.2.0 之前的版本,请选择 资源 > 告警。
单击 添加告警组,添加告警组。
输入告警的名称,名称应该总结这一组告警的作用,您可以将多个告警放到同一个告警组中。如有需要,您可以单击添加描述,在文本框中添加告警组的描述。 Rancher 支持创建的告警分为四类:Pod 告警(Pod Alerts)、工作负载告警(Workload Alerts)、工作负载 Selector 告警(Workload Selector Alerts)和表达式告警(Metric Expression Alerts)。根据告警类别的不同,您需要完成以下步骤。
Pod 告警(Pod Alerts)
Pod 告警的作用是监控 Pod 的状态。
输入告警的名称。
选择 Pod 选项,从下拉菜单中选择一个 Pod。
选择一个触发告警的 Pod 状态:
- 未运行
- 未调度
- 在最近的 x 分钟内重启 x 次
选择告警的重要程度,有以下三个等级供您选择:
危险: 最紧急,已经对 Pod 产生了影响,需要用户进行一些操作,修正这个影响。
警告: 一般紧急,暂时对 Pod 没有影响。
信息: 最不紧急,仅仅是通知用户,Pod 内发生了一个事件。
告警的重要程度由集群状态决定。举个例子,Pod 完成了一次任务运行后,向用户发送告警,这种情况只是知会用户,Pod 运行了一次,没有故障也不会对 Pod 产生潜在的影响,所以这种告警应该匹配的是信息等级。但是,如果一个重要的 Pod 出现调度失败的情况,这可能会影响后续操作,这种告警应该匹配的是危险等级。
配置高级选项。默认状态下,一个告警组内的所有的告警规则都会继承告警组中的这些选项。但配置告警规则的时候,您也可以覆盖告警组中的这些高级设置。
- 告警组等待时长: 第一次发送告警信息前,等待时间,默认为 30 秒。
- 告警组间隔时长: 在发送了第一次的告警之后有新告警产生时,等待是否有告警触发,经过这个时间后,可以把这段时间的告警批量发送给接受者,默认为 3 分钟。
- 重复间隔: 发送两条相同的告警之间的时间间隔,默认为 1 小时。
工作负载告警(Workload Alerts)
工作负载告警的作用是监控工作负载的可用性。
输入告警的名称。
选择Workload ,然后从下拉菜单中选择一个工作负载。
选择可用百分比。当工作负载的可用百分比低于这个数值时,会触发告警。
选择告警的重要程度。
危险: 最紧急,已经对工作负载产生了影响,需要用户进行一些操作,修正这个影响。
警告: 一般紧急,暂时对工作负载没有影响。
信息: 最不紧急,仅仅是通知用户,工作负载内发生了一个事件。
建议您在选择告警重要程度的时候,综合考虑设置的百分比和工作负载的重要程度。
配置高级选项。默认状态下,一个告警组内的所有的告警规则都会继承告警组中的这些选项。但配置告警规则的时候,您也可以覆盖告警组中的这些高级设置。
- 告警组等待时长: 第一次发送告警信息前,等待时间,默认为 30 秒。
- 告警组间隔时长: 在发送了第一次的告警之后有新告警产生时,等待是否有告警触发,经过这个时间后,可以把这段时间的告警批量发送给接受者,默认为 3 分钟。
- 重复间隔: 发送两条相同的告警之间的时间间隔,默认为 1 小时。
工作负载 Selector 告警(Workload Selector Alerts)
工作负载 Selector 告警的作用是监控添加了某个标签的全部工作负载的可用性。
输入告警的名称。
选择Workload Selector 选项,单击添加选择器 ,输入标签的键值对。如果有工作负载符合这个描述,就会触发告警。
选择告警的重要程度。
- 危险: 最紧急,已经对工作负载产生了影响,需要用户进行一些操作,修正这个影响。
- 警告: 一般紧急,暂时对工作负载没有影响。
- 信息: 最不紧急,仅仅是通知用户,工作负载内发生了一个事件。
建议您在选择告警重要程度的时候,综合考虑设置的百分比和工作负载的重要程度。
配置高级选项。默认状态下,一个告警组内的所有的告警规则都会继承告警组中的这些选项。但配置告警规则的时候,您也可以覆盖告警组中的这些高级设置。
- 告警组等待时长: 第一次发送告警信息前,等待时间,默认为 30 秒。
- 告警组间隔时长: 在发送了第一次的告警之后有新告警产生时,等待是否有告警触发,经过这个时间后,可以把这段时间的告警批量发送给接受者,默认为 3 分钟。
- 重复间隔: 发送两条相同的告警之间的时间间隔,默认为 1 小时。
建议您在选择告警重要程度的时候,综合考虑设置的百分比和工作负载的重要程度。
表达式告警(Metric Expression Alerts)
v2.2.4 或更新版本可用
如果您启用了项目监控,这个告警类型使用 Prometheus 表达式查询的项目是否过载。
输入告警的名称。
输入一个新的表达式,或选择一个已有的表达式,下拉菜单展示了 Prometheus 自带的监控指标
- 容器
- Kubernetes 资源
- 自定义指标
- 项目级别 Grafana 的指标
- 项目级别 Prometheus 的指标
选择触发告警的方式。
- 等于: 表达式的值与阈值相等时触发告警。
- 不等于:表达式的值与阈值不相等时触发告警。
- 大于:表达式的值大于阈值时触发告警。
- 小于:表达式的值小于阈值时触发告警。
- 大于或等于:表达式的值大于或等于阈值时触发告警。
- 小于或等于:表达式的值小于或等于阈值时触发告警。
输入触发告警的阈值。
输入一个持续时间,表示在这条告警在指定的时间段内一直是有效的。
选择告警的重要程度。
- 危险: 最紧急,已经对工作负载产生了影响,需要用户进行一些操作,修正这个影响。
- 警告: 一般紧急,暂时对工作负载没有影响。
- 信息: 最不紧急,仅仅是通知用户,工作负载内发生了一个事件。
建议您基于告警对操作的影响,选择告警的重要程度。例如,您设定了两条关于容器内存限制的告警,一条告警规定了内存使用率超过 60%时发出告警信息,另一条告警规定了内存使用率超过 95%时发出告警信息;您可以将前者的重要程度设置为信息,将后者的重要程度设置为危险。
配置高级选项。默认状态下,一个告警组内的所有的告警规则都会继承告警组中的这些选项。但配置告警规则的时候,您也可以覆盖告警组中的这些高级设置。
- 告警组等待时长: 第一次发送告警信息前,等待时间,默认为 30 秒。
- 告警组间隔时长: 在发送了第一次的告警之后有新告警产生时,等待是否有告警触发,经过这个时间后,可以把这段时间的告警批量发送给接受者,默认为 3 分钟。
- 重复间隔: 发送两条相同的告警之间的时间间隔,默认为 1 小时。
后续操作
(可选)添加其他告警规则 到这个告警组内。
返回告警组页面,单击 … > 升级 ,进入编辑告警组页面,在页面最下方告警 到旁边的文本框中选择发送告警消息的方式,和告警消息的收件人。您可以选择多种方式发送告警信息, 也可以随时修改收件人的名单。
结果: 完成告警和告警信息的配置。触发告警时,告警信息会通过您指定的方式发送给指定的收件人。
管理项目告警
打开项目,导航到您需要调整的告警。然后选择工具 > 告警。在 v2.2.0 之前的版本,您可以选择资源 > 告警。管理项目告警提供了以下功能:
- 停用告警/重新激活告警
- 修改告警相关参数
- 删除多余的告警规则
- 对已触发的告警开启静音
- 对已静音的告警取消静音