日志服务数据加工最佳实践: 跨账号多源logstore数据汇总

日志服务数据加工最佳实践: 跨账号多源logstore数据汇总

概述

在跨账号同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_status200日志事件汇总到账号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。


日志服务数据加工最佳实践: 跨账号多源logstore数据汇总


  • 接着在账号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

进一步参考

欢迎扫码加入官方钉钉群获得实时更新与阿里云工程师的及时直接的支持:
日志服务数据加工最佳实践: 跨账号多源logstore数据汇总

上一篇:qgis中加载天地图


下一篇:开源DSMC模拟软件-SPARTA