云日志服務(LTS)目前支持5種日志結構化方式,分別是正則分析、JSON、分隔符、Nginx和結構化模板。您可以根據日志內容的實際場景進行選擇。
正則分析
正則分析是使用正則表達式提取字段。
-
選擇示例日志:應選擇一條比較典型的日志作為示例日志。
-
從已有日志中選擇:單擊“從已有日志中選擇”,在彈出框中根據業務需求選擇待操作的日志,單擊“確定”。通過選擇不同時間段篩選日志。
-
從剪切板中粘貼:單擊“從剪切板中粘貼”,可直接自動將您剪切的日志內容復制到示例日志框中。
說明時間范圍有三種方式,分別是相對時間、整點時間和自定義。您可以根據自己的實際需求,選擇時間范圍。
相對時間:表示查詢距離當前時間1分鐘、5分鐘、15分鐘等時間區間的日志數據。例如當前時間為19:20:31,設置相對時間1小時,表示查詢18:20:31\~19:20:31的日志數據。
整點時間:表示查詢最近整點1分鐘、15分鐘等時間區間的日志數據。例如當前時間為19:20:31,設置整點時間1小時,表示查詢18:00:00\~19:00:00的日志數據。
自定義:表示查詢指定時間范圍的日志數據
-
-
字段提取。包括自動生成和手動輸入兩種方式,可將選擇的日志提取為以一個示例字段對應一個字段名稱的格式的日志解析結果。
- 自動生成:當用戶選擇自動生成時,可以用鼠標選中示例日志中待結構化的日志內容,在彈出的對話框中為選中內容設置一個名稱,名稱必須以字母開始,且僅包含字母和數字,單擊“添加”。
- 手動輸入:當用戶選擇手動輸入時,可以在輸入框中輸入正則表達式,單擊“生成字段”來進行字段提取。正則表達式通過分組來捕獲字段,分組指用圓括號"()"括起來的正則表達式,匹配出的內容就表示一個分組,分組包含如下三種形式:
- (exp):把括號內的正則作為一個分組,系統自動分配組號,規則為從正則表達式的左邊開始,第一個左括號”(”對應第一個分組,第二個”(”對應第二個分組,依次類推,組號從1開始,從左向右,依次累加。
- (?<name>exp):表示命名分組,分組的正則表達式為exp,分組名為name。分組名必須以字母開始,且僅包含字母和數字,可以通過分組名或分組號引用該分組。
- (?:exp):表示不捕獲分組,該分組只在當前位置匹配文本,在該分組之后,無法引用該分組,因為該分組沒有分組名,沒有分組號,也不會占用分組編號。
說明在手工輸入方式中,正則表達式的長度不能超過5000個字符,不強制要求用戶在輸入正則表達式時對分組進行命名,單擊“生成字段”會以命名分組中的分組名作為字段名稱,對于非命名分組會提取出對應的字段,并給字段名稱默認命名field1、field2、field3……。
-
單擊“保存”,完成日志結構化配置,初次設置完成后將不能對字段類型編輯修改。
JSON
JSON是通過提取JSON字段將其拆分為鍵值對。
-
選擇示例日志:應選擇一條比較典型的日志作為示例日志。在“步驟1 選擇示例日志”中,可單擊“從已有日志中選擇”,在彈出框中根據業務需求選擇待操作的日志,也可以直接在輸入框中輸入待操作的日志,單擊“確定”。通過選擇不同時間段篩選日志。
說明時間范圍有三種方式,分別是相對時間、整點時間和自定義。您可以根據自己的實際需求,選擇時間范圍。
相對時間:表示查詢距離當前時間1分鐘、5分鐘、15分鐘等時間區間的日志數據。例如當前時間為19:20:31,設置相對時間1小時,表示查詢18:20:31\~19:20:31的日志數據。
整點時間:表示查詢最近整點1分鐘、15分鐘等時間區間的日志數據。例如當前時間為19:20:31,設置整點時間1小時,表示查詢18:00:00\~19:00:00的日志數據。
自定義:表示查詢指定時間范圍的日志數據
-
字段提取。可將輸入或選擇的日志自動提取為以一個示例字段對應一個字段名稱的格式的日志解析結果。
在“步驟2 字段提取”下單擊“智能提取”。以如下原始日志為例進行分析:
將以下原始日志輸入待操作框中。
{"a1": "a1", "b1": "b1", "c1": "c1", "d1": "d1"}說明當日志提取字段的類型為float時,精度為16位有效數字。如果超過16位有效數字,則會導致提取字段內容不準確,從而影響可視化查看和快速分析,因此建議將字段類型修改為String。
當日志提取字段的類型為long時,日志內容超過16位有效數字,只會精確顯示前16位有效數字,后面的數字會變為0。
當日志提取字段的類型為long時,日志內容超過21位有效數字,則會識別為float類型,建議將字段類型修改為String。
在字段提取完成后,可對日志模板進行設置。結構化字段設置規則請參考設置結構化字段。
-
單擊“保存”,完成日志結構化配置,初次設置完成后將不能對字段類型編輯修改。
分隔符
分隔符是使用分隔符(例如:逗號、空格或字符)提取字段。
-
選擇示例日志:應選擇一條比較典型的日志作為示例日志。在“步驟1 選擇示例日志”中,可單擊“從已有日志中選擇”,在彈出框中根據業務需求選擇待操作的日志,也可以直接在輸入框中輸入待操作的日志,單擊“確定”。通過選擇不同時間段篩選日志。
說明時間范圍有三種方式,分別是相對時間、整點時間和自定義。您可以根據自己的實際需求,選擇時間范圍。
相對時間:表示查詢距離當前時間1分鐘、5分鐘、15分鐘等時間區間的日志數據。例如當前時間為19:20:31,設置相對時間1小時,表示查詢18:20:31\~19:20:31的日志數據。
整點時間:表示查詢最近整點1分鐘、15分鐘等時間區間的日志數據。例如當前時間為19:20:31,設置整點時間1小時,表示查詢18:00:00\~19:00:00的日志數據。
自定義:表示查詢指定時間范圍的日志數據
-
在“步驟2 指定分隔符”需要根據原始日志內容選擇分隔符,或自定義其他需要的特殊字符作為分隔符。
說明不可見字符需要輸入0x開頭的16進制字符,長度為0-4個字符,總共32個不可見字符。
自定義字符支持輸入1-10個字符,每個字符都作為獨立的分隔符。
自定義字符串支持輸入1-30個字符,字符串整體作為一個分隔符。
-
字段提取。可將輸入或選擇的日志自動提取為以一個示例字段對應一個字段名稱的格式的日志解析結果。
在“步驟3字段提取”下單擊“智能提取”。以如下原始日志為例進行分析:
將以下原始日志輸入待操作框中。
1 5f67944957444bd6bb4fe3b367de8f3d 1d515d18-1b36-47dc-a983-bd6512aed4bd 192.168.0.154 192.168.3.25 38929 53 17 1 96 1548752136 1548752736 ACCEPT OK ?說明當日志提取字段的類型為float時,精確度為7位有效數字。
如果超過7位有效數字的話,則會導致提取字段內容不準確,從而影響可視化查看和快速分析,因此建議將字段類型修改為String。
在字段提取完成后,可對日志模板進行設置。結構化字段設置規則請參考設置結構化字段。
-
單擊“保存”,完成日志結構化配置,初次設置完成后將不能對字段類型編輯修改。
Nginx
Nginx是通過log_format指令來自定義訪問日志的格式。
-
選擇示例日志:應選擇一條比較典型的日志作為示例日志。在“步驟1 選擇示例日志”中,可單擊“從已有日志中選擇”,在彈出框中根據業務需求選擇待操作的日志,也可以直接在輸入框中輸入待操作的日志,單擊“確定”。通過選擇不同時間段篩選日志。
說明時間范圍有三種方式,分別是相對時間、整點時間和自定義。您可以根據自己的實際需求,選擇時間范圍。
相對時間:表示查詢距離當前時間1分鐘、5分鐘、15分鐘等時間區間的日志數據。例如當前時間為19:20:31,設置相對時間1小時,表示查詢18:20:31\~19:20:31的日志數據。
整點時間:表示查詢最近整點1分鐘、15分鐘等時間區間的日志數據。例如當前時間為19:20:31,設置整點時間1小時,表示查詢18:00:00\~19:00:00的日志數據。
自定義:表示查詢指定時間范圍的日志數據
-
在“步驟2 輸入Nginx日志配置”中需要輸入Nginx日志配置,根據輸入或選擇的日志進行配置。其中有默認配置可使用,單擊“默認Nginx配置”即可。
標準Nginx配置文件中,日志配置的部分通常以log_format開頭。
日志格式- 默認配置如下所示。
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';- 用戶也可進行自定義配置,具體配置格式要求如下所示。
- 使用Nginx配置,不可為空
- 以log_format開頭,并且包含(')和字段名稱
- 長度最大限制為5000
- 需要與示例日志內容匹配
- log_format字段之間的間隔,除大小字母、數字、下劃線及中劃線外,可使用其他任意字符
- 以(')或者(';)結尾
-
字段提取。可將輸入或選擇的日志自動提取為以一個示例字段對應一個字段名稱的格式的日志解析結果。
在“步驟3 字段提取”下單擊“智能提取”。以如下原始日志為例進行分析:
將以下原始日志輸入待操作框中。
39.149.31.187 - - [12/Mar/2020:12:24:02 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-"并使用如下Nginx日志配置。
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; ?說明當日志提取字段的類型為float時,精確度為7位有效數字。
如果超過7位有效數字的話,則會導致提取字段內容不準確,從而影響可視化查看和快速分析,因此建議將字段類型修改為String。
在字段提取完成后,可對日志模板進行設置。結構化字段設置規則請參考設置結構化字段。
-
單擊“保存”,完成日志結構化配置,初次設置完成后將不能對字段類型編輯修改。
結構化模板
結構化模板是通過自定義模板或系統內置模板提取字段。
詳情請參考結構化模板。