跨阿里云账号采集日志
手动部署
60
https://www.aliyun.com/solution/tech-solution/cacac_logs
方案概览
当您希望在统一的位置收集多个账号里的应用日志、或需要进行合并不同账号下的云产品日志进行数据分析时,需要进行跨阿里云账号采集日志。
本技术解决方案以跨阿里云账号采集日志为例,为您演示:
如何通过Logtail跨账号采集ECS服务器日志。
如何通过日志审计服务跨账号采集对象存储OSS日志。
方案架构
本方案的技术架构包括以下基础设施和云服务:
阿里云产品包括但不限于对象存储OSS、数据库RDS、负载均衡SLB等均可通过日志审计服务完成跨账号采集日志,本文以跨账号采集对象存储OSS日志为例。
2个阿里云账号:实现跨账号数据采集。
2个云服务器ECS:2个阿里云账号分别部署1个云服务器ECS,用于产生相关日志数据进行采集。
2个日志服务SLS:2个阿里云账号分别开通1个日志服务SLS,用于互相采集数据进行分析。
2个对象存储OSS:2个阿里云账号分别开通1个对象存储OSS,用于产生相关日志进行采集。
部署准备
10
开始部署前,请按以下指引完成账号申请、账号充值、RAM用户创建和授权。
准备账号
如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,本方案需要申请两个阿里云账号。
阿里云账号拥有操作资源的最高权限,从云资源安全角度考虑,建议您创建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日志
步骤一:创建用户标识文件
登录阿里云账号A。
打开云命令行。
执行以下命令,获取日志服务所在的阿里云账号A的ID。
echo $ALIBABA_CLOUD_ACCOUNT_ID
登录阿里云账号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
步骤二:创建用户自定义标识机器组
在ECS服务器上创建机器组的自定义用户标识文件。
确保ECS集群B的每台ECS服务器中都创建了机器组的用户自定义标识文件。
登录阿里云账号B下的ECS服务器。
打开
/etc/ilogtail/users/13****44
文件并添加用户自定义标识。例如配置用户自定义标识为
application_b
,则在文件中输入application_b
,并保存。
在日志服务控制台上创建机器组。
检查机器组中的服务器心跳都为OK。
在机器组列表中,单击目标机器组。
在机器组配置页面,查看使用了相同用户自定义标识的ECS服务器及其心跳状态。心跳为OK表示ECS服务器与日志服务的连接正常。如果显示FAIL,请参见Logtail机器组问题排查思路进行解决。
步骤三:采集日志
使用阿里云账号A登录日志服务控制台。
在接入数据区域,选择正则-文本日志。
在选择日志空间向导中,选择目标Project和Logstore,单击下一步。
在创建机器组向导中,单击使用现有机器组。
在机器组配置向导中,选中您在步骤二中创建的机器组,将该机器组从源机器组移动到应用机器组,单击下一步。
创建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)
日志服务默认开启全文索引,您也可以根据采集到的日志,手动或者自动设置字段索引,单击下一步。具体操作,请参见创建索引。
在结束页面,单击查询日志。系统可能弹出错误提示,直接单击关闭即可。
通过日志审计服务跨账号采集云产品日志
日志审计服务支持跨账号采集云产品日志,包括但不限于对象存储OSS、数据库RDS、负载均衡SLB等,您可以通过资源目录管理模式和自定义鉴权模式完成多账号配置。其中资源目录管理模式是通过日志审计服务集成了阿里云资源目录实现的。您可以通过管理账号或者委派管理员账号将企业内其他阿里云账号添加为成员,从而实现跨阿里云账号采集云产品日志,具体信息,请参见什么是资源管理。本文以跨账号采集对象存储OSS日志为例。
步骤一:在资源管理中创建成员
若采用自定义鉴权模式完成多账号配置则请跳过此步骤。
仅支持企业账号开通资源管理,个人账号请通过自定义鉴权模式完成多账号配置。
在左侧导航栏,选择
。单击创建成员。
在创建成员页面,输入阿里云账号名称,并输入显示名。
选择结算账号。
使用管理账号为新成员付款:指定资源目录的管理账号作为托管结算账号。
使用已有成员为新成员付款:指定资源目录的已有成员作为托管结算账号。您需要在指定一个成员面板中,从资源目录的目录树中选择一个成员。
说明若成员不具备付款能力则无法被选中。关于如何判断成员是否具备付款能力,请参见财务托管业务须知。
新成员自主付款:指定当前成员作为结算账号。
单击确定。
步骤二:开启日志采集功能
在左侧导航栏中,选择
。在云产品列表中,选择需开启日志采集功能的云产品,并配置存储时间。
单击保存。
说明配置完成后,等待2分钟左右,可在开启日志采集功能。
页面中查看日志接入状态。如果出现异常,请根据页面提示信息进行调整。更多信息,请参见
步骤三:配置多账号采集
在左侧导航栏中,选择
。在多账号配置页面中,根据需求选择配置模式。
资源目录管理模式
在资源目录管理模式页签中,单击修改。
在添加账号配置页面中,选择目标账号,然后单击确认。
全员:日志审计服务自动将资源目录下的所有成员纳入到采集名单中,并采集这些成员中已开启日志采集功能的云产品的日志。
自定义:您可以自定义选择目标成员到采集名单中,日志审计服务会采集这些成员中已开启日志采集功能的云产品的日志。
自定义鉴权管理模式
在自定义鉴权管理模式页签中,单击修改。
配置账号,然后单击确定。
通过账号密钥辅助授权:在对应的本文框中分别输入其他阿里云账号的ID以及AccessKey信息。AccessKey信息不会被保存,仅临时使用。
此处AccessKey对应的RAM用户需具备RAM读写权限(例如已被授权AliyunRAMFullAccess策略)。如果获取AccessKey信息,请参见服务接入点。
手动授权:输入其他阿里云账号的ID,支持配置多个,多个账号之间可以使用换行、英文逗号(,)、空格或竖线(|)分隔。对应的账号权限配置请参见自定义授权日志采集与同步。
步骤四:查看数据
单击
,查看日志审计全局数据视图或单击 并选择目标云产品,查看云产品全局数据视图。
完成及清理
10
方案验证
完成跨账号日志采集后,您可以通过日志服务控制台查看相关数据。
通过Logtail跨账号采集ECS日志
登录日志服务控制台。
进入目标project,在日志库列表中,单击目标logstore。
单击进入查询分析界面,单击查询/分析查看日志信息。
通过日志审计服务跨账号采集云产品日志
单击
,查看日志审计全局数据视图或单击 ,查看云产品全局数据视图。
清理资源
在本方案中,您为两个账号分别创建了1台云服务器ECS实例、1个日志服务project和1个对象存储OSS Bucket。测试完方案后,您可以参考以下规则处理对应产品的实例,避免继续产生费用:
释放2台云服务器ECS实例:
登录ECS控制台,在实例页面,找到目标实例,然后在操作列选择>释放设置,根据界面提示释放实例。
释放2个日志服务project:
登录日志服务控制台,进入目标Project,然后在左侧日志库列表中单击目标日志库,进入数据接入 > Logtail配置,删除Logtail。单击 > 删除,删除日志库。最后在日志服务控制台首页,删除目标Project。
释放2个对象存储OSS Bucket:
登录对象存储OSS控制台,在文件列表页面,找到文件,然后在文件右侧操作列,选择>彻底删除,根据界面提示删除文件。然后在左侧导航栏,选择删除Bucket,在删除Bucket页面,单击删除Bucket,然后根据界面提示删除Bucket。
一键部署
30
https://www.aliyun.com/solution/tech-solution/cacac_logs
方案概览
当您希望在统一的位置收集多个账号里的应用日志、或需要进行合并不同账号下的云产品日志进行数据分析时,需要进行跨阿里云账号采集日志。
本技术解决方案以跨阿里云账号采集日志为例,为您演示:
如何通过Logtail跨账号采集ECS服务器日志。
如何通过日志审计服务跨账号采集对象存储OSS日志。
方案架构
本方案的技术架构包括以下基础设施和云服务:
阿里云产品包括但不限于对象存储OSS、数据库RDS、负载均衡SLB等均可通过日志审计服务完成跨账号采集日志,本文以跨账号采集对象存储OSS日志为例。
2个阿里云账号:实现跨账号数据采集。
2个云服务器ECS:2个阿里云账号分别部署1个云服务器ECS,用于产生相关日志数据进行采集。
2个日志服务SLS:2个阿里云账号分别开通1个日志服务SLS,用于互相采集数据进行分析。
2个对象存储OSS:2个阿里云账号分别开通1个对象存储OSS,用于产生相关日志进行采集。
部署准备
10
开始部署前,请按以下指引完成账号申请、账号充值、RAM用户创建和授权。
准备账号
如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,本方案需要申请两个阿里云账号。
阿里云账号拥有操作资源的最高权限,从云资源安全角度考虑,建议您创建RAM用户。RAM用户需要获得相关云服务的访问权限才能完成方案部署。
云服务
需要的权限
描述
云服务器ECS
AliyunECSFullAccess
管理云服务器ECS的权限
日志服务SLS
AliyunLogFullAccess
管理日志服务SLS的权限
对象存储OSS
AliyunOSSFullAccess
管理对象存储OSS的权限
创建RAM用户并进行授权的操作指引请参见创建RAM用户及授权。
一键部署
15
一键部署基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,ROS模板已定义好脚本,可自动化地完成云资源的创建和配置,提高资源的创建和部署效率。ROS模板完成的内容包括:
操作步骤
通过Logtail跨账号采集ECS日志
在账号B中创建RAM角色并完成授权。
使用账号B登录RAM控制台。
创建RAM角色。
其中,选择选择可信实体类型为阿里云账号,设置选择信任的云账号为其他云账号并输入账号A的ID。具体操作,请参见创建可信实体为阿里云账号的RAM角色。
记录该RAM角色名称,您在配置ROS模板时需输入该名称。
授予RAM角色AliyunECSFullAccess权限和AliyunSTSAssumeRoleAccess权限。
具体操作,请参见为RAM角色授权。
在账号A中配置ROS模板。
单击一键配置ROS模板链接,打开ROS控制台。
系统自动打开使用新资源创建资源栈的面板。
在页面上面菜单栏中,选择地域。
该地域需为您账号A下的日志服务Project所在地域。
输入日志服务信息。
参数
说明
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"
日志路径
根据日志在ECS实例上的位置,设置日志文件路径。
如果是Linux系统中的日志路径,必须以正斜线(/)开头,例如/apsara/nuwa。
如果是Windows系统中的日志路径,必须以盘符开头,例如C:\Program Files\Intel。
日志文件名
设置日志文件的名称。
设置B账号信息。
参数
说明
阿里云账号B的uid
阿里云账号B的ID。您可以在账号中心查看阿里云账号ID。
扮演账号B的角色名称
输入您在步骤1中创建的RAM角色的名称。
账号B下的ECS实例Id
日志所在的ECS实例ID。
单击创建。
当资源栈信息页签的状态栏变成已创建时,表示已完成资源和模型部署。
通过日志审计服务跨账号采集云产品日志
打开一键配置ROS模板链接前往ROS控制台,系统自动打开使用新资源创建资源栈的面板。
选择鉴权模式进行资源创建。
重要仅支持企业账号开通资源管理(Resource Management),个人账号请通过自定义鉴权模式(User-defined)完成多账号配置。
选择鉴权模式为Resource Management,单击创建,当资源栈信息页签的状态栏变成已创建时,表示已完成资源和模型部署。
选择鉴权模式为User-defined,输入AccessKey ID和AccessKey Secret,并单击创建。AccessKey说明,请参见自定义鉴权管理模式。
当资源栈信息页签的状态栏变成已创建时,表示已完成资源和模型部署。
完成及清理
10
方案验证
完成跨账号日志采集后,您可以通过日志服务控制台查看相关数据。
通过Logtail跨账号采集ECS日志
登录日志服务控制台。
进入目标project,在日志库列表中,单击目标logstore。
单击进入查询分析界面,单击查询/分析查看日志信息。
通过日志审计服务跨账号采集云产品日志
单击
,查看日志审计全局数据视图或单击 ,查看云产品全局数据视图。
清理资源
在本方案中,您为两个账号分别创建了1台云服务器ECS实例、1个日志服务project和1个对象存储OSS Bucket。测试完方案后,您可以参考以下规则处理对应产品的实例,避免继续产生费用:
释放2台云服务器ECS实例:
登录ECS控制台,在实例页面,找到目标实例,然后在操作列选择>释放设置,根据界面提示释放实例。
释放2个日志服务project:
登录日志服务控制台,进入目标Project,然后在左侧日志库列表中单击目标日志库,进入数据接入 > Logtail配置,删除Logtail。单击 > 删除,删除日志库。最后在日志服务控制台首页,删除目标Project。
释放2个对象存储OSS Bucket:
登录对象存储OSS控制台,在文件列表页面,找到文件,然后在文件右侧操作列,选择>彻底删除,根据界面提示删除文件。然后在左侧导航栏,选择删除Bucket,在删除Bucket页面,单击删除Bucket,然后根据界面提示删除Bucket。