首页 文章

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

提问于
浏览
0

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

想要有关logstash conf文件的帮助以显示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

    我通过在文件过滤器中添加以下行来解决此问题 .

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

相关问题