Logstash S3输出插件编解码器问题

时间:2015-07-08 20:38:27

标签: amazon-s3 logstash logstash-configuration

我在使用logstash时遇到了一些奇怪的行为,在输入/文件和输出/ s3上使用了编解码器的组合。输出/ s3 logstash插件似乎有问题,因为我无法将任何部件文件上传到S3,除非我在output / s3插件中指定了编解码器。

我正在拖尾java应用程序日志文件,所以理想情况下我使用输入/文件插件来查看目录中的所有日志文件,并确保遇到的任何堆栈跟踪(及其新行)都被包装到同一个logstash事件中。我这样做:

input {
  file {
    path => "C:/some/directory/logs/*"      
    codec => multiline {
        pattern => "^%{DATESTAMP}"
        negate => true
        what => "previous"
    }
  }
}

这会将我的堆栈跟踪正确附加到其父事件。 然后我想执行两个不同的输出/ s3操作(基本上逐行重新创建原始日志,并上传事件json):

output {    
 s3{
     access_key_id => "mykey"
     secret_access_key => "myseckey"
     region => "us-east-1"
     bucket => "somebucket"
     size_file => 10000
     upload_workers_count => 2
     restore => true
     prefix => "rawlogs/"
     temporary_directory => "C:/Temp/LogStash/raw"
     time_file => 5  
 }
 s3{
     access_key_id => "mykey"
     secret_access_key => "myseckey"
     region => "us-east-1"
     bucket => "somebucket"
     size_file => 10000
     upload_workers_count => 2
     restore => true
     prefix => "jsoneventlogs/"
     temporary_directory => "C:/Temp/LogStash/json"
     time_file => 5
     codec => "json_lines"
 }
}

使用" json_lines"的S3上传编解码器工作正常,但原始日志上传使用默认"普通"编解码器根本不起作用。这些文件位于我的临时目录中,永远不会被推送到S3。我试过使用" line"编解码器,但仍然是相同的行为。如果我删除"多行"来自输入/文件插件的编解码器并在我的输出/ S3原始插件中使用它,然后他们将上传到S3就好了,但是堆栈跟踪中的每个换行都是作为自己的事件进入,因此编解码器似乎没有做到它工作

任何想法为什么输出/ S3插件似乎只适用于json_lines和multiline?

0 个答案:

没有答案