5.4. 配置警报通知
在 OpenShift Container Platform 中,管理员可以使用以下方法为用户定义的项目启用警报路由:
- 使用默认平台 Alertmanager 实例。
- 仅对用户定义的项目使用单独的 Alertmanager 实例。
具有 alert-routing-edit 集群角色的开发人员和其他用户可以通过配置警报接收器为其用户定义的项目配置自定义警报通知。
查看用户定义的项目的警报路由的以下限制:
-
用户定义的警报路由的范围为定义资源的命名空间。例如,命名空间
ns1中的路由配置仅适用于同一命名空间中的PrometheusRules资源。 -
当命名空间不包括在用户定义的监控中时,命名空间中的
AlertmanagerConfig资源将成为 Alertmanager 配置的一部分。
5.4.1. 为用户定义的项目配置警报路由 复制链接链接已复制到粘贴板!
如果您是一个带有 alert-routing-edit 集群角色的非管理员用户,您可以创建或编辑用户定义的项目的警报路由。
先决条件
- 集群管理员为用户定义的项目启用了监控。
- 集群管理员为用户定义的项目启用了警报路由。
-
您以具有您要为其创建警报路由的项目的
alert-routing-edit集群角色的用户身份登录。 -
已安装 OpenShift CLI(
oc)。
流程
-
创建用于警报路由的 YAML 文件。此流程中的示例使用名为
example-app-alert-routing.yaml的文件。 在文件中添加
AlertmanagerConfigYAML 定义。例如:apiVersion: monitoring.coreos.com/v1beta1 kind: AlertmanagerConfig metadata: name: example-routing namespace: ns1 spec: route: receiver: default groupBy: [job] receivers: - name: default webhookConfigs: - url: https://example.org/post- 保存该文件。
将资源应用到集群:
$ oc apply -f example-app-alert-routing.yaml配置会自动应用到 Alertmanager pod。
5.4.2. 使用 Alertmanager secret 为用户定义的项目配置警报路由 复制链接链接已复制到粘贴板!
如果您启用了专用于用户定义的警报路由的 Alertmanager 实例,您可以通过编辑 openshift-user-workload-monitoring 命名空间中的 alertmanager-user-workload secret 来自定义实例发送通知的位置和方式。
OpenShift Container Platform Alertmanager 配置中也支持支持上游 Alertmanager 的所有功能。要检查受支持的上游 Alertmanager 版本的所有配置选项,请参阅 Alertmanager 配置 (Prometheus 文档)。
先决条件
-
您可以使用具有
cluster-admin集群角色的用户身份访问集群。 - 您已为用户定义的警报路由启用了一个单独的 Alertmanager 实例。
-
已安装 OpenShift CLI(
oc)。
流程
将当前活跃的 Alertmanager 配置输出到
alertmanager.yaml文件:$ oc -n openshift-user-workload-monitoring get secret alertmanager-user-workload --template='{{ index .data "alertmanager.yaml" }}' | base64 --decode > alertmanager.yaml编辑
alertmanager.yaml中的配置:global: http_config: proxy_from_environment: true1 route: receiver: Default group_by: - name: Default routes: - matchers: - "service = prometheus-example-monitor"2 receiver: <receiver>3 receivers: - name: Default - name: <receiver> <receiver_configuration>4 应用文件中的新配置:
$ oc -n openshift-user-workload-monitoring create secret generic alertmanager-user-workload --from-file=alertmanager.yaml --dry-run=client -o=yaml | oc -n openshift-user-workload-monitoring replace secret --filename=-
5.4.3. 为默认平台警报和用户定义的警报配置不同的警报接收器 复制链接链接已复制到粘贴板!
您可以为默认平台警报和用户定义的警报配置不同的警报接收器,以确保以下结果:
- 所有默认平台警报都发送到团队拥有的接收器,以收取这些警报。
- 所有用户定义的警报都发送到另一个接收器,以便团队只能专注于平台警报。
您可以使用 Cluster Monitoring Operator 添加到所有平台警报的 openshift_io_alert_source="platform" 标签来实现此目的:
-
使用
openshift_io_alert_source="platform"matcher 来匹配默认平台警报。 -
使用
openshift_io_alert_source!="platform"或'openshift_io_alert_source=""匹配程序来匹配用户定义的警报。
如果您启用了专用于用户定义的警报的 Alertmanager 实例,则此配置不适用。