5.3. Service Telemetry Framework 中的警报
您可以在 Alertmanager 中在 Prometheus 和警报路由中创建警报规则。Prometheus 服务器中的警报规则将警报发送到管理警报的 Alertmanager。Alertmanager 可以静默、禁止或聚合警报,并使用电子邮件、on-call 通知系统或聊天平台发送通知。
要创建警报,请完成以下步骤:
- 在 Prometheus 中创建警报规则。更多信息请参阅 第 5.3.1 节 “在 Prometheus 中创建警报规则”。
在 Alertmanager 中创建警报路由。您可以通过两种方式创建警报路由:
其他资源
有关使用 Prometheus 和 Alertmanager 警报或通知的更多信息,请参阅 https://prometheus.io/docs/alerting/overview/
要查看可用于 Service Telemetry Framework (STF)的警报集合的示例,请参阅 https://github.com/infrawatch/service-telemetry-operator/tree/master/deploy/alerts
5.3.1. 在 Prometheus 中创建警报规则 复制链接链接已复制到粘贴板!
Prometheus 评估警报规则来触发通知。如果规则条件返回空结果集,则条件为 false。否则,规则为 true,它会触发警报。
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry
命名空间:oc project service-telemetry
$ oc project service-telemetry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建包含警报规则的
PrometheusRule
对象。Prometheus Operator 将规则加载到 Prometheus 中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 要更改规则,请编辑
expr
参数的值。
要验证 Operator 是否将规则加载到 Prometheus 中,请创建一个可访问
curl
的 pod:oc run curl --image=radial/busyboxplus:curl -i --tty
$ oc run curl --image=radial/busyboxplus:curl -i --tty
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
curl
命令访问prometheus-operated
服务,以返回载入到内存的规则:[ root@curl:/ ]$ curl prometheus-operated:9090/api/v1/rules {"status":"success","data":{"groups":[{"name":"./openstack.rules","file":"/etc/prometheus/rules/prometheus-default-rulefiles-0/service-telemetry-prometheus-alarm-rules.yaml","rules":[{"state":"inactive","name":"Collectd metrics receive rate is zero","query":"rate(sg_total_collectd_msg_received_count[1m]) == 0","duration":0,"labels":{},"annotations":{},"alerts":[],"health":"ok","evaluationTime":0.000525886,"lastEvaluation":"2022-02-01T17:42:52.161007803Z","type":"alerting"}],"interval":30,"limit":0,"evaluationTime":0.000541524,"lastEvaluation":"2022-02-01T17:42:52.161000138Z"}]}}
[ root@curl:/ ]$ curl prometheus-operated:9090/api/v1/rules {"status":"success","data":{"groups":[{"name":"./openstack.rules","file":"/etc/prometheus/rules/prometheus-default-rulefiles-0/service-telemetry-prometheus-alarm-rules.yaml","rules":[{"state":"inactive","name":"Collectd metrics receive rate is zero","query":"rate(sg_total_collectd_msg_received_count[1m]) == 0","duration":0,"labels":{},"annotations":{},"alerts":[],"health":"ok","evaluationTime":0.000525886,"lastEvaluation":"2022-02-01T17:42:52.161007803Z","type":"alerting"}],"interval":30,"limit":0,"evaluationTime":0.000541524,"lastEvaluation":"2022-02-01T17:42:52.161000138Z"}]}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证输出是否显示加载到
PrometheusRule
对象的规则,例如,输出包含定义的./openstack.rules
,退出 pod:[ root@curl:/ ]$ exit
[ root@curl:/ ]$ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除
curl
pod 来清理环境:oc delete pod curl
$ oc delete pod curl pod "curl" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.2. 配置自定义警报 复制链接链接已复制到粘贴板!
您可以在您在 第 5.3.1 节 “在 Prometheus 中创建警报规则” 中创建的 PrometheusRule
对象中添加自定义警报。
流程
使用
oc edit
命令:oc edit prometheusrules prometheus-alarm-rules
$ oc edit prometheusrules prometheus-alarm-rules
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
编辑
PrometheusRules
清单。 - 保存并关闭清单。
其他资源
- 有关如何配置警报规则的更多信息,请参阅 https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/。
- 有关 PrometheusRules 对象的更多信息,请参阅 https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/alerting.md
5.3.3. 在 Alertmanager 中创建标准警报路由 复制链接链接已复制到粘贴板!
使用 Alertmanager 向外部系统发送警报,如电子邮件、IRC 或其他通知频道。Prometheus Operator 将 Alertmanager 配置作为 Red Hat OpenShift Container Platform secret 管理。默认情况下,Service Telemetry Framework (STF)部署会导致任何接收器的基本配置:
要使用 STF 部署自定义 Alertmanager 路由,您必须将 alertmanagerConfigManifest
参数传递给 Service Telemetry Operator,以生成由 Prometheus Operator 管理的更新 secret。
如果 alertmanagerConfigManifest
包含用于构造发送警报的标题和文本的自定义模板,请使用 base64 编码的配置部署 alertmanagerConfigManifest
的内容。更多信息请参阅 第 5.3.4 节 “在 Alertmanager 中创建带有模板模板的警报路由”。
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry
命名空间:oc project service-telemetry
$ oc project service-telemetry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为您的 STF 部署编辑
ServiceTelemetry
对象:oc edit stf default
$ oc edit stf default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新参数
alertmanagerConfigManifest
和Secret
对象内容,以定义 Alertmanager 的alertmanager.yaml
配置:注意此步骤加载 Service Telemetry Operator 管理的默认模板。要验证是否正确填充了更改,请更改值,返回
alertmanager-default
secret,然后验证新值是否已加载到内存中。例如,将global.resolve_timeout
参数的值从5m
改为10m
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证配置是否已应用到 secret:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证配置是否已加载到 Alertmanager 中,请创建一个可访问
curl
的 pod:oc run curl --image=radial/busyboxplus:curl -i --tty
$ oc run curl --image=radial/busyboxplus:curl -i --tty
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 针对
alertmanager-operated
服务运行curl
命令,以检索 status 和configYAML
内容,并验证提供的配置是否与 Alertmanager 中的配置匹配:[ root@curl:/ ]$ curl alertmanager-operated:9093/api/v1/status {"status":"success","data":{"configYAML":"...",...}}
[ root@curl:/ ]$ curl alertmanager-operated:9093/api/v1/status {"status":"success","data":{"configYAML":"...",...}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
验证
configYAML
字段是否包含您预期的更改。 退出 pod:
[ root@curl:/ ]$ exit
[ root@curl:/ ]$ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要清理环境,请删除
curl
pod:oc delete pod curl
$ oc delete pod curl pod "curl" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 如需有关 Red Hat OpenShift Container Platform secret 和 Prometheus operator 的更多信息,请参阅有关 警报的 Prometheus 用户指南。
5.3.4. 在 Alertmanager 中创建带有模板模板的警报路由 复制链接链接已复制到粘贴板!
使用 Alertmanager 向外部系统发送警报,如电子邮件、IRC 或其他通知频道。Prometheus Operator 将 Alertmanager 配置作为 Red Hat OpenShift Container Platform secret 管理。默认情况下,Service Telemetry Framework (STF)部署会导致任何接收器的基本配置:
如果 alertmanagerConfigManifest
参数包含自定义模板,例如:构建发送警报的标题和文本,请使用 base64 编码的配置部署 alertmanagerConfigManifest
的内容。
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry
命名空间:oc project service-telemetry
$ oc project service-telemetry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为您的 STF 部署编辑
ServiceTelemetry
对象:oc edit stf default
$ oc edit stf default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用 STF 部署自定义 Alertmanager 路由,您必须将
alertmanagerConfigManifest
参数传递给 Service Telemetry Operator,这会导致 Prometheus Operator 管理的更新 secret:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证配置是否已应用到 secret:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证配置是否已加载到 Alertmanager,请创建一个可访问
curl
命令的 pod:oc run curl --image=radial/busyboxplus:curl -i --tty
$ oc run curl --image=radial/busyboxplus:curl -i --tty
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 针对
alertmanager-operated
服务运行curl
命令,以检索 status 和configYAML
内容,并验证提供的配置是否与 Alertmanager 中的配置匹配:[ root@curl:/ ]$ curl alertmanager-operated:9093/api/v1/status {"status":"success","data":{"configYAML":"...",...}}
[ root@curl:/ ]$ curl alertmanager-operated:9093/api/v1/status {"status":"success","data":{"configYAML":"...",...}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
验证
configYAML
字段是否包含您预期的更改。 退出 pod:
[ root@curl:/ ]$ exit
[ root@curl:/ ]$ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要清理环境,请删除
curl
pod:oc delete pod curl
$ oc delete pod curl pod "curl" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 如需有关 Red Hat OpenShift Container Platform secret 和 Prometheus operator 的更多信息,请参阅有关 警报的 Prometheus 用户指南。