基于Prometheus全局聚合实例进行多账号统一监控

通过可观测监控 Prometheus 版提供的自定义鉴权方式,您可以对多个不同阿里云账号下的Prometheus实例进行数据的聚合,实现对跨账号下的Prometheus实例指标数据的统一监控、统一Grafana展示和统一告警管理。

背景信息

企业可能会设立多个阿里云账号(主账号),这给运维团队带来了维护的复杂性。阿里云的可观测监控 Prometheus 版提供了全局聚合实例功能,能将不同账号下的监控数据集中管理。通过这一能力,可以帮助您实现对多账号的统一查询和告警管理,方便您对多个账号进行统一监控运维。

前提条件

  • 已存在阿里云账号A(主账号)和阿里云账号B(主账号),并且已开通账号A和账号B可观测监控 Prometheus 版。具体操作,请参见计费说明

  • 账号A和账号B的监控数据都已经接入到对应阿里云账号的Prometheus实例中。具体操作,请参见数据接入概述

使用说明

本文将以两个阿里云账号(账号A和账号B)为例,介绍如何通过Prometheus全局聚合实例功能将账号B的监控数据集成到账号A,实现在账号A中对两个账号的监控数据进行一站式查询和告警管理。

步骤一:创建全局聚合实例

可观测监控 Prometheus 版跨账号聚合能力支持两种方式:

方式一:基于资源管理 - 资源目录的方式聚合

说明

该方式的前提条件是聚合账号和被聚合账号都完成了实名认证,且实名认证的实体是一致的。具体操作,请参见企业实名认证

  1. 已通过资源目录搭建了企业的多账号体系结构。资源目录更多信息,请参见什么是资源目录

  2. 通过以下任意一种方式设置可信服务的委派管理员角色。

    方式一

    1. 使用管理账号登录资源管理控制台
    2. 在左侧导航栏,选择资源目录 > 可信服务
    3. 可信服务页面,单击目标可信服务操作列的管理
    4. 委派管理员账号区域,单击添加,将创建的Prometheus全局聚合实例的云账号设置为委派管理员。

      说明

      本示例的账号为阿里云账号A。

    5. 单击确定
      添加成功后,使用该委派管理员账号访问对应可信服务的多账号管理模块,即可进行资源目录组织范围内的管理操作。

    方式二

    1. 使用资源目录管理员账号或拥有管理员权限的RAM角色调用OpenAPI,为想要创建跨账号全局聚合实例的成员设置可信服务的委派管理员角色,按照下表说明配置参数:

      参数

      说明

      服务地址

      • 中国内地:选择华东2(上海)

      • 其他地域:选择新加坡

      AccountId

      填写需要创建跨账号全局聚合实例的成员用户ID。

      ServicePrincipal

      填写prometheus.aliyuncs.com。

      image

    2. 单击发起调用

  3. 聚合数据。

    1. 使用阿里云账号A登录ARMS控制台

    2. 在左侧导航栏选择Prometheus监控 > 实例列表,进入可观测监控 Prometheus 版的实例列表页面。

    3. 单击新建Prometheus实例,在新建实例页面,按照下表提示完成配置参数,然后单击立即创建

      参数

      说明

      实例类型

      选择全局聚合实例

      实例名称

      自定义全局聚合实例名称。

      所属资源组

      选择所属的资源组。

      标签

      标签由区分大小写的键值对组成,您最多可以设置20个标签。

      访问Endpoint

      Endpoint是请求的访问点、告警的配置地域。建议您选择实例数量最多的地域作为访问点,若您选择其他地域可能会影响访问速度和系统稳定性。

      选择要聚合的实例

      选择其他账号(资源目录),选择资源目录成员账号,添加目标Prometheus实例。

      说明
      • 选择其他账号(资源目录)后,可观测监控 Prometheus 版会将资源目录中的可信服务启用状态设置为已启用。

      • 您可以选择不同地域(Region)下的实例名称以实现跨地域的实例聚合,不过在您选择实例之前需要在访问Endpoint区域指定访问的Endpoint。

      说明

      您可以单击已创建的全局聚合实例右侧操作列的编辑,编辑已创建的全局聚合实例信息。请勿随意变更Endpoint信息,否则将导致在原Endpoint下配置的告警规则失效,因此不建议您随意变更Endpoint。

