Elasticsearch每日创建多个索引

时间:2018-02-05 10:29:13

标签: elasticsearch

我在elasticsearch

中加载此索引
curl -XPUT 'localhost:9200/filebeat?pretty' -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "_default_": {
      "_all": {
        "enabled": true,
        "norms": {
          "enabled": false
        }
      },
      "dynamic_templates": [
        {
          "template1": {
            "mapping": {
              "doc_values": true,
              "ignore_above": 50000,
              "index": "not_analyzed",
              "type": "{dynamic_type}"
            },
            "match": "*"
          }
        }
      ],
      "properties": {
        "@timestamp": {
          "type": "date"
        },
        "message": {
          "type": "string",
          "index": "analyzed"
        },
        "offset": {
          "type": "long",
          "doc_values": "true"
        },
        "geoip"  : {
          "type" : "object",
          "dynamic": true,
          "properties" : {
            "location" : { "type" : "geo_point" }
          }
        }
      }
    }
  },
  "settings": {
    "index.refresh_interval": "2s"
  },
  "template": "filebeat-*"
}
'

curl 'localhost:9200/_cat/indices?v'的结果是filebeat-2018-02-05 并且索引上的每一天都会添加到每日basies的elasticsearch列表中,如果我想搜索最新的日志文件,我必须在kibana中添加它。为什么elasticsearch会在每日基础上添加多个索引。以及如何解决这个问题(只有我自己的索引) 谢谢。

1 个答案:

答案 0 :(得分:2)

我假设您正在使用filebeat将数据推送到elasticsearch。

  1. Elasticsearch不会决定您的数据应写入哪个索引。 filebeat告诉elasticsearch应该写入数据的位置。 filebeat / logstash的默认行为是每天创建一个新的索引。
  2. 如果要显示一系列索引模式的数据,可以在kibana索引模式中使用通配符,例如filebeat- *。并且针对filebeat- *创建的所有可视化都应该包含来自所有filebeat-index的聚合数据。
  3. 每天拥有一个新索引的原因是为了帮助记录用例,其中新数据比旧数据更有价值。因此,这提供了一个轻松退出旧数据或将旧索引移动到性能较低的弹性搜索节点等的机会。
  4. 如果您仍需要新模式,则应该能够修改filebeat配置文件并指定新的index_pattern值。 Document