跨阿里云账号采集日志

更新时间: 2023-08-28 12:09:15

手动部署

60

https://www.aliyun.com/solution/tech-solution/cacac_logs

方案概览

当您希望在统一的位置收集多个账号里的应用日志、或需要进行合并不同账号下的云产品日志进行数据分析时,需要进行跨阿里云账号采集日志。

本技术解决方案以跨阿里云账号采集日志为例,为您演示:

  • 如何通过Logtail跨账号采集ECS服务器日志。

  • 如何通过日志审计服务跨账号采集对象存储OSS日志。

方案架构

跨账号日志采集.png

本方案的技术架构包括以下基础设施和云服务:

说明

阿里云产品包括但不限于对象存储OSS、数据库RDS、负载均衡SLB等均可通过日志审计服务完成跨账号采集日志,本文以跨账号采集对象存储OSS日志为例。

  • 2个阿里云账号:实现跨账号数据采集。

  • 2个云服务器ECS:2个阿里云账号分别部署1个云服务器ECS,用于产生相关日志数据进行采集。

  • 2个日志服务SLS:2个阿里云账号分别开通1个日志服务SLS,用于互相采集数据进行分析。

  • 2个对象存储OSS:2个阿里云账号分别开通1个对象存储OSS,用于产生相关日志进行采集。

部署准备

10

开始部署前,请按以下指引完成账号申请、账号充值、RAM用户创建和授权。

准备账号

  1. 如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,本方案需要申请两个阿里云账号。

  2. 为阿里云账号充值

    • 本方案的云资源支持按量付费,且默认设置均采用按量付费引导操作。请确保您的账户余额大于等于100元。

    • 完成本方案的部署及体验,预计产生费用约为1元(假设您选择最低规格资源,且资源运行时间不超过1小时。实际情况中可能部分实例无法购买需要根据实际情况调整资源规格,同时因您操作过程中实际使用的流量差异,会导致费用有所变化,请以控制台显示的实际报价以及最终账单为准,如下表格仅供参考)。

      如下表格仅供参考,以实际情况为准

      序号

      产品

      费用来源

      规格

      地域

      预估费用参考

      说明

      1

      云服务器ECS

      ECS配置费

      实例:ecs.t5-lc2m1.nano(突发性能实例 t5,1 vCPU,0.5 GiB)

      系统盘:cloud_efficiency 40GiB

      华东1(杭州)

      0.083元/时

      -

      2

      日志服务SLS

      读写流量费用

      /

      华东1(杭州)

      • 500 MB以内:0元

      • 超出部分:0.180 元/GB

      本方案涉及读写流量与跨账号采集的日志数据量有关,本文以500MB以内流量进行计费,实际价格请以实际数据量费用为准。

      按量费用:0.083元/时

  3. 阿里云账号拥有操作资源的最高权限,从云资源安全角度考虑,建议您创建RAM用户。RAM用户需要获得相关云服务的访问权限才能完成方案部署。

    云服务

    需要的权限

    描述

    云服务器ECS

    AliyunECSFullAccess

    管理云服务器ECS的权限

    日志服务SLS

    AliyunLogFullAccess

    管理日志服务SLS的权限

    对象存储OSS

    AliyunOSSFullAccess

    管理对象存储OSS的权限

    创建RAM用户并进行授权的操作指引请参见创建RAM用户及授权

部署资源

10

请参考表格中的说明和方案默认示例值为每个规划项做详细规划并在实际部署时将默认示例值修改为您的实际规划。

规划项

数量

说明

ECS

2

本方案需要2台ECS实例,即分别为两个阿里云账号创建1台ECS实例。

SLS

2

本方案需要2个日志服务Project,即分别为两个阿里云账号创建1个日志服务Project,用于存储及采集日志。

OSS

2

本方案需要2个对象存储OSS服务,即分别为两个阿里云账号开通OSS并创建Bucket。

跨账号采集日志

30

通过Logtail跨账号采集ECS日志

