日志服务数据加工最佳实践: 跨账号多源logstore数据汇总-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

日志服务数据加工最佳实践: 跨账号多源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。


image


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

进一步参考

欢迎扫码加入官方钉钉群获得实时更新与阿里云工程师的及时直接的支持:
image

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章