在实际业务场景中,日志由不同的应用程序、服务、云产品生成,存储在不同地域的Project或同一地域的不同LogStore中。日志服务提供StoreView功能,支持跨地域、跨Store联合查询能力。
工作原理
StoreView(数据集)、LogStore都是属于Project的资源,但StoreView不是存储日志的实体资源,而是基于LogStore实现的虚拟资源,用于保存多个LogStore的关联关系。StoreView支持关联多个LogStore,但不能关联其他StoreView。用户可以通过StoreView对不同LogStore中的日志进行统一查询,但不能通过StoreView修改日志。
在StoreView中不同store的日志内容支持关联查询,如LogStore1、LogStore2中均包含age字段,同时LogStore1、LogStore2通过StoreView1关联,则在StoreView1中查询age字段将返回LogStore1、LogStore2中的全部结果。
数据集相关权限
使用RAM用户或扮演RAM角色使用StoreView时,需要具备相应的权限。使用阿里云主账号为RAM用户或RAM角色授权的操作步骤,请参见创建RAM用户及授权、创建可信实体为阿里云服务的RAM角色及授权和使用RAM角色实现跨云账号的资源访问。
您可以为用户授予系统权限策略或自定义权限策略。
系统权限策略:统一由阿里云创建,用户只能使用,不能修改,策略的版本更新由阿里云维护。
日志服务的只读权限AliyunLogReadOnlyAccess。
日志服务的管理权限AliyunLogFullAccess。
自定义权限策略:用户可以自主创建、更新和删除,策略的版本更新由用户自己维护。
新建StoreView或在StoreView中查询时,RAM用户或RAM角色需要具有关联的所有LogStore的GetLogs - 查询日志库日志权限,即在自定义权限策略中添加如下内容:
{ "Action": "log:GetLogs", "Resource":[ "acs:log:*:*:project/${projectName}/logstore/*", "acs:log:*:*:project/${projectName}/StoreView/*" ] "Effect": "Allow" }
使用限制
每个Project最多创建10个StoreView。
每个StoreView最多关联50个LogStore。
StoreView中的所有LogStore必须属于同一个阿里云主账号,否则,在StoreView查询日志时会报错。
前提条件
新建数据集
登录日志服务控制台。
在Project列表区域,单击目标Project。
在控制台左边导航栏选择数据集>日志型数据集,单击新建StoreView。
在创建数据集对话框,输入数据集名称,添加关联的LogStore,然后单击确定。
警告数据集名称的限制:
数据集名称仅支持小写字母、数字和下划线(_)。
开头只能是字母或下划线,结尾必须是小写字母和数字。
名称长度为3~63个字符。
StoreView创建需要等待大约一分钟。
如果存在跨境联合查询场景,需要阅读数据跨境合规承诺,并单击确定。