ExtractGrok 如何使用多个正则表达式?

How Can ExtractGrok use multiple regular expressions?

我有一个 Kakfa 主题,其中包含从不同来源发送的不同类型的消息。

我想使用 ExtractGrok 处理器根据常规 expression/grok 模式提取消息。

如何配置或运行 具有多个正则表达式的处理器?

例如,Kafka 主题包含来自不同应用程序的 INFO、WARNING 和 ERROR 日志条目。

我想将不同日志级别的消息分开,然后放入 HDFS。

不要使用 ExtractGrok 处理器,而是使用 NiFi 中的 分区记录处理器 来分区为这个处理器

  1. 根据记录中的每条记录评估一个或多个记录路径 传入的流文件。

  2. 每条记录然后与其他“类似记录”分组。

  3. Configure/enable 控制器服务

    RecordReader 作为 GrokReader

    您想要的格式记录编写器

然后使用PutHDFS处理器根据loglevel属性存储流文件。

流量:

1.ConsumeKafka processor
2.Partition Record
3.PutHDFS processor

参考this link描述了配置PartitionRecord处理器的所有步骤。

参考this link描述了如何使用PutHDFS处理器在HDFS目录中动态存储分区。