Skip to main content

GrokReader

描述:

提供一种算法来读取非结构化的文本数据,比如日志文件,然后结构化的处理数据。该服务使用Grok模式来处理。该服务读取数据流并拆分成每个消息为记录。如果有输入行的内容不匹配期望的消息格式,则依赖于参数该内容将被作为前一条异常消息堆栈的一部分或者忽略。 A stack trace that is found at the end of a log message is considered to be part of the previous message but is added to the 'stackTrace' field of the Record. If a record has no stack trace, it will have a NULL value for the stackTrace field (assuming that the schema does in fact include a stackTrace field of type String). Assuming that the schema includes a '_raw' field of type String, the raw message will be included in the Record.

标签:

grok, logs, logfiles, parse, unstructured, text, record, reader, regex, pattern, logstash, 记录, 解析

参数:

如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置, 并且 参数还支持 表达式语言.

名字默认值允许值列表描述
Schema访问策略使用字符串字段的Grok表达式
- 使用字符串字段的Grok表达式使用Schema字段作为Grok表达式,所有字段都被假定为字符串类型。另外,有一个字段为 'stackTrace'且类型为字符串。
- 使用 'Schema名字' 属性Schema的名字通过'Schema名字'属性指定。通过Schema名字来从Schema注册服务中获取相应的Schema。
- 使用 'Schema内容' 属性通过指定 'Schema内容' 属性提供的自定义Schema内容。无论是否支持表达式,其Schema内容必须提供有效的Avro Schema。
- HWX Schema引用属性数据流包含3个用于从Schema注册的属性: 'schema.identifier', 'schema.version', 和 'schema.protocol.version'
- HWX Schema编码内容引用数据流的内容中包含了引用Schema注册服务的Schema, 引用由'协议版本'的单字符以及8位长度的Schema Id,和4位Schema版本信息组成,用于Hortonworks Schema注册的序列化和反序列化,可从https://github.com/hortonworks/registry中了解更多。
- Confluent Schema编码内容引用数据流的内容中包含了引用Schema注册服务的Schema,引用由一个单"魔法字符"和4位Schema id名组成,详细参加 http://docs.confluent.io/current/schema-registry/docs/serializer-formatter.html. 支持Confluent Schema注册的3.2.x版本。
指定如何从数据中获得Schema信息
Schema注册服务控制器服务API:
SchemaRegistry
实现:
AvroSchemaRegistry
ConfluentSchemaRegistry
HortonworksSchemaRegistry
指定Schema注册服务
Schema名字${schema.name}指定从Schema注册服务中获取相应Schema的名字

支持表达式语言 (支持流属性和变量)
Schema版本指定从Schema注册服务中获取相应Schema的版本,如果未指定,则表示最新版本的Schema

支持表达式语言 (支持流属性和变量)
Schema分支当从Schema注册服务中获取相应Schema时,需指定的Schema分支名字。如果指定的<Schema注册服务>不支持分支管理,则该参数将被忽略。

支持表达式语言 (支持流属性和变量)
Schema内容${avro.schema}Avro格式的Schema内容

支持表达式语言 (支持流属性和变量)
Grok模式文件用于解析日志的包含Grok模式的文件路径,如果不指定,将使用一默认的模式,如果指定,则将覆盖默认的模式配置,可通过查看高级设置中了解跟多预定义的模式。

支持表达式语言 (仅支持变量)
Grok表达式指定日志行的Grok格式。则记录读取器可以理解如何解析一个日志行。如果不匹配,则假定该行是前一消息的一部分。
不匹配处理添加到之前的消息中
- 添加到之前的消息中不匹配的数据行内容将被添加到之前消息中
- 跳过忽略不匹配的消息行
如果数据行的内容不匹配Grok表达式,并且也不是消息栈的一部分,该参数决定如何处理该行数据

状态管理:

该组件不保存状态。

限制:

该组件没有限制

系统资源考量:

未提供。