步骤一:创建用户标识文件

  1. 登录阿里云账号A。

  2. 打开云命令行

  3. 执行以下命令,获取日志服务所在的阿里云账号A的ID。

    echo $ALIBABA_CLOUD_ACCOUNT_ID
    image..png
  4. 登录阿里云账号B下的ECS服务器。

    执行命令创建用户标识文件。您需要配置阿里云账号A为用户标识,即创建阿里云账号A的同名文件。

    • Linux系统

      运行命令,在/etc/ilogtail/users目录下,创建阿里云账号(主账号)ID同名文件。如果/etc/ilogtail/users目录不存在,请手动创建目录。

      touch /etc/ilogtail/users/13****44
    • Windows系统

      使用命令提示符(cmd)在C:\LogtailData\users目录下,创建阿里云账号(主账号)ID同名文件。

      type nul > C:\LogtailData\users\13****44

步骤二:创建用户自定义标识机器组

  1. 在ECS服务器上创建机器组的自定义用户标识文件。

    确保ECS集群B的每台ECS服务器中都创建了机器组的用户自定义标识文件。

    1. 登录阿里云账号B下的ECS服务器。

    2. 打开/etc/ilogtail/users/13****44文件并添加用户自定义标识。

      例如配置用户自定义标识为application_b,则在文件中输入application_b,并保存。

  2. 在日志服务控制台上创建机器组。

    1. 使用阿里云账号A登录日志服务控制台

    2. 在Project列表区域,单击目标Project。

    3. 在左侧导航栏中,选择资源>机器组

    4. 单击立即创建选择机器组右侧的image.png>创建机器组

    5. 创建机器组对话框中,配置如下参数,然后单击确定。其他参数说明,请参见创建用户自定义标识机器组

      参数

      赋值

      name

      group-b

      机器组标识

      用户自定义标识

      用户自定义标识

      application_b

      image..png
  3. 检查机器组中的服务器心跳都为OK。

    1. 在机器组列表中,单击目标机器组。

    2. 机器组配置页面,查看使用了相同用户自定义标识的ECS服务器及其心跳状态。心跳OK表示ECS服务器与日志服务的连接正常。如果显示FAIL,请参见Logtail机器组问题排查思路进行解决。

