Log Service支援對每一個源Logstore配置一個資料加工任務,實現多源Logstore的資料匯總到同一個Logstore。本文介紹多源Logstore資料匯總的典型應用情境和操作步驟。
背景資訊
某資訊網站業務分布全球,不同資訊頻道的使用者訪問日誌被採集儲存在阿里雲不同帳號中的Logstore,如果需要將日誌資料匯總到一個Logstore,便於後續的查詢與分析,可以使用e_output函數進行資料加工。
本文以同一目的地區域英國(倫敦)的不同Logstore的日誌為例,介紹匯總Logstore資料的操作步驟:
帳號1中的原始日誌,其Project地區位於英國(倫敦),Project名稱為Project_1,Logstore名稱為Logstore_1。
"日誌1" request_id: 1 http_host: example.com http_status: 200 request_method: GET request_uri: /pic/icon.jpg "日誌2" request_id: 2 http_host: aliyundoc.com http_status: 301 request_method: POST request_uri: /data/data.php
帳號2中的日誌,其Project地區為英國(倫敦),Project名稱為Project_2,Logstore名稱為Logstore_2。
"日誌1" request_id: 3 host: example.edu status: 404 request_method: GET request_uri: /category/abc/product_id "日誌2" request_id: 4 host: example.net status: 200 request_method: GET request_uri: /data/index.html
加工目標
將帳號1的Logstore_1中所有
http_status
為200
的日誌事件,輸出到帳號3的Logstore_3中。對於帳號2的Logstore_2中所有
http_status
為200
的日誌事件,將欄位名稱host
改為http_host
、欄位名稱status
改為http_status
(與Logstore1統一),然後輸出到帳號3的Logstore_3中。
步驟一:配置Logstore1的資料加工規則
步驟二:配置Logstore2的資料加工規則
進入帳號2的Logstore_2的資料加工頁面,控制台操作步驟請參見建立資料加工任務。
在資料加工頁面,配置如下加工規則。對於Logstore_2中所有
http_status
為200
的日誌事件,將欄位名稱host
改為http_host
、欄位名稱status
改為http_status
(與Logstore1統一),然後輸出到帳號3的Logstore_3中。e_if(e_match("status", "200"), e_compose(e_rename("status", "http_status", "host", "http_host"), e_output("target_logstore")))
預覽結果
建立資料加工任務,在儲存目標地區,配置目標名稱、目標Region、目標Project、目標Logstore等參數如下,授權方式參數說明請參見建立資料加工任務。
查看匯總結果
在英國(倫敦)地區的Logstore_3
中查詢和分析日誌,日誌樣本如下。
"日誌1"
request_id: 1
http_host: example.com
http_status: 200
request_method: GET
request_uri: /pic/icon.jpg
"日誌2"
request_id: 4
http_host: example.net
http_status: 200
request_method: GET
request_uri: /data/index.html