处理插件概述

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模式解析的原生插件,您可以根据不同场景选择不同的参数配置组合。其余的配置组合无效,日志服务不能保证配置效果。

    • 只上传解析成功的日志:

      image

    • 解析成功时上传解析后的日志,解析失败时上传原始日志:

      image

    • 解析成功时不仅上传解析后的日志,并且追加原始日志字段,解析失败时上传原始日志。

      例如,原始日志"content": "{"request_method":"GET", "request_time":"200"}"解析成功,追加原始字段是在解析后日志的基础上再增加一个字段,字段名为重命名的原始字段(如果不填则默认为原始字段名),字段值为原始日志{"request_method":"GET", "request_time":"200"}

      image

添加插件

在修改Logtail配置时添加插件

  1. 登录日志服务控制台

  2. 在Project列表区域,单击目标Project。

    image

  3. 日志存储 > 日志库页签中,单击目标日志库前面的>,依次选择数据接入 > Logtail配置

    image

  4. Logtail配置列表中,单击目标Logtail配置后操作列的管理Logtail配置

  5. 单击页面上方的编辑,在页面下方的处理配置区域,新增Logtail插件,然后单击保存

在创建Logtail配置时添加插件

  1. 登录日志服务控制台

  2. 单击控制台页面右侧的快速接入数据卡片。

    image

  3. 接入数据对话框中,单击任意卡片,按照配置向导进行操作,在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