流利的Elasticsearch目标指数

时间:2016-02-25 12:51:22

标签: elasticsearch kibana fluentd

我正在使用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

如果我遗失了某些内容,请纠正我。

3 个答案:

答案 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下方加载检查索引是否已创建

http://localhost:9200/_plugin/head/

祝你好运

答案 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

我希望它能对某人有所帮助。