Logtail 混合模式:使用插件处理文件日志

  • 时间:
  • 浏览:1
  • 来源:大发彩神安卓下载—大发彩神官方下载

为此,Logtail 引入了 混合模式,一方面借助 Logtail 完善的事件机制来保证数据读取阶段的可靠性,买车人面,依赖于插件系统富于的插件,来加强 Logtail 对僵化 日志的正确处理能力。

假设朋友所分发的是单行文本日志,原始日志内容如下:

选着你时需修改的配置所属的 project_nameconfig_name,把插件正确处理配置保存到任意文件(比如 plugin_config.json)后,调用脚本传入这有另4个参数即可。

如上图上边次要所示,纯 Logtail 的核心正确处理次要由日志切分(Splitter)和日志解析(Parser)组成,根据选着的日志分发模式,日志切分把读取的文件内容切割成为每根条日志(比如单行基于换行符、多行基于行首正则),以后交由日志解析从单条日志中提取字段。由此可见,日志的分发模式固定了正确处理行为,比如完整正则模式要求日志时需完整符合设置的正则表达式,以后会报错。这种 基于分发模式的固定行为,拥有更好的性能,但牺牲了灵活性。

相比之下,混合模式则是牺牲一定的性能和计算资源来换取灵活性,以应对更为僵化 的场景。如上图所示,在混合模式下,Logtail 会将日志切分的结果直接提交给插件进行正确处理,在后者中,朋友可不不需要 组合多种正确处理插件,来满足朋友的需求。

注意:此配置仅在混合模式下时需,以后使用的纯自定义插件的分发配置,可不不需要 忽略。

参考此配置时时需根据实际情形调整行首正则表达式(SplitRegex)。

总的来说,切分时所时需考虑的情形有单行日志和多行日志某种,以下将分别介绍。

在完成文本模式的分发配置创建后,朋友可不不需要 通过 API/SDK 的妙招 加进构建好的插件正确处理配置。此处,朋友借助 CLI 来实现这种 过程,代码如下:

从先前的介绍中可不不需要 看出,混合模式的分发配置实质上是文本模式的分发配置附加进额外的插件正确处理配置,以后,配置它的入口依旧是创建文本模式的分发配置:以后是单行日志,创建 极简模式 的分发配置,以后是多行日志,创建 完整正则模式 的分发配置,并切换至多行模式,设置行首正则表达式。

前文的说明中本来我提到,出于性能考虑,Logtail 提交给插件次要的数据从不是单条日志,本来我日志的组合,时需在插件正确处理配置的开始了了增加特定插件进行二次切分。

该日志由 时间多组键值对JSON 对象 三次要组成,分别使用 空格制表符 进行分隔,其中多组键值对次要使用 _'_ 分隔键值对,>-> 分隔键和值。

以下是当前所支持的正确处理插件,关于具体插件怎么能否 使用可参考文档正确处理分发数据。

以下示例在极简模式下使用 processor_add_fields 插件为每条日志增加有另4个固定的字段。从两张截图的区别可不不需要 发现,页面在默认配置中自动地填充了 processor_split_log_string 来实现按行二次切分。

如上示例表示使用有另4个 processor_regex 插件进行日志正确处理,第有另4个插件根据配置的 Regex 参数对日志中的 content 字段进行正则提取,结果为 Keys 参数指定的有另4个字段,而第3个插件对上一步提取得到的 main_msg 字段再次进行正则提取,得到更多的字段。

从整体来看,Logtail 的分发模式可不不需要 划分为以下某种:

为了方便分析,朋友希望将日志的内容提取成如下的字段:

插件正确处理配置使用 JSON 对象进行表示,配置的 key 为 processors,value 是 JSON 对象的数组,数组内的每有另4个 JSON 对象表示有另4个正确处理插件的配置,正确处理时将按照数组内的定义顺序依次执行。数组内的每个 JSON 对象包所含另4个字段:typedetailtype 表示正确处理插件的类型(JSON string),detail 表示该插件的完整参数(JSON 对象,key 为参数名,value 为参数值)。

如上是朋友所创建的混合模式分发配置中的插件正确处理配置次要,由 4 个正确处理插件组成:

可不不需要 都看,多条单行日志被一次性输入到插件正确处理中,以后,朋友时需配置有另4个针对单行日志的切分插件,即先前列表中最后的 processor_split_log_string。对于单行日志,可不不需要 直接复用如下配置:

在 SLS 控制台上,朋友可不不需要 通过 高级选项-启用插件正确处理 来启用混合模式。

类似地,多行日志在提交给插件次要时也时需使用 processor_split_log_regex 进行基于行首正则的切分,配置如下(假设日志开头为常见的 [] 寄快递包裹 时间):

在 API/SDK 的妙招 下,朋友时需根据所选模式(JSON、分隔符等)来对二次切分的插件进行配置。而在控制台上使用混合模式时,页面以后根据所选的模式,自动地生成相应的默认配置,朋友只时需配置针对单条日志的正确处理即可。通过 显示/隐藏默认配置,朋友可不不需要 查看插件配置的完整内容。

假设单行日志的内容是 2019-09-23 14:08:16.952 [INFO] hello world,则 Logtail 提交给插件次要的数据内容以后是:

作为有另4个服务百万机器的日志分发 agent,Logtail 目前以后提供了包括日志切分、日志解析(完整正则、JSON、分隔符)、日志过滤在内的常见正确处理功能,不需要 应对绝大多数场景的正确处理需求。但某些以后,以后应用的历史意味或是某种业务日志的僵化 性,单一功能以后无法满足所分发日志的正确处理需求,比如: