[英]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.