Logging 如何将相同的消息发送到logstash中的不同输出?
关于日志处理,我有一个非常常见的用例。我想Logging 如何将相同的消息发送到logstash中的不同输出?,logging,logstash,Logging,Logstash,关于日志处理,我有一个非常常见的用例。我想 读取日志文件 将它们发送到logstash(我使用的是elastic/filebeat) 解析、格式化、保存到elasticsearch、kibana等 我想要这些日志文件的原始备份 这是我目前无法解决的第四点。我可以保存提取/解析的消息,但我想保存整个原始行。使用logstash有什么方法可以做到这一点吗?如果原始日志消息未经更改,您可以使用logstash输出将其发送到原始格式的文件中,如下所示: output{ file {
这是我目前无法解决的第四点。我可以保存提取/解析的消息,但我想保存整个原始行。使用logstash有什么方法可以做到这一点吗?如果原始日志
消息未经更改,您可以使用logstash
输出将其发送到原始格式的文件中,如下所示:
output{
file {
path => "/var/logstash/logstash-%{+YYYY-MM-dd}.log"
message_format => "%{host}:%{type}:%{message}"
}
}
通过编辑message\u format
,在日志文件中省略或添加所需的字段。如果希望单独的文件编辑路径
中的每种日志类型都是显式的,那么将有两个输出{}节—一个用于elasticsearch,另一个用于文件。注意,在logstash1中,如果一个输出被阻塞,那么管道将被阻塞。他们正在为logstash2做这项工作,但我不知道它是否(或如何)得到了解决。这实际上是我的全部问题,当我添加过滤器时,消息是否发生了更改?例如,在解析APACHECOMBINED时,这种情况下的消息变量仍然是原始行吗?如果您选中APACHECOMBINED
grok
,您可以看到,它没有修改实际的消息
,因此可以将其作为原始输出发送到文件。只要实际的消息
字段未使用Logstash过滤器修改,就可以获得原始日志。