通过可观测监控 Prometheus 版提供的自定义鉴权方式,您可以对多个不同阿里云账号下的Prometheus实例进行数据的聚合,实现对跨账号下的Prometheus实例指标数据的统一监控、统一Grafana展示和统一告警管理。
前提条件
已存在阿里云账号A(主账号)和阿里云账号B(主账号)。
阿里云账号A已开通可观测监控 Prometheus 版并创建了全局聚合实例。具体操作,请参见创建实例。
阿里云账号B已开通可观测监控 Prometheus 版并创建了Prometheus实例。具体操作,请参见:
此处阿里云账号A即为聚合账号,阿里云账号B则为被聚合账号,聚合账号和被聚合账号可以是多对多的关系。
使用说明
自定义鉴权方式是采用RAM提供的角色授权功能来实现,其本质是通过角色扮演来实现。
实现跨账号角色扮演的能力是由RAM访问控制服务本身提供的,其透出的接口只能允许RAM用户去请求,而无法直接通过阿里云账号去请求。
步骤一:使用阿里云账号B创建角色
使用阿里云账号B登录RAM控制台。
在左侧导航栏,选择身份管理 > 角色,然后单击创建角色。
在弹出的面板中选择默认的阿里云账号,然后单击下一步。
在配置角色页签,设置角色名称为AliyunPrometheusQueryRole,然后选择信任的账号为其他云账号,并输入阿里云账号A的信息。
单击完成。
单击已创建的角色,然后单击信任策略页签,单击编辑信任策略,在弹出的面板修改信任策略,为阿里云账号A授信。
说明这里为数组形式,即您可以为多个账号同时授信。
步骤二:为角色授权
为AliyunPrometheusQueryRole角色授予AliyunRAMReadOnlyAccess和AliyunARMSReadOnlyAccess权限。
为了实现对ARMS所有功能的只读权限,除了添加AliyunARMSReadOnlyAccess权限策略外,还需要再为特定的资源组配置ReadTraceApp权限,否则ARMS将无法展示资源组鉴权下的应用列表。
在左侧导航栏选择身份管理 > 角色,然后单击目标角色操作列的新增授权。
在弹出的面板的选择权限区域通过在搜索框输入AliyunRAMReadOnlyAccess和AliyunARMSReadOnlyAccess权限,将其选中并添加在右侧区域,然后单击确定,并单击完成。
(可选)步骤三:为阿里云账号A创建RAM用户
如果您的聚合账号为阿里云账号A,您需要为阿里云账号A创建RAM用户来聚合阿里云账号B,因此需要执行该步骤。
如果您的聚合账号已经是RAM用户,可以直接连接聚合阿里云账号B,因此无需再次创建RAM用户,可以跳过该步骤。
操作步骤
使用阿里云账号(主账号)或RAM管理员登录RAM控制台。
在左侧导航栏,选择 。
在用户页面,单击创建用户。
在创建用户页面的用户账号信息区域,设置用户基本信息。
登录名称:可包含英文字母、数字、半角句号(.)、短划线(-)和下划线(_),最多64个字符。
显示名称:最多包含128个字符或汉字。
标签:单击,然后输入标签键和标签值。为RAM用户绑定标签,便于后续基于标签的用户管理。
说明单击添加用户,可以批量创建多个RAM用户。
在访问方式区域,选择访问方式,然后设置对应参数。
为了账号安全,建议您只选择以下访问方式中的一种,将人员用户和应用程序用户分离,避免混用。
控制台访问
如果RAM用户代表人员,建议启用控制台访问,使用用户名和登录密码访问阿里云。您需要设置以下参数:
控制台登录密码:选择自动生成密码或者自定义密码。自定义登录密码时,密码必须满足密码复杂度规则。更多信息,请参见设置RAM用户密码强度。
密码重置策略:选择RAM用户在下次登录时是否需要重置密码。
多因素认证(MFA)策略:选择是否为当前RAM用户启用MFA。启用MFA后,主账号还需要为RAM用户绑定MFA设备或RAM用户自行绑定MFA设备。更多信息,请参见为RAM用户绑定MFA设备。
OpenAPI调用访问
如果RAM用户代表应用程序,建议启用OpenAPI调用访问,使用访问密钥(AccessKey)访问阿里云。启用后,系统会自动为RAM用户生成一个AccessKey ID和AccessKey Secret。更多信息,请参见创建AccessKey。
重要RAM用户的AccessKey Secret只在创建时显示,不支持查看,请妥善保管。
单击确定。
根据界面提示,完成安全验证。
步骤四:为阿里云账号A的RAM用户授权
单击目标RAM用户名称,然后单击权限管理页签。
单击新增授权,在弹出的面板的选择权限区域通过在搜索框输入AliyunSTSAssumeRoleAccess和AliyunARMSFullAccess权限,将其选中并添加在右侧区域,然后单击确定,并单击完成。
步骤五:聚合Prometheus实例数据
使用阿里云账号A的RAM用户登录Prometheus控制台。
单击目标全局聚合实例操作列的编辑,然后在STEP3区域选择要聚合的实例为其他账号(自定义鉴权)(图标①)。
在阿里云账号右侧搜索框中搜索阿里云账号B,单击确认(图标②),系统会过滤出阿里云账号B下的所有Prometheus实例,您可以选中对应的Prometheus实例进行聚合(图标③),然后单击编辑聚合实例。
说明只有进行过授权的RAM用户可以编辑保存自定义授权的跨账号监控实例,阿里云账号暂无相关权限。
步骤六:查看跨账号的全局聚合实例数据
通过阿里云账号A的RAM用户下的全局聚合实例聚合阿里云账号B的Prometheus实例后,您可以通过预置的Grafana大盘查看聚合后的Prometheus实例的性能指标数据。
在Prometheus监控页面,单击目标Prometheus实例名称,然后在左侧导航栏单击大盘列表。
在大盘列表页面,单击大盘名称,查看该全局聚合实例下所有Prometheus实例的性能指标数据。
步骤七:为跨账号的全局聚合实例创建告警规则
在Prometheus监控页面,单击目标Prometheus实例名称,然后在左侧导航栏单击告警规则。
在页面右上角单击创建Prometheus告警规则,并按照控制台界面提示配置告警规则的基本信息。具体操作,请参见Prometheus告警规则。
说明其中,在创建Prometheus告警规则页面的数据预览区域,全局聚合实例提供了unique_cluster_id(实例的唯一标识)和unique_cluster_name(实例名称),以便您在追踪告警对象时,能快速定位到对应触发告警阈值的实例。
相关操作
编辑全局聚合实例
在Prometheus监控页面,您可以单击已聚合的全局聚合实例右侧操作列的编辑,编辑聚合的全局聚合实例信息。若您重新修改了Endpoint信息 ,会导致在原Endpoint下配置的告警规则失效,因此不建议您随意变更Endpoint。
卸载全局聚合实例
若您暂不需要监控全局聚合实例,您可以卸载相关插件。
在实例列表页面,单击目标Prometheus实例操作列的卸载,然后在弹出的对话框中单击确认,即可卸载成功。卸载完成后,实例列表页面不再显示该Prometheus实例。
卸载后的全局聚合实例将不再继续计费。目前全局聚合实例仅支持按量计费(后付费)的计费模式,因此卸载后暂不涉及相关退费。