本文以JSON類型的網站日誌為例,介紹查詢和分析的步驟,並提供SQL樣本。
前提條件
為了進行後續的日誌分析,您需要先採集JSON格式文本日誌。
步驟一:建立索引
在Project列表地區,單擊目標Project。

在頁簽中,單擊目標Logstore。

在LogStore的查詢和分析頁面的右上方,選擇。如果還未建立索引,需要先單擊開啟索引。全文索引和欄位索引的更多資訊、建立索引的詳細步驟,請參見建立索引。
說明如果需要查詢日誌中的所有欄位,建議使用全文索引。如果只需查詢部分欄位、建議使用欄位索引,減少索引流量。如果需要對欄位進行分析(SELECT語句),必須建立欄位索引。
配置欄位索引。以下是JSON格式的日誌樣本和對應欄位的配置。


__topic__、__source__、__tag__是系統的保留欄位,更多資訊請參見保留欄位。@timestamp、remote_addr、remote_user、http_referer、http_user_agent、status、server_protocal、http_x_forward_for、upstream_addr欄位不包含葉子節點,可以在content欄位下直接建立索引。request、time欄位包含葉子節點,而且葉子節點不是JSON數組。不能為
request、time這兩個父欄位本身建立索引,也不能查詢分析這兩個父欄位。可以為
request、time下的葉子節點建立索引,需要指定完整的路徑,從最外層的父欄位到最內層的葉子節點。格式為KEY1.KEY2.KEY3,例如time.request_time、time.upstream_response_time。建立索引後,可以查詢time.request_time、time.upstream_response_time欄位。
body_bytes_sent欄位的值為JSON數組,不能建立索引,也不能為葉子節點建立索引。不能查詢分析body_bytes_sent欄位或body_bytes_sent的葉子節點。
步驟二:重建索引
配置索引後,只對新採集的資料生效。如果您要查詢歷史資料,請使用重建索引功能。具體操作,請參見重建索引。
步驟三:查詢和分析日誌
您可以在LogStore的查詢和分析頁面,輸入查詢和分析語句,選擇時間範圍,進行日誌查詢操作。對於分析語句(SELECT語句),必須使用雙引號("")包裹欄位名稱,使用單引號('')包裹字串。查詢和分析日誌的詳細步驟,請參見查詢與分析快速指引。查詢分析JSON日誌的常見問題,請參見查詢和分析JSON日誌的常見問題。
查詢請求狀態為200的日誌。
content.status:200查詢請求長度大於70的日誌。
content.request.request_length > 70查詢GET請求的日誌。
content.request.request_method:GET統計不同請求狀態對應的日誌數量。
* | SELECT "content.status", COUNT(*) AS PV GROUP BY "content.status"
計算不同請求時間長度對應的請求數量,並按照請求時間長度進行升序排序。
* | SELECT "content.time.request_time", COUNT(*) AS count GROUP BY "content.time.request_time" ORDER BY "content.time.request_time"
計算不同要求方法對應的平均請求時間長度。
* | SELECT avg("content.time.request_time") AS avg_time,"content.request.request_method" GROUP BY "content.request.request_method"