【发布时间】:2016-07-04 15:35:57
【问题描述】:
我有一个 mylog.log 文件,其中包含以下内容。
2014-07-02 20:52:39 DEBUG HelloExample:19 - This is debug : ishan
2014-07-02 20:52:39 INFO HelloExample:23 - This is info : ishan
2014-07-02 20:52:39 WARN HelloExample:26 - This is warn : ishan
2014-07-02 20:52:39 ERROR HelloExample:27 - This is error : ishan
2014-07-02 20:52:39 FATAL HelloExample:28 - This is fatal : ishan
我有以下用于 logstash 的 conf 文件
input {
file {
path => "/home/ishan/sf_shared/log4jlogs/1-7-2016.txt"
start_position => "beginning"
codec => multiline {
pattern => "(^d+serror)|(^.+Exception: .+)|(^s+at .+)|(^s+... d+ more)|(^s*Caused by:.+)"
what => "previous"
}
}
}
output {
elasticsearch => ["127.0.0.1:9200"]
stdout { codec => rubydebug }
}
所以,当我使用以下命令运行 logstash /opt/logstash/bin/logstash -f log4j.conf
但它没有在控制台上显示任何内容。 那么,如何在控制台上显示呢?还添加它后如何检查 ES?以及需要什么样的过滤器来解析以下json格式的信息?
{
"severity": DEBUG
"class": HelloExample
"message":This is debug : ishan
}
提前致谢。
【问题讨论】:
-
你可以使用 grok 作为你的模式。您的多行似乎没有必要,因为您已经只有 1 行日志?此外,^d 不注释日期。研究探索正确的模式
标签: elasticsearch log4j logstash