我有一个JSON格式的自定义日志文件,我们使用的应用程序将为每个文件输出一个条目,如下所示
{"cuid":1,"Machine":"001","cuSize":0,"starttime":"2017-03-19T15:06:48.3402437+00:00","endtime":"2017-03-19T15:07:13.3402437+00:00","rejectcount":47,"fitcount":895,"unfitcount":58,"totalcount":1000,"processedcount":953}
我正在尝试将其摄入ElasticSearch。我相信这是可能的,因为我正在使用ES5.X
我已经配置了我的FileBeat prospector,我试图至少从文件中取出1个字段,即Cuid
filebeat.prospectors:
input_type: log
json.keys_under_root : true
paths:
C:\Files\output*-Account-*
tags : ["json"]
output.elasticsearch:
# The Logstash hosts
hosts: ["10.1.0.4:9200"]
template.name: "filebeat"
template.path: "filebeat.template.json"
template.overwrite: true
processors:
- decode_json_fields:
fields: ["cuid"]
当我启动FileBeat时,它似乎收获了文件,因为我在FileBeat注册表文件中得到一个条目
2017-03-20T13:21:08Z INFO Harvester started for file:
C:\Files\output\001-Account-20032017105923.json
2017-03-20T13:21:27Z INFO Non-zero metrics in the last 30s: filebeat.harvester.closed=160 publish.events=320 filebeat.harvester.started=160 registrar.states.update=320 registrar.writes=2
但是,我似乎无法在Kibana中找到数据。我不完全确定如何找到它?
我确保在kibana中加载FileBeat模板。
我试过阅读文档,我认为我理解正确,但我仍然非常朦胧,因为我对堆栈是全新的。
答案 0 :(得分:0)
我仍然不完全确定这是否是正确的答案。但是我设法解决了我的特定问题。在那里我们写了多个JSON文件到目录,所有只有单行输入,如上所述。虽然FileBeats似乎收获了文件,但我认为它不是在阅读它们。
我修改了应用程序以使用log4Net,并实现RollingFileAppender,然后我运行了应用程序,它开始将日志发送到目录,如果通过魔术,而不修改我的Filebeat.yml,它就开始工作了。
我只能断定Filebeats,不处理多行的json文件。除非有其他配置我不知道。