docker容器的默认elasticsearch配置

时间:2015-11-11 20:26:26

标签: elasticsearch docker

在docker容器中使用映射配置ES索引模板的最佳方法是什么?我希望使用模板文件,但似乎从版本2 is not possible。执行http请求也不会起作用,因为容器创建过程无法启动。它可以在每个容器启动时使用脚本启动,该脚本将启动ES并对其执行HTTP请求,但它看起来非常难看。

2 个答案:

答案 0 :(得分:0)

您可以通过在Linux终端中执行HTTP PUT请求来配置带有映射的模板,如下所示:

curl -XPUT http://ip:port/_template/logstash -d '
    {
      "template": "logstash-*",
      "settings": {
        "number_of_replicas": 1,
        "number_of_shards": 8
      },
      "mappings": {
        "_default_": {
          "_all": {
            "store": false
          },
          "_source": {
            "enabled": true,
            "compress": true
          },
          "properties": {
            "_id": {
              "index": "not_analyzed",
              "type": "string"
            },
            "_type": {
              "index": "not_analyzed",
              "type": "string"
            },
            "field1": {
              "index": "not_analyzed",
              "type": "string"
            },
            "field2": {
              "type": "double"
            },
            "field3": {
              "type": "integer"
            },
            "xy": {
              "properties": {
                "x": {
                  "type": "double"
                },
                "y": {
                  "type": "double"
                }
              }
            }
          }
        }
      }
    }
    '

“logstash- *”是您的索引名称,您可以尝试一下。

答案 1 :(得分:0)

如果使用logstash,则可以将模板作为logstash管道配置的一部分

管道/ logstash.conf

input {
    ...
}

filter {
    ...
}

output {
    elasticsearch {
        hosts => "elasticsearch:9200"
        template => "/usr/share/logstash/templates/logstash.template.json"
        template_name => "logstash"
        template_overwrite => true
        index => "logstash-%{+YYYY.MM.dd}"
    }
}

参考:https://www.elastic.co/guide/en/logstash/6.1/plugins-outputs-elasticsearch.html#plugins-outputs-elasticsearch-template