方式二:基于RAM角色自定义鉴权进行聚合

  1. 使用阿里云账号B创建角色。

    1. 使用阿里云账号B登录RAM控制台

    2. 在左侧导航栏,选择身份管理 > 角色

    3. 角色页面,单击创建角色

    4. 创建角色页面,选择可信实体类型为阿里云账号,然后单击下一步

    5. 配置角色步骤,设置角色名称AliyunPrometheusQueryRole,然后选择信任的云账号其他云账号,并输入阿里云账号A的信息,然后单击完成

    6. 单击已创建的角色,然后单击信任策略页签,单击编辑信任策略,在弹出的面板修改信任策略,为阿里云账号A授信。

      image

      说明

      这里为数组形式,即您可以为多个账号同时授信。

  2. AliyunPrometheusQueryRole角色授予AliyunRAMReadOnlyAccessAliyunARMSReadOnlyAccess权限。

    1. 在左侧导航栏选择身份管理 > 角色,然后单击目标角色操作列的新增授权

    2. 新增授权面板的权限策略区域,在搜索框中输入AliyunRAMReadOnlyAccessAliyunARMSReadOnlyAccess权限,将其选中,然后单击确认新增授权

  3. (可选)为阿里云账号A创建RAM用户。

    说明
    • 如果您的聚合账号为阿里云账号A,您需要为阿里云账号A创建RAM用户来聚合阿里云账号B,因此需要执行该步骤。

    • 如果您的聚合账号已经是RAM用户,则可以直接连接聚合阿里云账号B,因此无需再次创建RAM用户,可以跳过该步骤。

    1. 使用阿里云账号A登录RAM控制台

    2. 在左侧导航栏,选择身份管理 > 用户

    3. 用户页面,单击创建用户

    4. 创建用户页面设置用户基本信息。

      1. 登录名称:可包含英文字母、数字、半角句号(.)、短划线(-)和下划线(_),最多64个字符。

      2. 显示名称:最多包含128个字符或汉字。

        说明

        单击添加用户,可以批量创建多个RAM用户。

      3. 访问方式:为了账号安全,建议您只选择以下访问方式中的一种,将人员用户和应用程序用户分离,避免混用。

        • 控制台访问

          如果RAM用户代表人员,建议启用控制台访问,使用用户名和登录密码访问阿里云。您需要设置以下参数:

          • 控制台登录密码:选择自动生成密码或者自定义密码。自定义登录密码时,密码必须满足密码复杂度规则。更多信息,请参见设置RAM用户密码强度

          • 密码重置策略:选择RAM用户在下次登录时是否需要重置密码。

          • 多因素认证(MFA)策略:选择是否为当前RAM用户启用MFA。启用MFA后,还需要绑定MFA设备。更多信息,请参见RAM用户绑定MFA设备

        • 使用永久AccessKey访问

          如果RAM用户代表应用程序,您可以使用永久访问密钥(AccessKey)访问阿里云。启用后,系统会自动为RAM用户生成一个AccessKey IDAccessKey Secret。更多信息,请参见创建AccessKey

          重要
          • RAM用户的AccessKey Secret只在创建时显示,不支持查看,请妥善保管。

          • 访问密钥(AccessKey)是一种长期有效的程序访问凭证。AccessKey泄露会威胁该账号下所有资源的安全。建议优先采用STS Token临时凭证方案,降低凭证泄露的风险。更多信息,请参见使用访问凭据访问阿里云OpenAPI最佳实践

    5. 单击确定

    6. 根据界面提示,完成安全验证。

  4. 阿里云账号ARAM用户授权。

    1. 单击目标RAM用户名称,然后单击权限管理页签。

    2. 单击新增授权,在弹出的面板的权限策略区域通过在搜索框输入AliyunSTSAssumeRoleAccessAliyunARMSFullAccess权限,将其选中并添加在右侧区域,然后单击确认新增授权

  5. 聚合Prometheus实例数据。

    1. 使用阿里云账号ARAM用户登录ARMS控制台

    2. 在左侧导航栏选择Prometheus监控 > 实例列表,进入可观测监控 Prometheus 版的实例列表页面。

    3. 单击目标全局聚合实例操作列的编辑,然后在STEP3区域选择要聚合的实例其他账号(自定义鉴权)

    4. 阿里云账号右侧搜索框中搜索阿里云账号B,单击确认,系统会过滤出阿里云账号B下的所有Prometheus实例,您可以选中对应的Prometheus实例进行聚合,然后单击编辑聚合实例

      image

      说明

      只有进行过授权的RAM用户可以编辑保存自定义授权的跨账号监控实例,阿里云账号暂无相关权限。

步骤二:查询跨账号的全局聚合实例数据

通过阿里云账号ARAM用户下的全局聚合实例聚合阿里云账号BPrometheus实例后,您可以通过预置的Grafana大盘查看聚合后的Prometheus实例的性能指标数据。

实例列表页面,单击目标Prometheus实例名称,然后在左侧导航栏单击大盘列表

步骤三:为跨账号的全局聚合实例创建告警规则

  1. 实例列表页面,单击目标Prometheus实例名称,然后在左侧导航栏单击告警规则

  2. Prometheus告警规则页面,单击创建Prometheus告警规则,按照界面提示信息配置告警规则的基本信息。具体操作,请参见创建Prometheus告警规则

    说明

    创建Prometheus告警规则页面的数据预览区域,全局聚合实例提供了unique_cluster_id(实例的唯一标识)和unique_cluster_name(实例名称),以便您在追踪告警对象时,能快速定位到对应触发告警阈值的实例。

    image

相关操作

编辑全局聚合实例

实例列表页面,您可以单击已聚合的全局聚合实例右侧操作列的编辑,编辑聚合的全局聚合实例信息。若您重新修改了Endpoint信息 ,会导致在原Endpoint下配置的告警规则失效,因此不建议您随意变更Endpoint。

卸载全局聚合实例

若您暂不需要监控全局聚合实例,您可以卸载相关插件。

实例列表页面,单击目标Prometheus实例操作列的卸载,然后在弹出的对话框中单击确认,即可卸载成功。卸载完成后,实例列表页面不再显示该Prometheus实例

常见问题

Prometheus全局聚合实例需要额外收费吗?

全局聚合实例目前处于公测阶段,暂不收费。

Prometheus全局聚合实例是将被聚合实例数据汇总到一个实例吗?

被聚合实例不会汇总写入到全局聚合实例,全局聚合实例只是在查询时将查询下发到被聚合实例。