我正在使用Fluentd将数据传输到Elasticsearch。
TD-agent.conf
## ElasticSearch
<match es.**>
type elasticsearch
target_index_key @target_index
logstash_format true
flush_interval 5s
</match>
弹性搜索索引:
"logstash-2016.02.24" : {
"aliases" : { },
"mappings" : {
"fluentd" : {
"dynamic" : "strict",
"properties" : {
"@timestamp" : {
"type" : "date",
"format" : "strict_date_optional_time||epoch_millis"
},
"dummy" : {
"type" : "string"
}
}
}
},
传输json数据:
$ curl -X POST -d 'json={"@target_index": "logstash-2016.02.24","dummy":"test"}' http://localhost:8888/es.test
它应该将数据写入给定索引而不是它创建新索引--logstash-2016.02.25并且它将数据写入其中。我想将数据写入给定的索引。
这是Fluentd elasticsearch github链接: https://github.com/uken/fluent-plugin-elasticsearch
如果我遗失了某些内容,请纠正我。
答案 0 :(得分:1)
试试这个, 由于 logstash_format true ,请在index_name字段下方输入您的索引名称(默认值为流利)
<match es.**>
@type elasticsearch
host localhost
port 9200
index_name <.....your_index_name_here.....>
type_name fluentd
flush_interval 5s
</match>
运行此功能后,请在浏览器中的url下方加载检查索引是否已创建
祝你好运答案 1 :(得分:1)
因为设置了logstash_format true
,所以必须设置logstash_prefix
。
Apaceh httpd示例:
logstash_prefix fluentd.httpd # defaults to "logstash"
logstash_prefix_separator _ # defaults to "-"
答案 2 :(得分:0)
也许这很老了,但实际上我遇到了同样的问题并解决了
logstash_format false
index_name fluentd
此操作仅创建fluentd
作为索引。
摘自官方流利的教程https://docs.fluentd.org/output/elasticsearch
logstash_format
(可选):将此选项设置为true时,Fluentd使用常规的索引名称格式logstash-%Y.%m.%d
(默认值:false)。此选项取代index_name
选项。
要清理旧索引,请考虑使用Curator:https://github.com/elastic/curator
我希望它能对某人有所帮助。