【发布时间】:2016-07-01 08:34:04
【问题描述】:
我想使用 logstash 从数据库中的表中读取数据,并为表中的每个条目创建一个单独的 json 文件...
我看到logstash已经解释了json中的数据,因为当我输出到一个现有的json对象时,数据已经是json对象格式了。
是否可以单独创建json文档并将它们存储在logstash输出块中的一个文件夹中?
【问题讨论】:
我想使用 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
希望对你有帮助
阿图尔
【讨论】: