配置Elasticsearch
Elasticsearch可以在默认配置和一点点自定配置下就运行良好, 大部分的设置可以在运行中的集群上通过集群更新设置API来设置.
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/cluster-update-settings.html
配置文件应该包含指定节点的配置(node.name和path), 或是加点加入的集群, 比如cluster.name和network.host.
配置文件位置
Elasticsearch有3个配置文件
- elasticsearch.yml 来配置Elasticsearch
- jvm.options 来配置Elasticsearch的JVM参数
- log4j2.properties 来配置Elasticsearch的日志
这些文件在config文件夹下, 具体位置取决于安装包类型.
对于归档文件, 默认文件夹是 $ES_HOME/config. 你有可以通过ES_PATH_CONF来修改这个位置
ES_PATH_CONF=/path/to/my/config ./bin/elasticsearch
你也可以导出ES_PATH_CONF变量或修改你的shell profile.
对于包安装文件, 默认位置在/etc/elasticsearch. 修改/etc/default/elasticsearch(Debian)或者/etc/sysconfig/elasticsearch(RPM), 编辑ES_PATH_CONF=/etc/elasticsearch来修改这个默认位置.
配置文件格式
配置文件使用YAML格式, 下面是一个例子,修改数据和日志目录:
path:
data: /var/lib/elasticsearch
logs: /var/log/elasticsearch
也可以使用下面这样平铺的格式
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
环境变量替换
配置文件中${...}的变量, 会被环境变量替换.
node.name: ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}
提示设置
对于你不想直接写在配置文件里的配置信息, 你可以使用${prompt.text}或者${prompt.secret}这样的格式. 并且前台启动Elasticsearch, 这样Elasticsearch就会提示你输入配置信息.
例如在配置文件里这样写:
node:
name: ${prompt.text}
然后在你启动Elasticsearch的时候会有如下提示信息, 让你输入相应的配置:
Enter value for [node.name]:
如果配置没有被使用, 或者是后台启动Elasticsearch, 那么Elasticsearch就不会启动.