Logtail提供處理插件用于將原始日志進一步解析為結構化數據。
背景信息
Logtail處理插件可分為原生處理插件和擴展處理插件。
原生插件:性能較優,適用于大部分業務場景,推薦優先使用。
擴展插件:功能覆蓋更廣,當您的業務日志過于復雜,無法使用原生插件處理時,可以考慮使用擴展插件完成日志解析,但性能會受到一定影響。
使用限制
性能限制
使用Logtail擴展插件進行日志處理時,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模式解析的原生插件,您可以根據不同場景選擇不同的參數配置組合。其余的配置組合無效,日志服務不能保證配置效果。
只上傳解析成功的日志:
解析成功時上傳解析后的日志,解析失敗時上傳原始日志:
解析成功時不僅上傳解析后的日志,并且追加原始日志字段,解析失敗時上傳原始日志。
例如,原始日志
"content": "{"request_method":"GET", "request_time":"200"}"
解析成功,追加原始字段是在解析后日志的基礎上再增加一個字段,字段名為重命名的原始字段(如果不填則默認為原始字段名),字段值為原始日志{"request_method":"GET", "request_time":"200"}
。
添加插件
在修改Logtail配置時添加插件
登錄日志服務控制臺。
在Project列表區域,單擊目標Project。
在
頁簽中,單擊目標日志庫前面的>,依次選擇 。在Logtail配置列表中,單擊目標Logtail配置后操作列的管理Logtail配置。
單擊頁面上方的編輯,在頁面下方的處理配置區域,新增Logtail插件,然后單擊保存。
在創建Logtail配置時添加插件
Logtail處理插件列表
原生插件列表
插件名稱 | 說明 |
正則解析 | 使用正則表達式提取日志字段,并將日志解析為鍵值對形式。更多信息,請參見正則解析。 |
JSON解析 | 將JSON日志解析為鍵值對形式。更多信息,請參見JSON解析。 |
分隔符模式解析 | 將分隔符模式的日志結構化,解析為鍵值對形式。更多信息,請參見分隔符模式解析。 |
Nginx模式解析 | 將Nginx日志結構化,解析為鍵值對形式。更多信息,請參見Nginx模式解析。 |
Apache模式解析 | 將Apache日志結構化,解析為鍵值對形式。更多信息,請參見Apache模式解析。 |
IIS模式解析 | 將IIS日志結構化,解析為鍵值對形式。更多信息,請參見IIS模式解析。 |
時間解析 | 解析日志時間。更多信息,請參見時間解析。 |
過濾處理 | 過濾日志。更多信息,請參見過濾處理。 |
脫敏處理 | 對日志進行脫敏。更多信息,請參見脫敏處理。 |
擴展插件
功能 | 說明 |
提取字段 | 使用正則模式提取字段。更多信息,請參見正則模式。 |
使用標定模式提取字段。更多信息,請參見標定模式。 | |
使用CSV模式提取字段。更多信息,請參見CSV模式。 | |
使用單字符分隔符模式提取字段。更多信息,請參見單字符分隔符模式。 | |
使用多字符分隔符模式提取字段。更多信息,請參見多字符分隔符模式。 | |
使用鍵值對模式提取字段。更多信息,請參見鍵值對模式。 | |
使用Grok模式提取字段。更多信息,請參見Grok模式。 | |
添加字段 | 添加字段。更多信息,請參見添加字段。 |
丟棄字段 | 丟棄字段。更多信息,請參見丟棄字段。 |
重命名字段 | 重命名字段。更多信息,請參見重命名字段。 |
打包字段 | 將一個或多個字段打包為一個JSON Object格式的字段。更多信息,請參見打包字段。 |
展開JSON字段 | 對字段值進行JSON展開。更多信息,請參見展開JSON字段。 |
過濾日志 | 通過正則表達式匹配日志字段的值,從而實現日志過濾。更多信息,請參見processor_filter_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。 |