logstash output elasticsearch - 动态生成索引名称

时间:2018-04-22 15:56:25

标签: json azure elasticsearch logging logstash

我正在使用弹性和logstash版本6.2.4。

Logstash输入配置为从Azure EventHubs

读取数据
gorup

我的活动是JSON消息,如此

input
{
    azureeventhub
    {
        key => ""
        username => "ReadAccess"
        namespace => "myeventhubs"
        eventhub => "logstash"
        partitions => 2
        consumer_group => "logstash-cg"
    }
}

我需要在elasticsearch中为每个{ "log": { "event": "....." }, "header": { "remoteName": "foobar" } } 创建一个索引,所以我尝试将输出配置为弹性,如下所示:

remoteName

我希望找到一个名为的索引: output { elasticsearch { hosts => ["localhost:9200"] index => "log-%{header.remoteName}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } } 。 但是没有用。

在Elasticsearch中,我找到了一个名为的索引: log-foobar-2018-04-22

是否有可能动态创建索引?我如何配置logstash输入?

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

index => "log-%{[header][remoteName]}-%{+YYYY.MM.dd}"

字段参考

能够通过名称引用字段通常很有用。为此,您可以使用Logstash字段引用语法。

访问字段的语法是[fieldname]。如果您指的是顶级字段,则可以省略[]并简单地使用fieldname。要引用嵌套字段,请指定该字段的完整路径:[顶级字段] [嵌套字段]。

https://www.elastic.co/guide/en/logstash/5.2/event-dependent-configuration.html