为了实现应用完整端到端调用链路追踪,建议您将应用监控数据上报到同一个账号中,并通过RAM角色授予其他账号查看或管理数据的权限。本文介绍如何跨账号统一监控数据。

使用场景

企业同时拥有多个阿里云账号,希望能跨账号统一监控,实现不同账号中的应用跨调用链路追踪能力。

调用链路可以实现跨账号的追踪,更多信息,请参见调用链路查询跨账号追踪调用链
跨多个应用数据的自助诊断,更多信息,请参见查看Insights事件列表自助诊断
应用监控 > 应用列表页面单击全局拓扑图标,查看跨多个应用数据的拓扑图。全局拓扑

解决方案

假设企业同时拥有阿里云账号A和B,账号A购买了ARMS产品,账号B购买了ECS、ACK等产品,现需要将账号B的应用接入账号A下的ARMS中,并实现账号B同步监控应用。可以进行如下设置:
  1. 在账号A的ARMS中接入账号B下的应用。具体操作,请参见步骤一
  2. 为阿里云账号B授权。具体操作,请参见步骤二
    1. 账号A创建RAM角色,并授予需要同步管理的应用的读写权限。
    2. 账号B创建RAM用户,并添加AliyunSTSAssumeRoleAccess权限。
  3. 账号B的RAM用户通过切换身份登录ARMS控制台管理应用。具体操作,请参见步骤三

步骤一:将所有应用接入阿里云账号A下

ECS应用接入

  1. ARMS控制台接入中心页面获取到A账号的License key。
    重要 一个账号对应唯一的License Key。
    接入中心
  2. 下载探针包,并使用账号A的License Key安装探针。具体操作,请参见为Java应用手动安装Agent

ACK应用接入

  1. ARMS控制台接入中心页面获取到A账号的License key。
    重要 一个账号对应唯一的License Key。
    接入中心
  2. 打开应用的YAML文件,在spec.template.metadata.labels下添加ARMSApmLicenseKey: "xxx_xxx"
    说明 请将xxx_xxx替换为账号A的License Key,并将License Key中的@替换为下划线(_)。
    Yaml文件

步骤二:为阿里云账号B授权

  1. 为账号A下指定应用创建自定义权限策略,例如ecsapplication
    具体操作,请参见应用监控自定义RAM授权策略
  2. 账号A创建可信实体为阿里云账号的RAM角色,例如arms-admin,并选择信任的云账号为阿里云账号B。
  3. 为账号A的RAM角色arms-admin添加步骤1创建的自定义权限策略ecsapplication
    具体操作,请参见为RAM角色授权
  4. 为账号B创建RAM用户。
    具体操作,请参见创建RAM用户
    重要 请保存RAM用户登录名和密码。
  5. 为账号B的RAM用户添加AliyunSTSAssumeRoleAccess权限,即允许RAM用户扮演RAM角色。
    具体操作,请参见为RAM用户授权

步骤三:通过账号B的RAM用户监控应用

  1. 通过阿里云账号B的RAM用户登录RAM控制台
    具体操作,请参见RAM用户登录阿里云控制台
  2. RAM用户登录成功后,将鼠标悬停在右上角的头像位置,然后单击切换身份
  3. 输入账号A的UID和上文步骤二中账号A创建的RAM角色名。
    具体操作,请参见使用RAM角色
  4. 登录ARMS控制台,在应用监控 > 应用列表页面查看应用。