【发布时间】:2017-05-12 07:36:45
【问题描述】:
我有一个 filebeat 可以读取多种不同的日志格式。
工作得很好的一种格式是单个衬里,它作为单个事件发送到 Logstash。 现在,我有另一种格式,即多线。我想将其作为单个事件读取并将其发送到 Logstash 进行解析。 这是日志格式示例,包含两个事件。
error: I READ THIS. sent payload: [{"key": "values"}]
custom status response: [{"key1": "values"}]
callback headers: [{"key2": "values"}]
error stack: [ something really bad happened
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)]
error: I AM NOT READING THIS. sent payload: [{"key": "values"}]
custom status response: [{"key1": "values"}]
callback headers: [{"key2": "values"}]
error stack: [ something really bad happened
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)
at here loremisptul (/xx/xx/x)]
这是探矿者的配置:
- input_type: log
paths: /Users/xxxxx/Downloads/elk/anotherlog/app.stderr.log
document_type: logsystemtwo
multiline.pattern: '`^=[A-Z]+|^$`'
multiline.negate: true
multiline.match: after
- input_type: log
paths: /Users/xxxxx/Downloads/elk/mylogs/access.log*
document_type: logsystemone
问题在于第一条多行。它读取第一个事件(我读过这个),但忽略它的其余部分(我没有读这个)。
我尝试了许多不同的configurations,但我无法让它读取其他事件。 它总是只发送第一个事件,而忽略其余的。
我知道我也可以在 Logstash 中执行多行,但根据 documentation 应该避免。同样在我的情况下,我会避免在 Logstash 中这样做,因为那里已经有非常复杂的结构
【问题讨论】:
标签: elasticsearch logstash elastic-stack filebeat