我想使用logstash从数据库中的表中读取数据,并为表中的每个条目创建一个单独的json文件…
我看到logstash已经在json中解释数据,因为当我输出到现有的json对象时,数据已经是json对象格式。
是否可以单独创建json文档并将它们存储在logstash的输出块中的一个文件夹中?
是的,这是可能的,但是您必须在您的事件中使用一个字段作为(部分)文件名。下面是我的配置:
(输出):
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
我希望这对你有帮助,
阿图尔