Prometheus开源项目中,红帽也是主要代码贡献者之一。https://www.stackalytics.com/cncf?module=prometheus

自定义Prometheus规则并触发邮件告警_java

OCP从4.6开始,支持自定义Prometheus AlterManager规则。规则触发的告警也可以发送到告警邮箱。


我们以两条规则为例,进行说明。

规则1:当主机CPU利用率超过10%时,触发告警。

apiVersion: monitoring.coreos.com/v1kind: PrometheusRulemetadata:name: cpu10spec:groups:- name: examplerules:- alert: HostHighCpuLoadexpr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 10for: 0mlabels:severity: warningannotations:summary: Host high CPU load (instance {{ $labels.instance }})

规则2:当PodCPU利用率超过10%时,触发告警。

apiVersion: monitoring.coreos.com/v1kind: PrometheusRulemetadata:name: podcpu10spec:groups:- name: examplerules:- alert: ContainerCpuUsageexpr: (sum(rate(container_cpu_usage_seconds_total[3m])) BY (instance, name) * 100) > 10for: 2mlabels:severity: warningannotations:summary: Container CPU usage (instance {{ $labels.instance }})

当Pod和节点CPU利用率上升后,可以看到告警。


接下来,我们展示配置邮件转发告警。


我们可以根据需求定义Reciver:

我们以DavidWei的举例。

在配置中,我定义了接收告警级别、邮件服务器。需要注意的是,在Auth Password位置,需要输入邮箱的授权码。

自定义Prometheus规则并触发邮件告警_java_02

自定义Prometheus规则并触发邮件告警_java_03

配置好以后,邮箱就能收到告警信息了。

自定义Prometheus规则并触发邮件告警_java_04

自定义Prometheus规则并触发邮件告警_java_05