$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
在 OpenShift Container Platform 4.17 中,集群管理员可以为用户定义的项目启用警报路由。此过程包括两个常规步骤
启用用户定义项目的警报路由以使用默认平台 Alertmanager 实例,或者(可选)仅为用户定义的项目启用单独的 Alertmanager 实例。
授予用户配置用户定义项目警报路由的权限。
完成这些步骤后,开发人员和其他用户可以为其用户定义的项目配置自定义警报和警报路由。
作为集群管理员,您可以为用户定义的项目启用警报路由。使用此功能,您可以允许具有 **alert-routing-edit** 角色的用户为用户定义的项目配置警报通知路由和接收者。这些通知由默认的 Alertmanager 实例路由,或者如果已启用,则由专用于用户定义监控的可选 Alertmanager 实例路由。
然后,用户可以通过创建或编辑其用户定义项目的 `AlertmanagerConfig` 对象来创建和配置用户定义的警报路由,而无需管理员的帮助。
用户为用户定义的项目定义警报路由后,用户定义的警报通知将按如下方式路由:
如果使用默认平台 Alertmanager 实例,则路由到 `openshift-monitoring` 命名空间中的 `alertmanager-main` Pod。
如果您已为用户定义的项目启用单独的 Alertmanager 实例,则路由到 `openshift-user-workload-monitoring` 命名空间中的 `alertmanager-user-workload` Pod。
以下是用户定义项目警报路由的限制:
|
您可以允许用户创建使用 Alertmanager 主要平台实例的用户定义警报路由配置。
您可以作为具有 `cluster-admin` 集群角色的用户访问集群。
集群管理员已为用户定义的项目启用了监控。
您已安装 OpenShift CLI(`oc`)。
编辑cluster-monitoring-config
ConfigMap
对象
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
在data/config.yaml
下的alertmanagerMain
部分添加enableUserAlertmanagerConfig: true
apiVersion: v1
kind: ConfigMap
metadata:
name: cluster-monitoring-config
namespace: openshift-monitoring
data:
config.yaml: |
# ...
alertmanagerMain:
enableUserAlertmanagerConfig: true (1)
# ...
1 | 将enableUserAlertmanagerConfig 的值设置为true ,允许用户创建使用Alertmanager主平台实例的用户定义告警路由配置。 |
保存文件以应用更改。新配置会自动应用。
在某些集群中,您可能希望为用户定义的项目部署一个专用的Alertmanager实例,这有助于减轻默认平台Alertmanager实例的负载,并可以更好地将用户定义的告警与默认平台告警分开。在这些情况下,您可以选择启用单独的Alertmanager实例,仅为用户定义的项目发送告警。
您可以作为具有 `cluster-admin` 集群角色的用户访问集群。
您已为用户定义的项目启用监控。
您已安装 OpenShift CLI(`oc`)。
编辑user-workload-monitoring-config
ConfigMap
对象
$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
在data/config.yaml
下的alertmanager
部分添加enabled: true
和 enableAlertmanagerConfig: true
apiVersion: v1
kind: ConfigMap
metadata:
name: user-workload-monitoring-config
namespace: openshift-user-workload-monitoring
data:
config.yaml: |
alertmanager:
enabled: true (1)
enableAlertmanagerConfig: true (2)
1 | 将enabled 的值设置为true 以在集群中为用户定义的项目启用专用的Alertmanager实例。将值设置为false 或完全省略此键以禁用用户定义项目的Alertmanager。如果将此值设置为false 或省略此键,则用户定义的告警将路由到默认平台Alertmanager实例。 |
2 | 将enableAlertmanagerConfig 的值设置为true ,以允许用户使用AlertmanagerConfig 对象定义自己的告警路由配置。 |
保存文件以应用更改。专用于用户定义项目的Alertmanager实例会自动启动。
验证user-workload
Alertmanager实例是否已启动
# oc -n openshift-user-workload-monitoring get alertmanager
NAME VERSION REPLICAS AGE
user-workload 0.24.0 2 100s
您可以授予用户配置用户定义项目告警路由的权限。
您可以作为具有 `cluster-admin` 集群角色的用户访问集群。
您已为用户定义的项目启用监控。
您要为其分配角色的用户帐户已存在。
您已安装 OpenShift CLI(`oc`)。
将alert-routing-edit
集群角色分配给用户定义项目中的用户
$ oc -n <namespace> adm policy add-role-to-user alert-routing-edit <user> (1)
1 | 对于<namespace> ,请替换为用户定义项目的命名空间,例如ns1 。对于<user> ,请替换为您要为其分配角色的用户名。 |