10.6. 将通知发送到外部系统
在 Red Hat OpenShift Service on AWS 4 中,可在 Alerting UI 中查看触发警报。默认不会将警报配置为发送到任何通知系统。您可以配置 Red Hat OpenShift Service on AWS,将警报发送到以下接收器类型:
- PagerDuty
- Webhook
- 电子邮件
- Slack
- Microsoft Teams
通过将警报路由到接收器,您可在出现故障时及时向适当的团队发送通知。例如,关键警报需要立即关注,通常会传给个人或关键响应团队。相反,提供非关键警告通知的警报可能会被路由到一个问题单系统进行非即时的审阅。
使用 watchdog 警报检查警报是否工作正常
Red Hat OpenShift Service on AWS 监控包括持续触发的 watchdog 警报。Alertmanager 重复向已配置的通知提供程序发送 watchdog 警报通知。此提供程序通常会配置为在其停止收到 watchdog 警报时通知管理员。这种机制可帮助您快速识别 Alertmanager 和通知提供程序之间的任何通信问题。
10.6.1. 为默认平台警报和用户定义的警报配置不同的警报接收器
您可以为默认平台警报和用户定义的警报配置不同的警报接收器,以确保以下结果:
- 所有默认平台警报都发送到团队拥有的接收器,以收取这些警报。
- 所有用户定义的警报都发送到另一个接收器,以便团队只能专注于平台警报。
您可以使用 Cluster Monitoring Operator 添加到所有平台警报的 openshift_io_alert_source="platform"
标签来实现此目的:
-
使用
openshift_io_alert_source="platform"
matcher 来匹配默认平台警报。 -
使用
openshift_io_alert_source!="platform"
或'openshift_io_alert_source=""
匹配程序来匹配用户定义的警报。
如果您启用了专用于用户定义的警报的 Alertmanager 实例,则此配置不适用。
10.6.2. 为用户定义的项目创建警报路由
如果您是一个带有 alert-routing-edit
集群角色的非管理员用户,您可以创建或编辑用户定义的项目的警报路由。
先决条件
- 为用户定义的项目启用了警报路由。
-
您以具有您要为其创建警报路由的项目的
alert-routing-edit
集群角色的用户身份登录。 -
已安装 OpenShift CLI(
oc
)。
流程
-
创建用于警报路由的 YAML 文件。此流程中的示例使用名为
example-app-alert-routing.yaml
的文件。 在文件中添加
AlertmanagerConfig
YAML 定义。例如: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
注意对于用户定义的警报规则,用户定义的路由范围到定义资源的命名空间。例如,
AlertmanagerConfig
对象中为命名空间ns1
定义的路由配置仅适用于同一命名空间中的PrometheusRules
资源。- 保存该文件。
将资源应用到集群:
$ oc apply -f example-app-alert-routing.yaml
配置会自动应用到 Alertmanager pod。