我使用在/ var / log / softwarename / YYYYMMDD /中制作日志文件的软件 它使用JSON格式。但我是Kibana的新手,并且不知道如何正确地读出日志文件,因为我在单一规则中获取日志文件,而我应该能够使用格式化。
这听起来很模糊,但请参阅https://www.youtube.com/watch?v=H6dCCw666Xw&t=341s(跳至2:39)。 希望这能解释一些事情......
编辑:好的,我做了一些研究,发现它读取了正确的文件。 但是在Kibana中格式化它是错误的: https://puu.sh/vKyFO/0097ac2c0f.png 那么如何确保它具有适当的字段等,如视频中那样?答案 0 :(得分:0)
请忘记grok filter plugin,而是使用json filter plugin。它具有解析json输入的能力。 我试过这个配置。
input {
file {
path => "/path/to/logfile/logfile"
}
}
filter{
json{
source => "message"
}
#remove message (not needed)
mutate {
remove_field => ["message"]
}
}
output {
elasticsearch{
hosts => ["elasticsearchip:9200"]
manage_template => true
index => "your-index"
}
}
输入
{"sessionend": "2017/05/09 14:20:44", "ver": "1", "host": "94.228.216.5", "session": "627650cf-a214-4c62-ba81-0eec6b9f57d3", "user": "(removedforsafety)", "timing": "2017/05/09 14:20:44", "sessionstart": "2017/05/09 14:20:34"}
弹性搜索中的输出
{
"_index" : "your-index",
"_type" : "logs",
"_id" : "AVvuH4v3tbMuoFZBfUAn",
"_score" : 1.0,
"_source" : {
"path" : "/path/to/logfile/logfile",
"ver" : "1",
"@timestamp" : "2017-05-09T16:51:36.156Z",
"session" : "627650cf-a214-4c62-ba81-0eec6b9f57d3",
"timing" : "2017/05/09 14:20:44",
"@version" : "1",
"host" : "94.228.216.5",
"sessionend" : "2017/05/09 14:20:44",
"user" : "(removedforsafety)",
"sessionstart" : "2017/05/09 14:20:34"
}
}
希望这有帮助。