elasticsearch坑爹二三事之——程序启动时的配置文件位置 篇

因为要实现安装自动化,所以在安装某个大型系统的elasticsearch 组件的时候用到了如下安装脚本:

elasticsearch坑爹二三事之——程序启动时的配置文件位置 篇_第1张图片

但是安装完成之后无论怎么查询,cluster.name都是奇怪的:

elasticsearch坑爹二三事之——程序启动时的配置文件位置 篇_第2张图片

讲道理我已经用sed命令将配置文件中的cluster.name字段替换了,但是为什么程序起来之后还是会使用XXX_ES_CLUSTER_NAME这个默认名称呢?

后来才发现,问题出在了倒数第二句 /usr/local/elasticsearch/bin/elasticsearch -d这句话,这句话在执行的时候,当前的路径下是存在了一个elasticsearch.yml的,所以es不再使用位于/usr/local/elasticsearch/config下面的配置文件,而是使用了当前目录下的配置文件,所以启动之后cluster.name一直显示不对。

解决方法就是启动之前,将当前目录下的配置文件删掉就好了:

修改后的安装脚本是:

#!/bin/sh
echo "begin start elasticsearch ..."
cur_dir=$(pwd)
# unzip 
unzip $cur_dir/elasticsearch-1.4.4.zip
# copy yml from current dir to config
echo "y"|cp -f elasticsearch.yml $cur_dir/elasticsearch-1.4.4/config
# reset cluster name to config file
sed -i "s/XXX_ES_CLUSTER_NAME/es$RANDOM$RANDOM/g" $cur_dir/elasticsearch-1.4.4/config/elasticsearch.yml
# move to usr /local
mv $cur_dir/elasticsearch-1.4.4 /usr/local/elasticsearch
cat /usr/local/elasticsearch/config/elasticsearch.yml
sleep 10s
# delete the yml file in current dir
rm -f elasticsearch.yml
/usr/local/elasticsearch/bin/elasticsearch -d
echo "elasticsearch start success!"


elasticsearch.yml中存在:

elasticsearch坑爹二三事之——程序启动时的配置文件位置 篇_第3张图片

其中的XXX_ES_CLUSTER_NAME是为了替换占位用的,替换成了类似于随机字符的东西,防止多台局域网内的ES形成集群(有特殊需求)。


关键词:

elasticsearch随机指定cluster.name

elasticsearch局域网内防止形成集群

elasticsearch执行备份时提示文件无法共享

elasticsearch配置文件设置无效

你可能感兴趣的:(架构,数据库)