10.8. 配置 Alertmanager 以发送通知
您可以通过编辑 alertmanager-main
secret 为默认平台警报或 alertmanager-user-workload
secret 用于用户定义的警报,将 Alertmanager 配置为发送通知。
OpenShift Alertmanager 配置中也支持支持上游 Alertmanager 的所有功能。要检查受支持的上游 Alertmanager 版本的所有配置选项,请参阅 Alertmanager 配置。
10.8.1. 为默认平台警报配置通知
您可以将 Alertmanager 配置为发送通知。通过编辑 openshift-monitoring
命名空间中的 alertmanager-main
secret 中的默认配置来自定义 Alertmanager 如何发送通知有关默认平台警报的通知。
Alertmanager 默认不会发送通知。建议您通过在 alertmanager-main
secret 配置文件中设置通知详情,将 Alertmanager 配置为接收通知。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。
流程
打开 Alertmanager YAML 配置文件:
通过 CLI 打开 Alertmanager 配置:
将当前活跃的 Alertmanager 配置从
alertmanager-main
secret 输出到alertmanager.yaml
文件中:$ oc -n openshift-monitoring get secret alertmanager-main --template='{{ index .data "alertmanager.yaml" }}' | base64 --decode > alertmanager.yaml
-
打开
alertmanager.yaml
文件。
从 OpenShift Container Platform Web 控制台打开 Alertmanager 配置:
-
进入 web 控制台的 Administration
Cluster Settings Configuration Alertmanager YAML 页面。
-
进入 web 控制台的 Administration
通过更新 YAML 中的参数来编辑 Alertmanager 配置:
global: resolve_timeout: 5m route: group_wait: 30s 1 group_interval: 5m 2 repeat_interval: 12h 3 receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog - matchers: - "service=<your_service>" 4 routes: - matchers: - <your_matching_rules> 5 receiver: <receiver> 6 receivers: - name: default - name: watchdog - name: <receiver> <receiver_configuration> 7
重要-
使用
matchers
键名称来指示警报要与节点匹配的匹配者。不要使用match
或match_re
键名称,它们都已弃用,并计划在以后的发行版本中删除。 如果您定义了禁止规则,请使用以下密钥名称:
-
target_matchers
: 表示目标匹配器 -
source_matchers
: 用于指示源匹配器
不要使用
target_match
,target_match_re
,source_match
, 或source_match_re
键名称,这些名称已弃用,并计划在以后的发行版本中删除。-
以下 Alertmanager 配置示例将 PagerDuty 配置为警报接收器:
global: resolve_timeout: 5m route: group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog - matchers: - "service=example-app" routes: - matchers: - "severity=critical" receiver: team-frontend-page receivers: - name: default - name: watchdog - name: team-frontend-page pagerduty_configs: - service_key: "<your_key>"
使用这个配置,由
example-app
服务触发的关键
严重性的警报将通过team-frontend-page
接收器发送。通常,这些类型的警报会传给个人或关键响应团队。-
使用
应用文件中的新配置:
要从 CLI 应用更改,请运行以下命令:
$ 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=-
- 要从 OpenShift Container Platform Web 控制台应用更改,请点击 Save。
10.8.2. 为用户定义的项目配置通知
如果您启用了专用于用户定义的警报路由的 Alertmanager 实例,您可以通过编辑 openshift-user-workload-monitoring
命名空间中的 alertmanager-user-workload
secret 来自定义实例发送通知的位置和方式。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 -
已安装 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
中的配置: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=-