elasticsearch 如何解析和提取特定字段并将其存储到logstash筛选器中的另一个字段中?,elasticsearch,logstash,kibana,logstash-grok,filebeat,elasticsearch,Logstash,Kibana,Logstash Grok,Filebeat" /> elasticsearch 如何解析和提取特定字段并将其存储到logstash筛选器中的另一个字段中?,elasticsearch,logstash,kibana,logstash-grok,filebeat,elasticsearch,Logstash,Kibana,Logstash Grok,Filebeat" />

elasticsearch 如何解析和提取特定字段并将其存储到logstash筛选器中的另一个字段中?

elasticsearch 如何解析和提取特定字段并将其存储到logstash筛选器中的另一个字段中?,elasticsearch,logstash,kibana,logstash-grok,filebeat,elasticsearch,Logstash,Kibana,Logstash Grok,Filebeat,我使用Filebeat将应用程序日志文件发送到日志库。日志文件将包含类似这样的内容,其中包含模块名称和处理所需的时间 [10/08/2020#11:25:45:451] #SVS#SVS#NA#NA#NA#-#DE#00000199#DE_ONL_DC_SERVER1_NODE05_PRD##[8/10/2020#11:25:45:451] #O#-#-#-#Module1#1#-#5#-#-#-#CoreB#- 我只想从上面的日志中提取3个字段,modulename{Module1},处理{

我使用Filebeat将应用程序日志文件发送到日志库。日志文件将包含类似这样的内容,其中包含模块名称和处理所需的时间

[10/08/2020#11:25:45:451] #SVS#SVS#NA#NA#NA#-#DE#00000199#DE_ONL_DC_SERVER1_NODE05_PRD##[8/10/2020#11:25:45:451] #O#-#-#-#Module1#1#-#5#-#-#-#CoreB#-
我只想从上面的日志中提取3个字段,modulename{Module1},处理{5}所需的时间,服务器名{DE_ONL_DC_SERVER1_NODE05_PRD},这样我就可以将它们绘制到kibana中这些术语的仪表板中


我对elk stack非常陌生,仍在探索logfilter中的各种过滤器选项,以实现上述目标,如有任何帮助,将不胜感激。谢谢

是的,没错,如果您所有的日志行看起来都完全一样,我会利用。像这样的模式应该可以:

filter {
  dissect {
    mapping => {
      "message" => "[%{@timestamp}] #%{?ignored}#%{?ignored}#%{?ignored}#%{?ignored}#%{?ignored}#-#%{?ignored}#%{?ignored}#%{serverName}##[%{?ignored}] #%{?ignored}#%{?ignored}#%{?ignored}#%{?ignored}#%{moduleName}#%{?ignored}#%{?ignored}#%{processTime}#%{?ignored}#%{?ignored}#%{?ignored}#%{?ignored}#%{?ignored}
"
    }
  }
}
这会将以下字段提取到事件中:

{
    "@timestamp": "10/08/2020#11:25:45:451",
    "message": "[10/08/2020#11...",
    "serverName": "DE_ONL_DC_SERVER1_NODE05_PRD",
    "moduleName": "Module1",
    "processTime": 5
}

因此,我发现dissectfilter非常适合上面的用例。无论如何,如果有人有更好的方法,请帮忙谢谢你,但解剖是否意味着消息字段将用映射更新,或者,我们将不得不变异,因为我观察到kibana中的输出仍然是与以前相同的完整消息。提前感谢消息字段没有更改,剖析过滤器只是将数据从中提取到新字段中。明白,因此我们必须使用mutate将新提取的字段添加到消息中。知道了。谢谢不,dissect将添加字段本身,不需要变异。在我的答案的底部,这是你将在你的文档中得到的。至少在昨天的努力之后,由于几个问题(过滤器中的条件是错误的,错误的conf文件)找到了-我能够得到kibana中的字段。非常感谢。