×

在 AWS 上的 Red Hat OpenShift Service 中,dedicated-admin 可以为用户定义的项目启用警报路由。此过程包含两个主要步骤

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

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

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

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

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

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

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

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

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

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

为用户定义的警报路由启用单独的 Alertmanager 实例

在 AWS 上的 Red Hat OpenShift Service 中,您可能希望为用户定义的项目部署一个专用的 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: trueenableAlertmanagerConfig: 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>,请替换要为其分配角色的帐户的用户名。