×

在 OpenShift Dedicated 中,`dedicated-admin` 可以为用户定义的项目启用告警路由。此过程包括两个主要步骤

  • 启用用户定义的项目告警路由以使用独立的 Alertmanager 实例。

  • 授予用户配置用户定义项目告警路由的权限。

完成这些步骤后,开发人员和其他用户可以为其用户定义的项目配置自定义告警和告警路由。

了解用户定义项目的告警路由

作为 `dedicated-admin`,您可以为用户定义的项目启用告警路由。借助此功能,您可以允许具有 **alert-routing-edit** 角色的用户配置用户定义项目的告警通知路由和接收者。这些通知由专用于用户定义监控的 Alertmanager 实例进行路由。

然后,用户可以通过创建或编辑其用户定义项目的 `AlertmanagerConfig` 对象来创建和配置用户定义的告警路由,无需管理员的帮助。

用户定义用户定义项目的告警路由后,用户定义的告警通知将被路由到 `openshift-user-workload-monitoring` 命名空间中的 `alertmanager-user-workload` Pod。

以下是用户定义项目告警路由的限制

  • 对于用户定义的告警规则,用户定义的路由范围限定为定义资源的命名空间。例如,命名空间 `ns1` 中的路由配置仅适用于同一命名空间中的 `PrometheusRules` 资源。

  • 当某个命名空间从用户定义的监控中排除时,该命名空间中的 `AlertmanagerConfig` 资源将不再是 Alertmanager 配置的一部分。

为用户定义的告警路由启用独立的 Alertmanager 实例

在 OpenShift Dedicated 中,您可能希望为用户定义的项目部署一个专用的 Alertmanager 实例,该实例提供与默认平台告警分离的用户定义告警。在这些情况下,您可以选择启用 Alertmanager 的独立实例,以仅发送用户定义项目的告警。

先决条件
  • 您已作为具有 `dedicated-admin` 角色的用户访问集群。

  • `user-workload-monitoring-config` `ConfigMap` 对象存在。此对象在创建集群时默认创建。

  • 您已安装 OpenShift CLI(`oc`)。

步骤
  1. 编辑 `user-workload-monitoring-config` `ConfigMap` 对象

    $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
  2. 在 `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` 对象定义自己的告警路由配置。
  3. 保存文件以应用更改。用户定义项目的 Alertmanager 专用实例将自动启动。

验证
  • 验证alert-manager-user-workload pod 是否正在运行

    # oc -n openshift-user-workload-monitoring get pods
    示例输出
    NAME                                   READY   STATUS    RESTARTS   AGE
    alertmanager-user-workload-0           6/6     Running   0          38s
    alertmanager-user-workload-1           6/6     Running   0          38s
    ...

授予用户配置用户定义项目的告警路由的权限

您可以授予用户配置用户定义项目的告警路由的权限。

先决条件
  • 您已作为具有 `dedicated-admin` 角色的用户访问集群。

  • `user-workload-monitoring-config` `ConfigMap` 对象存在。此对象在创建集群时默认创建。

  • 您要分配角色的用户帐户已存在。

  • 您已安装 OpenShift CLI(`oc`)。

步骤
  • alert-routing-edit集群角色分配给用户定义项目中的用户

    $ oc -n <namespace> adm policy add-role-to-user alert-routing-edit <user> (1)
    1 对于<namespace>,请替换为用户定义项目的命名空间,例如ns1。对于<user>,请替换为要分配角色的用户名。