步骤三:采集日志

  1. 使用阿里云账号A登录日志服务控制台

  2. 接入数据区域,选择正则-文本日志

  3. 选择日志空间向导中,选择目标Project和Logstore,单击下一步

  4. 创建机器组向导中,单击使用现有机器组

  5. 机器组配置向导中,选中您在步骤二中创建的机器组,将该机器组从源机器组移动到应用机器组,单击下一步

  6. 创建Logtail采集配置,单击下一步

    • 由于账户A需要采集的文件与原来账号B是相同的,且默认一份文件只能生效一个采集配置,因此需要停止账号B的采集或添加强制采集配置(请参见如何实现文件中的日志被采集多份)使账户A的采集配置生效。

    • 此处创建Logtail采集配置成功后,请删除阿里云账号B下的原有Logtail采集配置,并关闭强制采集配置,避免重复采集日志。具体操作,请参见删除Logtail采集配置

    参数

    赋值

    配置名称

    logtail-test01

    日志路径

    根据日志在服务器上的位置,设置日志目录和文件名称。

    • 如果是Linux系统中的日志路径,必须以正斜线(/)开头,例如/apsara/nuwa/**/app.Log

    • 如果是Windows系统中的日志路径,必须以盘符开头,例如C:\Program Files\Intel\**\*.Log

    单行采集

    • 如果待采集的日志是单行日志,请打开单行模式开关,日志服务将逐行采集日志。

    • 如果待采集的日志是多行日志(例如Java程序日志),请关闭单行模式开关,使用多行正则模式采集。

    日志样例

    • 单行日志采集样例

      127.0.0.1 - - [10/Sep/2018:12:36:49 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
    • 多行日志采集样例

      [2018-10-01T10:30:01,000] [INFO] java.lang.Exception: exception happened
       at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
       at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
       at TestPrintStackTrace.main(TestPrintStackTrace.java:16)
  7. 日志服务默认开启全文索引,您也可以根据采集到的日志,手动或者自动设置字段索引,单击下一步。具体操作,请参见开启并配置索引

  8. 在结束页面,单击查询日志。系统可能弹出错误提示,直接单击关闭即可。

通过日志审计服务跨账号采集云产品日志

日志审计服务支持跨账号采集云产品日志,包括但不限于对象存储OSS、数据库RDS、负载均衡SLB等,您可以通过资源目录管理模式和自定义鉴权模式完成多账号配置。其中资源目录管理模式是通过日志审计服务集成了阿里云资源目录实现的。您可以通过管理账号或者委派管理员账号将企业内其他阿里云账号添加为成员,从而实现跨阿里云账号采集云产品日志,具体信息,请参见什么是资源管理。本文以跨账号采集对象存储OSS日志为例。

步骤一:在资源管理中创建成员

重要
  • 若采用自定义鉴权模式完成多账号配置则请跳过此步骤。

  • 仅支持企业账号开通资源管理,个人账号请通过自定义鉴权模式完成多账号配置。

  1. 使用阿里云账号登录资源管理控制台

  2. 在左侧导航栏,选择资源目录 > 概览

  3. 资源组织页签,单击目标资源夹。

  4. 单击创建成员

  5. 创建成员页面,输入阿里云账号名称,并输入显示名

  6. 选择结算账号

    • 使用管理账号为新成员付款:指定资源目录的管理账号作为托管结算账号。

    • 使用已有成员为新成员付款:指定资源目录的已有成员作为托管结算账号。您需要在指定一个成员面板中,从资源目录的目录树中选择一个成员。

      说明

      若成员不具备付款能力则无法被选中。关于如何判断成员是否具备付款能力,请参见财务托管业务须知

    • 新成员自主付款:指定当前成员作为结算账号。

  7. 单击确定

步骤二:开启日志采集功能

  1. 登录日志服务控制台

  2. 日志应用区域的审计与安全页签下,单击日志审计服务

  3. 在左侧导航栏中,选择云产品接入 > 全局配置

  4. 中心项目Project所在区域下拉列表中,选择日志中心化存储的目标地域。

  5. 在云产品列表中,选择需开启日志采集功能的云产品,并配置存储时间。

  6. 单击保存

    说明

    配置完成后,等待2分钟左右,可在云产品接入 > 接入状态页面中查看日志接入状态。如果出现异常,请根据页面提示信息进行调整。更多信息,请参见开启日志采集功能

步骤三:配置多账号采集

  1. 登录日志服务控制台

  2. 日志应用区域的审计与安全页签下,单击日志审计服务

  3. 在左侧导航栏中,选择多账号配置 > 全局配置

  4. 多账号配置页面中,根据需求选择配置模式。

    资源目录管理模式

    1. 资源目录管理模式页签中,单击修改

    2. 添加账号配置页面中,选择目标账号,然后单击确认

      • 全员:日志审计服务自动将资源目录下的所有成员纳入到采集名单中,并采集这些成员中已开启日志采集功能的云产品的日志。

      • 自定义:您可以自定义选择目标成员到采集名单中,日志审计服务会采集这些成员中已开启日志采集功能的云产品的日志。

    自定义鉴权管理模式

    1. 自定义鉴权管理模式页签中,单击修改

    2. 配置账号,然后单击确定

      • 通过账号密钥辅助授权:在对应的本文框中分别输入其他阿里云账号的ID以及AccessKey信息。AccessKey信息不会被保存,仅临时使用。

        此处AccessKey对应的RAM用户需具备RAM读写权限(例如已被授权AliyunRAMFullAccess策略)。如果获取AccessKey信息,请参见访问密钥

      • 手动授权:输入其他阿里云账号的ID,支持配置多个,多个账号之间可以使用换行、英文逗号(,)、空格或竖线(|)分隔。对应的账号权限配置请参见自定义授权日志采集与同步

步骤四:查看数据

  1. 登录日志服务控制台

  2. 日志应用区域的审计与安全页签下,单击日志审计服务

  3. 单击审计配置 > 云产品接入 > 全局数据,查看日志审计全局数据视图或单击审计报表 > 中心化并选择目标云产品,查看云产品全局数据视图。

完成及清理

10

方案验证

完成跨账号日志采集后,您可以通过日志服务控制台查看相关数据。

通过Logtail跨账号采集ECS日志

  1. 登录日志服务控制台

  2. 进入目标project,在日志库列表中,单击目标logstore。

  3. 单击image.png进入查询分析界面,单击查询/分析查看日志信息。

image.png

通过日志审计服务跨账号采集云产品日志

  1. 登录日志服务控制台

  2. 日志应用区域的审计与安全页签下,单击日志审计服务

  3. 单击审计配置 > 云产品接入 > 全局数据,查看日志审计全局数据视图或单击审计报表 > 中心化 > OSS,查看云产品全局数据视图。

image.png

清理资源

在本方案中,您为两个账号分别创建了1台云服务器ECS实例、1个日志服务project和1个对象存储OSS Bucket。测试完方案后,您可以参考以下规则处理对应产品的实例,避免继续产生费用:

  1. 释放2台云服务器ECS实例:

    登录ECS控制台,在实例页面,找到目标实例,然后在操作列选择216更多-竖向..png>释放设置,根据界面提示释放实例。

  2. 释放2个日志服务project:

    登录日志服务控制台,进入目标Project,然后在左侧日志库列表中单击目标日志库,进入数据接入 > Logtail配置,删除Logtail。单击image > 删除,删除日志库。最后在日志服务控制台首页,删除目标Project。

  3. 释放2个对象存储OSS Bucket:

    登录对象存储OSS控制台,在文件列表页面,找到文件,然后在文件右侧操作列,选择more>彻底删除,根据界面提示删除文件。然后在左侧导航栏,选择删除Bucket,在删除Bucket页面,单击删除Bucket,然后根据界面提示删除Bucket。

一键部署

30

https://www.aliyun.com/solution/tech-solution/cacac_logs

方案概览

当您希望在统一的位置收集多个账号里的应用日志、或需要进行合并不同账号下的云产品日志进行数据分析时,需要进行跨阿里云账号采集日志。

本技术解决方案以跨阿里云账号采集日志为例,为您演示:

  • 如何通过Logtail跨账号采集ECS服务器日志。

  • 如何通过日志审计服务跨账号采集对象存储OSS日志。

方案架构

跨账号日志采集.png

本方案的技术架构包括以下基础设施和云服务:

说明

阿里云产品包括但不限于对象存储OSS、数据库RDS、负载均衡SLB等均可通过日志审计服务完成跨账号采集日志,本文以跨账号采集对象存储OSS日志为例。

  • 2个阿里云账号:实现跨账号数据采集。

  • 2个云服务器ECS:2个阿里云账号分别部署1个云服务器ECS,用于产生相关日志数据进行采集。

  • 2个日志服务SLS:2个阿里云账号分别开通1个日志服务SLS,用于互相采集数据进行分析。

  • 2个对象存储OSS:2个阿里云账号分别开通1个对象存储OSS,用于产生相关日志进行采集。

部署准备

10

开始部署前,请按以下指引完成账号申请、账号充值、RAM用户创建和授权。

准备账号

  1. 如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,本方案需要申请两个阿里云账号。

  2. 为阿里云账号充值

    • 本方案的云资源支持按量付费,且默认设置均采用按量付费引导操作。请确保您的账户余额大于等于100元。

    • 完成本方案的部署及体验,预计产生费用约为1元(假设您选择最低规格资源,且资源运行时间不超过1小时。实际情况中可能部分实例无法购买需要根据实际情况调整资源规格,同时因您操作过程中实际使用的流量差异,会导致费用有所变化,请以控制台显示的实际报价以及最终账单为准,如下表格仅供参考)。

      如下表格仅供参考,以实际情况为准

      序号

      产品

      费用来源

      规格

      地域

      预估费用参考

      说明

      1

      云服务器ECS

      ECS配置费

      实例:ecs.t5-lc2m1.nano(突发性能实例 t5,1 vCPU,0.5 GiB)

      系统盘:cloud_efficiency 40GiB

      华东1(杭州)

      0.083元/时

      -

      2

      日志服务SLS

      读写流量费用

      /

      华东1(杭州)

      • 500 MB以内:0元

      • 超出部分:0.180 元/GB

      本方案涉及读写流量与跨账号采集的日志数据量有关,本文以500MB以内流量进行计费,实际价格请以实际数据量费用为准。

      按量费用:0.083元/时

  3. 阿里云账号拥有操作资源的最高权限,从云资源安全角度考虑,建议您创建RAM用户。RAM用户需要获得相关云服务的访问权限才能完成方案部署。

    云服务

    需要的权限

    描述

    云服务器ECS

    AliyunECSFullAccess

    管理云服务器ECS的权限

    日志服务SLS

    AliyunLogFullAccess

    管理日志服务SLS的权限

    对象存储OSS

    AliyunOSSFullAccess

    管理对象存储OSS的权限

    创建RAM用户并进行授权的操作指引请参见创建RAM用户及授权

一键部署

15

一键部署基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,ROS模板已定义好脚本,可自动化地完成云资源的创建和配置,提高资源的创建和部署效率。ROS模板完成的内容包括:

操作步骤

通过Logtail跨账号采集ECS日志

  1. 登录阿里云账号A。

  2. 打开一键配置ROS模板链接前往ROS控制台,系统自动打开使用新资源创建资源栈的面板。

  3. 输入日志服务信息。

    参数

    赋值

    SLS日志服务项目名称

    Project-test

    日志样例

    • 单行日志采集样例

      127.0.0.1 - - [10/Sep/2018:12:36:49 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
    • 多行日志采集样例

      [2018-10-01T10:30:01,000] [INFO] java.lang.Exception: exception happened
       at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
       at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
       at TestPrintStackTrace.main(TestPrintStackTrace.java:16)

    日志路径

    根据日志在服务器上的位置,设置日志目录和文件名称。

    • 如果是Linux系统中的日志路径,必须以正斜线(/)开头,例如/apsara/nuwa/**/app.Log

    • 如果是Windows系统中的日志路径,必须以盘符开头,例如C:\Program Files\Intel\**\*.Log

    日志文件名

    根据日志在服务器上的位置,设置日志名称。

  4. 输入B账号信息。

  5. 单击创建。当资源栈信息页签的状态栏变成已创建时,表示已完成资源和模型部署。

通过日志审计服务跨账号采集云产品日志

  1. 打开一键配置ROS模板链接前往ROS控制台,系统自动打开使用新资源创建资源栈的面板。

  2. 选择鉴权模式进行资源创建。

    重要

    仅支持企业账号开通资源管理(Resource Management),个人账号请通过自定义鉴权模式(User-defined)完成多账号配置。

    • 选择鉴权模式Resource Management,单击创建,当资源栈信息页签的状态栏变成已创建时,表示已完成资源和模型部署。

    • 选择鉴权模式User-defined,输入AccessKey IDAccessKey Secret,并单击创建,当资源栈信息页签的状态栏变成已创建时,表示已完成资源和模型部署。

完成及清理

10

方案验证

完成跨账号日志采集后,您可以通过日志服务控制台查看相关数据。

通过Logtail跨账号采集ECS日志

  1. 登录日志服务控制台

  2. 进入目标project,在日志库列表中,单击目标logstore。

  3. 单击image.png进入查询分析界面,单击查询/分析查看日志信息。

image.png

通过日志审计服务跨账号采集云产品日志

  1. 登录日志服务控制台

  2. 日志应用区域的审计与安全页签下,单击日志审计服务

  3. 单击审计配置 > 云产品接入 > 全局数据,查看日志审计全局数据视图或单击审计报表 > 中心化 > OSS,查看云产品全局数据视图。

image.png

清理资源

在本方案中,您为两个账号分别创建了1台云服务器ECS实例、1个日志服务project和1个对象存储OSS Bucket。测试完方案后,您可以参考以下规则处理对应产品的实例,避免继续产生费用:

  1. 释放2台云服务器ECS实例:

    登录ECS控制台,在实例页面,找到目标实例,然后在操作列选择216更多-竖向..png>释放设置,根据界面提示释放实例。

  2. 释放2个日志服务project:

    登录日志服务控制台,进入目标Project,然后在左侧日志库列表中单击目标日志库,进入数据接入 > Logtail配置,删除Logtail。单击image > 删除,删除日志库。最后在日志服务控制台首页,删除目标Project。

  3. 释放2个对象存储OSS Bucket:

    登录对象存储OSS控制台,在文件列表页面,找到文件,然后在文件右侧操作列,选择more>彻底删除,根据界面提示删除文件。然后在左侧导航栏,选择删除Bucket,在删除Bucket页面,单击删除Bucket,然后根据界面提示删除Bucket。