数据分析:轻松合并多行日志

需求描述

使用鸿鹄处理日志数据的一个常用的需求是处理包含 Stacktrace 的日志,类似下面这样的日志:

在把上述日志导入到鸿鹄的时候我们希望鸿鹄能够把1~19行的日志当作一条Event来处理,而不是默认按行分割当成19条Event。

解决方案

在鸿鹄中,所有数据(Event)都有_datatype(数据源类型)的属性,用来标记 Event的数据源类型和结构。数据导入和查询分析时候用到的数据解析规则也是基于数据源类型来定义的。

以文件导入数据为例,在预览数据的步骤里面我们可以使用编辑数据源类型对数据的解析进行配置。

点击增加属性

在属性名称里面找到firstline_format

在属性值中填入匹配多行日志中第一行的格式的正则表达式:([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])) (0[1-9]|1[\d]|2[0-3]):(0[1-9]|[1-5][\d]):(0[1-9]|[1-5][\d]) [ERROR|INFO|DEBUG].*

  • 匹配YYYY-MM-dd HH::MM::SS这样的日志作为第一行

编辑之后会看到预览数据的变化,包含 Stacktrace 的多行日志在鸿鹄中会被当作一条Event来处理。

注意这里我们编辑的是内置的数据源类型,可以点击另存为保存为单独的数据源类型,方便后续的使用。

使用对应的数据源类型(my_datatype)搜索导入的数据,包含 Stacktrace 的日志会按照配置的规则合并成一条Event。

猜你喜欢

转载自blog.csdn.net/Yhpdata888/article/details/131539018