用于过滤我的日志数据的logstash模式

时间:2017-01-25 08:22:16

标签: elastic-stack logstash-grok logstash-file

我是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堆栈。

你的帮助/建议会有很大的帮助。

1 个答案:

答案 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键来读取完整的日志条目)但是我不知道它为什么不读取最后一个日志条目!?