首页 > 解决方案 > 在 grok 中提取子字符串作为新字段

问题描述

我是新手,没有 ELK 堆栈,我有一个日志文件,我需要创建一个新字段作为服务,以使用日志中的子字符串识别从哪个服务生成日志。下面给出了一个示例日志。我需要一个 grok 表达式来将****SyncLeaveRecord started*****字符串过滤为新字段。

TID: [-1234] [] [2019-08-08 00:44:00,009]  INFO {org.apache.synapse.mediators.builtin.LogMediator} -  STATUS = ****SyncLeaveRecord started***** {org.apache.synapse.mediators.builtin.LogMediator}

标签: elasticsearchlogstashkibana

解决方案


由于您没有说 if ****SyncLeaveRecord started*****always 具有此值,因此我将 grok 模式基于它周围的元素,假设这些元素不会改变。

grok {
  match => {message => 
    "STATUS = %{DATA:newField} \{"
  }
}

其中,给定示例日志行,创建一个名为 的新字段newField,其中包含****SyncLeaveRecord·started*****


推荐阅读