Elasticsearch 在消息字段中显示 JSON 数据

问题描述 投票:0回答:1

当 uniface 产品创建日志行时,如下所示:

{"application":"space_ship","platform":"MSW","version":"10.4.02.045","user":"pluto","hostname":"sun.universe.com","pid":"9316","timestamp":"2024-05-27T09:32:47.07","level":"info","message":"Hello Moon"}

这显示了所有可能的字段。可以通过更改 uniface 中的设置来删除冗余字段。唯一无法过滤掉的字段是“message”。

当我使用logstash将数据转发到弹性服务时,logstash输出的“消息”字段包含完整的JSON,因此无法在Kibana中过滤uniface输出的不同字段。 当使用 FileBeat 时,可以观察到同样的问题。

我正在寻找一种传递 JSON 的方法,让 Kibana 将 JSON 中的字段显示为单独的字段以允许过滤。

我怎样才能实现这个目标?

感谢您的帮助 贾斯珀·德·凯泽

我将logstash与uniface的纯文本输出一起使用,但缺少uniface的JSON日志输出中可用的严重性级别。因此需要 JSON 输出,但是在 Kibana 中过滤变得不可能,因为完整的 JSON 日志行被放入消息字段中。 FileBeat 显示了同样的问题。

elasticsearch logstash kibana filebeat
1个回答
0
投票

通过向 LogStash.conf 文件添加过滤器已解决该问题。

完整的配置文件如下所示:

input {
  file {
    path => "C:/usys91/uniface4gl/log/ide.json"
  }
}

filter {
  json {
    source => "message"
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
  }
}

© www.soinside.com 2019 - 2024. All rights reserved.