logstash在文件夹中创建多个json文件以进行输出

时间:2016-07-01 08:34:05

标签: json logstash

我想使用logstash从数据库中的表中读取数据,并为表中的每个条目创建一个单独的json文件...

我看到logstash已经解释了json中的数据,因为当我输出到现有的json对象时,数据已经是json对象格式。

是否可以单独创建json文档并将它们存储在logstash的输出块中的一个文件夹中?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的,但是您必须在事件中使用一个字段作为(部分)文件名。这是我的配置:

(仅输出):

output { 
          stdout { codec => rubydebug }

    file {
         path => "/home/artur/tmp/logstash/out/%{hello}.log"
    }

}

文件名将是来自我的事件的字段%{hello}中的任何内容。 Logstash会自动将其填入。

对于这两个事件:

artur@pandaadb:~/dev/logstash$ ./logstash-2.3.2/bin/logstash -f conf2 
Settings: Default pipeline workers: 8
Pipeline main started
a
{
       "message" => "a",
      "@version" => "1",
    "@timestamp" => "2016-07-01T09:28:54.206Z",
          "host" => "pandaadb",
          "tags" => [
        [0] "test",
        [1] "test2",
        [2] "test3",
        [3] "test4"
    ],
         "hello" => "world",
    "mynewField" => "test4"
}
b
{
       "message" => "b",
      "@version" => "1",
    "@timestamp" => "2016-07-01T09:28:59.454Z",
          "host" => "pandaadb",
          "tags" => [
        [0] "test",
        [1] "test2",
        [2] "test3",
        [3] "test4"
    ],
         "hello" => "world2",
    "mynewField" => "test4"
}

它创建了2个文件:

artur@pandaadb:~/tmp/logstash/out$ ls
world2.log  world.log

我希望有所帮助,

阿图尔