0

我是 ELK 堆栈和 grok 过滤器的新手。

需要有关在 kibana 中显示数据的 logstash conf 文件的帮助(饼图)

我的日志文件位于 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 堆栈。

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

4

1 回答 1

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

但是,按照上述逻辑,它没有读取日志文件的最后一行。(您需要在最后一行后按回车键才能读取完整的日志条目)但我不确定它为什么不读取最后一个日志条目就这样!?

于 2017-02-01T15:32:38.723 回答