10.8. 配置 Alertmanager 以发送通知
您可以通过编辑 alertmanager-main secret 为默认平台警报或 alertmanager-user-workload secret 用于用户定义的警报,将 Alertmanager 配置为发送通知。
一个支持的上游版本中的所有功能也在OpenShift Alertmanager 配置中支持。要检查受支持的上游 Alertmanager 版本的所有配置选项,请参阅 Alertmanager 配置。
10.8.1. 为默认平台警报配置通知 复制链接链接已复制到粘贴板!
您可以将 Alertmanager 配置为发送通知,以接收来自集群的重要警报。通过编辑 openshift-monitoring 命名空间中的 alertmanager-main secret 中的默认配置来自定义 Alertmanager 如何发送通知有关默认平台警报的通知。
Alertmanager 默认不会发送通知。建议您通过在 alertmanager-main secret 配置文件中设置通知详情,将 Alertmanager 配置为接收通知。
先决条件
-
您可以使用具有
cluster-admin集群角色的用户身份访问集群。 -
已安装 OpenShift CLI(
oc)。
流程
从
alertmanager-mainsecret 中提取当前活跃的 Alertmanager 配置,并将其保存为本地alertmanager.yaml文件:$ oc -n openshift-monitoring get secret alertmanager-main --template='{{ index .data "alertmanager.yaml" }}' | base64 --decode > alertmanager.yaml-
打开
alertmanager.yaml文件。 编辑 Alertmanager 配置:
可选:更改默认的 Alertmanager 配置:
默认 Alertmanager secret YAML 示例
global: resolve_timeout: 5m route: group_wait: 30s1 group_interval: 5m2 repeat_interval: 12h3 receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog receivers: - name: default - name: watchdog添加警报接收器配置:
# ... receivers: - name: default - name: watchdog - name: <receiver>1 <receiver_configuration>2 # ...将 PagerDuty 配置为警报接收器示例
# ... receivers: - name: default - name: watchdog - name: team-frontend-page pagerduty_configs: - routing_key: xxxxxxxxxx1 # ...- 1
- 定义 PagerDuty 集成密钥。
将电子邮件配置为警报接收器的示例
# ... receivers: - name: default - name: watchdog - name: team-frontend-page email_configs: - to: myemail@example.com1 from: alertmanager@example.com2 smarthost: 'smtp.example.com:587'3 auth_username: alertmanager@example.com4 auth_password: password hello: alertmanager5 # ...重要Alertmanager 需要外部 SMTP 服务器来发送电子邮件警报。要配置电子邮件警报接收器,请确保您具有外部 SMTP 服务器所需的连接详情。
添加路由配置:
# ... route: group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog - matchers:1 - "<your_matching_rules>"2 receiver: <receiver>3 # ...警告不要使用
match,match_re,target_match,target_match_re,source_match, 和source_match_re键名称,它们已弃用,并计划在以后的发行版本中删除。警报路由示例
# ... route: group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog - matchers:1 - "service=example-app" routes:2 - matchers: - "severity=critical" receiver: team-frontend-page # ...前面的示例将由
example-app服务触发的critica严重性的警报路由到team-frontend-page接收器。通常,这些类型的警报会传给个人或关键响应团队。
应用文件中的新配置:
$ oc -n openshift-monitoring create secret generic alertmanager-main --from-file=alertmanager.yaml --dry-run=client -o=yaml | oc -n openshift-monitoring replace secret --filename=-通过视觉化路由树来验证路由配置:
$ oc exec alertmanager-main-0 -n openshift-monitoring -- amtool config routes show --alertmanager.url http://localhost:9093输出示例
Routing tree: . └── default-route receiver: default ├── {alertname="Watchdog"} receiver: Watchdog └── {service="example-app"} receiver: default └── {severity="critical"} receiver: team-frontend-page
10.8.2. 为用户定义的项目配置通知 复制链接链接已复制到粘贴板!
如果您启用了专用于用户定义的警报路由的 Alertmanager 实例,您可以通过编辑 openshift-user-workload-monitoring 命名空间中的 alertmanager-user-workload secret 来自定义实例发送通知的位置和方式。
先决条件
-
您可以使用具有
cluster-admin集群角色的用户身份访问集群。
流程
将当前活跃的 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中的配置:route: receiver: Default group_by: - name: Default routes: - matchers: - "service = prometheus-example-monitor"1 receiver: <receiver>2 receivers: - name: Default - name: <receiver> <receiver_configuration>3 应用文件中的新配置:
$ 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=-