我是Logstash过滤器的新手,并通过不同的博客和链接进行详细了解。我几个问题仍然没有答案。
。如果我的日志文件具有不同的日志模式,例如
2017-01-30 14:30:58 INFO ThreadName:33 - {“t”:1485786658088,“h”:“abcd1234”,“l”:“INFO”,“cN”:“org.logstash。 demo“,”mN“:”getNextvalue“,”m“:”获取下一个值“} 2017-01-30 14:30:58 INFO AnotherThread:33 -my日志模式不同
我有以下过滤器,它成功过滤了日志的第1行
grok
{
match => [ "message", "%{TIMESTAMP_ISO8601:LogDate} %{LOGLEVEL:loglevel} %{WORD:threadName}:%{NUMBER:ThreadID} - %{GREEDYDATA:Line}" ]
}
json
{
source => "Line"
}
答案 0 :(得分:0)
回答你的问题:
答案 1 :(得分:0)
正如@darth_vader所指出的,你会在每个文档上得到一个“grok_parsefailure”标签,它与grok {}过滤器中的模式不匹配。但是,您如何处理此故障取决于您。
默认情况下,所有事件都会传递到您的输出{}部分,这可能会将它们发送到elasticsearch。您还可以使用条件输出{}部分,它将已解析的日志发送到一个输出,将未解析的日志发送到另一个(文件{}输出或不同的索引,或......)。
至于例子,官方文档往往包含不完整的片段(最多),所以你可能会在随机互联网博客中找到更好的例子。