繁体   English   中英

logstash输出elasticsearch-动态生成索引名称

[英]logstash output elasticsearch - generate index name dynamically

我正在使用Elastic和Logstash版本6.2.4。

Logstash输入配置为从Azure EventHub读取数据

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

我的事件是JSON消息,像这样

{
    "log": {
      "event": "....."
    },
    "header": {
      "remoteName": "foobar"
    }
}

我需要在elasticsearch中为每个remoteName创建一个索引,因此我尝试将输出配置为remoteName ,如下所示:

output {
  elasticsearch {
    hosts => ["localhost:9200"]
     index => "log-%{header.remoteName}-%{+YYYY.MM.dd}"
  }
  stdout { codec => rubydebug }
}

我希望找到一个名为: log-foobar-2018-04-22的索引。 但是没有用。

在Elasticsearch中,我找到了一个名为: log-%{header.remoteName}-2018-04-22

是否可以动态创建索引? 我需要如何配置logstash输入?

请尝试以下操作:

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

领域参考

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM