Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何将相同的消息发送到logstash中的不同输出?_Logging_Logstash - Fatal编程技术网

Logging 如何将相同的消息发送到logstash中的不同输出?

Logging 如何将相同的消息发送到logstash中的不同输出?,logging,logstash,Logging,Logstash,关于日志处理,我有一个非常常见的用例。我想 读取日志文件 将它们发送到logstash(我使用的是elastic/filebeat) 解析、格式化、保存到elasticsearch、kibana等 我想要这些日志文件的原始备份 这是我目前无法解决的第四点。我可以保存提取/解析的消息,但我想保存整个原始行。使用logstash有什么方法可以做到这一点吗?如果原始日志消息未经更改,您可以使用logstash输出将其发送到原始格式的文件中,如下所示: output{ file {

关于日志处理,我有一个非常常见的用例。我想

  • 读取日志文件
  • 将它们发送到logstash(我使用的是elastic/filebeat)
  • 解析、格式化、保存到elasticsearch、kibana等
  • 我想要这些日志文件的原始备份
    这是我目前无法解决的第四点。我可以保存提取/解析的消息,但我想保存整个原始行。使用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过滤器修改,就可以获得原始日志。