概述
在跨账号同Region下的不同logstore之间操作数据并汇总数据. 日志服务数据目前支持多源logstore汇总到一个目标的方式是通过对每一个源logstore配置一份数据加工任务来实现的.
注意 目前数据加工仅支持同Region下分发
原始日志
"""
账号1的logstore中的日志
Prject区域:英国(伦敦)
Project名称:Project_1
logstore名称: Logstore_1
"""
"日志1"
request_id: 1
http_host: m1.abcd.com
http_status: 200
request_method: GET
request_uri: /pic/icon.jpg
"日志2"
request_id: 2
http_host: m2.abcd.com
http_status: 301
request_method: POST
request_uri: /data/data.php
"""
账号2的logstore中的日志
Prject区域:英国(伦敦)
Project名称:Project_2
logstore名称: Logstore_2
"""
"日志1"
request_id: 3
host: m3.abcd.com
status: 404
request_method: GET
request_uri: /category/abc/product_id
"日志2"
request_id: 4
host: m4.abcd.com
status: 200
request_method: GET
request_uri: /data/index.html
汇总目标
- 将账号1的Logstore_1和账号2下的Logstore_2中所有
http_status
为200
日志事件汇总到账号3下的Logstore_3中。 - 统一两个Logstore中日志事件的字段表达(host -> http_host, status -> http_status)
LOG DSL规则
- 首先在账号1的Logstore_1中配置如下加工规则
e_if(e_match("http_status", "200"), e_output("target_logstore"))
并且在该加工规则的任务配置项中配置存储目标target_logstore
为账号3下面的Logstore_3。
- 接着在账号2的Logstore_2中配置如下加工规则
e_if(e_match("status", "200"), e_compose(e_rename("status", "http_status", "host", "http_host"), e_output("target_logstore")))
同账号1一样,在该加工规则的任务配置项中配置存储目标target_logstore
为账号3下面的Logstore_3。
加工后的日志
"""
账号3的logstore中的日志
Prject区域:英国(伦敦)
Project名称:Project_3
logstore名称: Logstore_3
"""
"日志1"
request_id: 1
http_host: m1.abcd.com
http_status: 200
request_method: GET
request_uri: /pic/icon.jpg
"日志2"
request_id: 4
http_host: m4.abcd.com
http_status: 200
request_method: GET
request_uri: /data/index.html
进一步参考
欢迎扫码加入官方钉钉群获得实时更新与阿里云工程师的及时直接的支持: