当 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 显示了同样的问题。
通过向 LogStash.conf 文件添加过滤器已解决该问题。
完整的配置文件如下所示:
input {
file {
path => "C:/usys91/uniface4gl/log/ide.json"
}
}
filter {
json {
source => "message"
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
}
}