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。 |