當您為Logstore關聯了資料寫入處理器後,可以通過處理器對日誌資料進行處理。例如將某網站的訪問日誌(單行文本)採集到Logstore,您可以建立一個寫入處理器,解析原始日誌,提取出有效日誌欄位,進行查詢和分析。
前提條件
已有可用的ECS。具體操作,請參見Elastic Compute Service快速入門。
已開通Log Service。具體操作,請參見開通Log Service。
如果您使用的是RAM使用者,需要先授予RAM使用者資料寫入處理器的操作許可權。具體操作,請參見授權RAM使用者進行資料處理。
方案概覽
本方案通過Logtail的方式採集Nginx訪問日誌,然後通過寫入處理器將單行日誌解析成${key}:${value}格式,最後將日誌輸出到Logstore,具體流程如下:
Logtail採集日誌:開通Log Service,使用Logtail採集ECS主機Nginx日誌,將日誌採集到Logstore中。
配置寫入處理器:配置SPL語句對原始日誌進行解析。
關聯寫入處理器:Logstore關聯目標寫入處理器,新產生的日誌在寫入Logstore之前,經過寫入處理器完成解析,解析後的日誌寫入到Logstore進行查詢和分析。
1. Logtail採集日誌
1.1 建立Project和Logstore
建立Project。
在Project列表地區,單擊建立Project,例如建立地區為
菲律賓(馬尼拉),名稱為web-project-test的Project。詳細配置,請參見管理Project。
建立Logstore。
建立Project完成後,系統會提示您建立一個Logstore。比如建立名稱為
website_log的Logstore。詳細配置,其請參見管理Logstore。
1.2 採集Nginx訪問日誌
某網站將其Nginx訪問日誌儲存在ECS主機的/var/log/nginx/access.log中,日誌預設單行輸出,access.log內容如下:
192.168.1.75 - David [2024-07-31T14:27:24+08:00] "PUT /request/path-0/file-8 HTTP/1.1" 819 21577 403 73895 www.test5.com www.test2.com "Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1"使用Logtail採集ECS主機Nginx日誌,操作步驟,請參見採集主機文本日誌。將/var/log/nginx/access.log的日誌採集到website_log,查詢/分析如下圖。

您也可以使用SDK的方式進行採集,詳細請參見Java SDK快速入門。更多資訊,請參見資料擷取概述。
2. 配置寫入處理器
2.1 進入資料處理器頁
在Project列表地區,單擊
web-project-test。
在左側導覽列單擊。

2.2 建立寫入處理器
在頁簽,單擊建立。

在建立處理器面板,參考下圖配置,然後單擊確定。

SPL配置如下,寫入處理器處理資料基於SPL實現。更多SPL資訊,請參見SPL文法。
* | parse-regexp content, '(\S+)\s-\s(\S+)\s\[(\S+)\]\s"(\S+)\s(\S+)\s(\S+)"\s(\d+)\s(\d+)\s(\d+)\s(\d+)\s(\S+)\s(\S+)\s"(.*)"' as remote_addr, remote_user, time_local, request_method, request_uri, http_protocol, request_time, request_length, status, body_bytes_sent, host, referer, user_agent | project-away content | extend __topic__ = request_method
3. 關聯寫入處理器
3.1 Logstore關聯寫入處理器
在左側導覽列,單擊日誌儲存,將滑鼠懸浮在上
website_log上,單擊。
在
website_log屬性頁面,單擊右上方修改,在編輯狀態下配置寫入處理器,選擇您建立的解析Nginx日誌寫入處理器,然後單擊儲存。
3.2 查詢和分析
在左側導覽列單擊日誌儲存,在日誌查詢頁面,查看解析之後的日誌,如下圖。
關聯寫入處理器之後,會對新產生的日誌生效,您需要等待1分鐘左右,在日誌查詢頁面可以查看解析之後的日誌。
