我是ELK堆栈和grok过滤器的新手。
想要有关logstash配置文件的帮助以显示kibana(饼图)中的数据
我的日志文件位于C:\ ELK \ Test \ reviewoutput.log
位置wf_review1 FAILED
wf_review2 PASS
wf_review3 PASS
wf_review4 PASS
wf_review5 FAILED
这是我的conf文件
input{
file{
path=>"C:/ELK/Test/codereview.log"
}
}
filter{
grok{
match=>{"message"=>"%{WORD:workflow} %{WORD:status}"}
}
}
#output{
#elasticsearch{
#hosts=>["localhost"]
#index=>"logstash-*"
#}
output{stdout{codec=>rubydebug}
}
上面的代码没有将已解析的日志回显到控制台中。如果我将输入类型更改为“stdin”并在控制台中传递该值,它会将日志回显到stdout / console。不知道我在这里缺少什么。
我只是尝试过滤上面的日志数据以查找关键字PASS或FAILED并将过滤后的数据泵入elasticsearch。稍后在kibana仪表板中,我想在饼图中显示工作流程的成功和失败(PASS / FAILED)。
我正在Windows机器上运行ELK堆栈。
你的帮助/建议会有很大的帮助。
答案 0 :(得分:0)
我通过在文件过滤器中添加以下行来解决此问题。
sincedb_path => "/dev/null"
input{
file{
path => "C:/ELK/Test/codereview.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
这两个链接实际上帮助我经过几个小时的搜索解决方案:) https://discuss.elastic.co/t/reading-a-log-file-into-logstash/24514 https://github.com/elastic/logstash/issues/3115
但是,使用上面的逻辑,它不会读取日志文件的最后一行。(你需要在最后一行之后按Enter键来读取完整的日志条目)但是我不知道它为什么不读取最后一个日志条目!?