当您的业务日志太复杂或不固定,固定解析模式(Nginx模式、完整正则模式、JSON模式等)无法满足日志解析需求时,您可以使用Logtail插件解析日志。您可添加一个或多个Logtail插件处理配置,Logtail会根据处理配置顺序逐一执行。
使用限制
- 性能限制
使用Logtail插件进行数据处理时,Logtail会消耗更多的资源(以CPU为主),请根据实际情况调整Logtail的参数配置。更多信息,请参见配置Logtail启动参数。当原始数据量的生成速度超过5 MB/s时,不建议您使用过于复杂的插件组合来处理数据,您可以使用Logtail插件进行简单处理,再通过数据加工完成进一步处理。
- 文本日志限制
在固定解析模式基础上,日志服务支持通过插件处理采集到的文本日志,更多信息,请参见使用插件处理文本日志,但存在以下限制:
- 启用插件处理后,部分文本模式的高级功能将失效,包括过滤器配置、上传原始日志、机器时区、丢弃解析失败日志、接受部分字段(分隔符模式)等,但其中部分功能可通过相关插件实现。
- 插件对文本日志的处理采用行模式,即文件级别的元数据(例如__tag__:__path__、__topic__等)会被存放到每条日志中,启用插件处理后会影响和Tag相关的功能,包括:
- 无法使用上下文查询、LiveTail功能,这些功能依赖于__tag__:__path__等字段。
- __topic__字段会被重命名为__log_topic__。
- __tag__:__path__等字段不再具备原生字段索引,需单独创建索引。
配置说明
处理配置的Key为processors,Value为JSON Object数组,数组内每个Object代表一个处理配置。
一个处理配置包含两个字段:type和detail,其中type为该处理配置所使用的Logtail插件名称,detail为详细配置,示例如下:
"processors" : [
{
"type" : "processor_split_char",
"detail" : {"SourceKey" : "content",
"SplitSep" : "|",
"SplitKeys" : ["method", "type", "ip", "time", "req_id", "size", "detail"]
}
},
{
"type" : "processor_anchor",
"detail" : "SourceKey" : "detail",
"Anchors" : [
{
"Start" : "appKey=",
"Stop" : ",env=",
"FieldName" : "appKey",
"FieldType" : "string"
}
]
}
]
您可以使用Logtail插件完成如下操作。
Logtail插件 | 说明 |
---|---|
processor_regex | 使用processor_regex插件(正则模式)提取字段。更多信息,请参见正则模式。 |
processor_anchor | 使用processor_anchor插件(标定模式)提取字段。更多信息,请参见标定模式。 |
processor_split_char | 使用processor_split_char插件(单字符分隔符模式)提取字段。更多信息,请参见单字符分隔符模式。 |
processor_split_string | 使用processor_split_string插件(多字符分隔符模式)提取字段。更多信息,请参见多字符分隔符模式。 |
processor_split_key_value | 使用processor_split_key_value插件(键值对模式)提取字段。更多信息,请参见键值对模式。 |
processor_add_fields | 使用processor_add_fields插件添加字段。更多信息,请参见添加字段。 |
processor_drop | 使用processor_drop插件丢弃字段。更多信息,请参见丢弃字段。 |
processor_rename | 使用processor_rename插件重命名字段。更多信息,请参见重命名字段。 |
processor_packjson | 使用processor_packjson插件将一个或多个字段打包为一个JSON Object格式的字段。更多信息,请参见打包字段。 |
processor_json | 使用processor_json插件对字段值进行JSON展开。更多信息,请参见展开JSON字段。 |
processor_filter_regex | 使用processor_filter_regex插件过滤日志。更多信息,请参见过滤日志。 |
processor_gotime | 使用processor_gotime插件(Go语言时间格式)解析原始日志中的时间字段,并可将解析结果设置为日志时间。更多信息,请参见Go语言时间格式。 |
processor_strptime | 使用processor_strptime插件(strptime时间格式)解析原始日志中的时间字段,并可将解析结果设置为日志时间。更多信息,请参见strptime时间格式。 |
processor_geoip | 使用processor_geoip插件将数据中的IP地址转换为地理位置(国家、省份、城市、经纬度)。更多信息,请参见转换IP地址。 |
在文档使用中是否遇到以下问题
更多建议
匿名提交