Logtail提供處理外掛程式用於將原始日誌進一步解析為結構化資料。
背景資訊
Logtail處理外掛程式可分為原生處理外掛程式和擴充處理外掛程式。
原生外掛程式:效能較優,適用於大部分業務情境,推薦優先使用。
擴充外掛程式:功能覆蓋更廣,當您的業務日誌過於複雜,無法使用原生外掛程式處理時,可以考慮使用擴充外掛程式完成日誌解析,但效能會受到一定影響。
使用限制
效能限制
使用Logtail擴充外掛程式進行Tlog時,Logtail會消耗更多的資源(以CPU為主),請根據實際情況調整Logtail的參數配置,更多資訊請參見設定Logtail啟動參數。
當未經處理資料量的產生速度超過5 MB/s時,不建議您使用過於複雜的外掛程式組合來處理日誌,您可以使用Logtail擴充外掛程式進行簡單處理,再通過資料加工完成進一步處理。
日誌採集限制
擴充外掛程式對文本日誌的處理採用行模式,即檔案層級的中繼資料(例如
__tag__:__path__
、__topic__
等)會被存放到每一條日誌中。添加擴充外掛程式後會影響和Tag相關的功能:
上下文查詢和LiveTail功能不可用。如果您要使用這些功能,需要額外添加aggregators配置。
__topic__
欄位會被重新命名為__log_topic__
。如果您添加了aggregators配置,日誌中將同時存在__topic__
欄位和__log_topic__
欄位。如果您不需要__log_topic__
欄位,可使用processor_drop外掛程式刪除該欄位。__tag__:__path__
等欄位不再具備原生欄位索引,需要建立欄位索引。
外掛程式組合限制
Logtail 2.0以下版本(不包括2.0版本):
不支援同時添加原生外掛程式和擴充外掛程式。
原生外掛程式僅可用於採集文本日誌。使用原生外掛程式時,須符合如下要求:
第一個處理外掛程式必須為正則解析外掛程式、分隔字元模式解析外掛程式、JSON解析外掛程式、Nginx模式解析外掛程式、Apache模式解析外掛程式或IIS模式解析外掛程式。
第一個處理外掛程式之後僅允許存在1個時間解析處理外掛程式,1個過濾外掛程式和多個脫敏外掛程式。
Logtail 2.0版本:擴充處理外掛程式只能出現在所有的原生處理外掛程式之後,不能出現在任何原生處理外掛程式之前。
原生外掛程式解析參數組合限制
對於Logtail 2.0以下版本的正則解析、JSON解析、分隔字元解析、Nginx模式解析、Apache模式解析、IIS模式解析的原生外掛程式,您可以根據不同情境選擇不同的參數配置組合。其餘的配置組合無效,Log Service不能保證配置效果。
只上傳解析成功的日誌:
解析成功時上傳解析後的日誌,解析失敗時上傳原始日誌:
解析成功時不僅上傳解析後的日誌,並且追加原始日誌欄位,解析失敗時上傳原始日誌。
例如,原始日誌
"content": "{"request_method":"GET", "request_time":"200"}"
解析成功,追加原始欄位是在解析後日誌的基礎上再增加一個欄位,欄位名為重新命名的原始欄位(如果不填則預設為原始欄位名),欄位值為原始日誌{"request_method":"GET", "request_time":"200"}
。
添加外掛程式
在修改Logtail配置時添加外掛程式
在Project列表地區,單擊目標Project。
在
頁簽中,單擊目標日誌庫前面的>,依次選擇 。在Logtail配置列表中,單擊目標Logtail配置後操作列的管理Logtail配置。
單擊頁面上方的編輯,在頁面下方的處理配置地區,新增Logtail外掛程式,然後單擊儲存。
在建立Logtail配置時添加外掛程式
單擊控制台頁面右側的快速接入資料卡片。
在接入資料對話方塊中,單擊任意卡片,按照設定精靈進行操作,在Logtail配置步驟中添加外掛程式。具體操作,請參見採集主機文本日誌。
說明該外掛程式配置與在修改Logtail配置時的外掛程式配置相同。
Logtail處理外掛程式列表
原生外掛程式列表
外掛程式名稱 | 說明 |
正則解析 | 使用Regex提取日誌欄位,並將日誌解析為索引值對形式。更多資訊,請參見正則解析。 |
JSON解析 | 將JSON日誌解析為索引值對形式。更多資訊,請參見JSON解析。 |
分隔字元模式解析 | 將分隔字元模式的日誌結構化,解析為索引值對形式。更多資訊,請參見分隔字元模式解析。 |
Nginx模式解析 | 將Nginx日誌結構化,解析為索引值對形式。更多資訊,請參見Nginx模式解析。 |
Apache模式解析 | 將Apache日誌結構化,解析為索引值對形式。更多資訊,請參見Apache模式解析。 |
IIS模式解析 | 將IIS日誌結構化,解析為索引值對形式。更多資訊,請參見IIS模式解析。 |
時間解析 | 解析日誌時間。更多資訊,請參見時間解析。 |
過濾處理 | 過濾日誌。更多資訊,請參見過濾處理。 |
脫敏處理 | 對日誌進行脫敏。更多資訊,請參見脫敏處理。 |
擴充外掛程式
功能 | 說明 |
提取欄位 | 使用正則模式提取欄位。更多資訊,請參見正則模式。 |
使用標定模式提取欄位。更多資訊,請參見標定模式。 | |
使用CSV模式提取欄位。更多資訊,請參見CSV模式。 | |
使用單字元分隔字元模式提取欄位。更多資訊,請參見單字元分隔字元模式。 | |
使用多字元分隔字元模式提取欄位。更多資訊,請參見多字元分隔字元模式。 | |
使用索引值對模式提取欄位。更多資訊,請參見索引值對模式。 | |
使用Grok模式提取欄位。更多資訊,請參見Grok模式。 | |
添加欄位 | 添加欄位。更多資訊,請參見添加欄位。 |
丟棄欄位 | 丟棄欄位。更多資訊,請參見丟棄欄位。 |
重新命名欄位 | 重新命名欄位。更多資訊,請參見重新命名欄位。 |
打包欄位 | 將一個或多個欄位打包為一個JSON Object格式的欄位。更多資訊,請參見打包欄位。 |
展開JSON欄位 | 對欄位值進行JSON展開。更多資訊,請參見展開JSON欄位。 |
過濾日誌 | 通過Regex匹配日誌欄位的值,從而實現日誌過濾。更多資訊,請參見processor_filter_regex。 |
通過Regex匹配日誌欄位名稱,從而實現日誌過濾。更多資訊,請參見processor_filter_key_regex。 | |
提取日誌時間 | 解析原始日誌中的時間欄位,並可將解析結果設定為日誌時間。更多資訊,請參見Go語言時間格式。 |
轉換IP地址 | 將日誌中的IP地址轉換為地理位置(國家、省份、城市、經緯度)。更多資訊,請參見轉換IP地址。 |
資料脫敏 | 將日誌中的敏感性資料替換為指定字串或MD5值。更多資訊,請參見資料脫敏。 |
欄位值對應 | 對欄位值進行映射。更多資訊,請參見欄位值對應處理。 |
欄位加密 | 對指定欄位進行加密。更多資訊,請參見欄位加密。 |
資料編碼與解碼 | 對欄位值進行解碼。更多資訊,請參見BASE64解碼。 |
對欄位值進行編碼。更多資訊,請參見BASE64編碼。 | |
對欄位值進行MD5編碼。更多資訊,請參見MD5編碼。 | |
Log轉為Metric | 將採集到的日誌轉成SLS Metric。更多資訊,請參見Log轉為Metric。 |
Log轉為Trace | 將採集到的日誌轉成SLS Trace。更多資訊,請參見Log轉為Trace。 |