因此,假设我有以下日志消息,试图通过grok过滤器捕获该消息:
“ 2018-10-02 18:00:00信息THIS_IS_A_TEST_MESSAGE”
我想将“ THIS_IS_A_TEST_MESSAGE”提取为一个字段,但是除此之外,我想仅将单词TEST捕获为另一个字段。我需要它们都创建一些Kibana可视化,但是出于聚合目的,它们需要分开。
我当前的骗子看起来像这样:
match => { "message" => "%{TIME:time} %{LOGLEVEL:logLevel} %{WORD:payload}" }
因此,我创建了三个字段:time,logLevel和payload;但是,我需要它来捕获4个字段,但是第4个字段位于有效负载字段内。我该如何调整我的骗子来做到这一点?
我对ELK堆栈非常陌生,因此仍然习惯于编写这些配置。
答案 0 :(得分:0)
在payload
字段上使用另一个grok过滤器。
match => { "payload" => "[^_]*_[^_]*_[^_]*_%{DATA:data}_" }
我不知道您要提取的数据是什么。我只是在第三个_
和第四个data: TEST
之间获取了数据。
有了您提供的数据,我得到了:{{1}}