Prometheus开源项目中,红帽也是主要代码贡献者之一。https://www.stackalytics.com/cncf?module=prometheus
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位置,需要输入邮箱的授权码。
配置好以后,邮箱就能收到告警信息了。