室内设计师招聘网站,网站推广工作计划,网站制作经费预算,网站建设员是做什么的Elasticsearch 安装和配置脚本文档 目录 **Elasticsearch 安装和配置脚本文档**0.**概述**1.**使用方法#xff1a;**2.**脚本步骤#xff1a;**3. **完整代码如下#xff1a;** 0.概述
此Bash脚本用于自动化在CentOS 7系统上安装和配置Elasticsearch#xff08;ES#x…Elasticsearch 安装和配置脚本文档 目录 **Elasticsearch 安装和配置脚本文档**0.**概述**1.**使用方法**2.**脚本步骤**3. **完整代码如下** 0.概述
此Bash脚本用于自动化在CentOS 7系统上安装和配置ElasticsearchES分布式搜索引擎。脚本包括了创建集群、配置节点、安装Java环境、以及设置必要的系统和ES参数。执行脚本后将会完成Elasticsearch的安装、配置和启动。
1.使用方法
确保脚本具有执行权限chmod x elasticsearch_setup_script.sh执行脚本./elasticsearch_setup_script.sh2.脚本步骤
脚本步骤
变量定义
CLUSTER_NAMEElasticsearch集群的名称。NODE_NAME当前节点的名称。IPS节点的IP地址列表。HOSTS节点对应的主机名列表。其他路径和配置变量。
更新 /etc/hosts 文件
自动检查并添加节点IP地址和主机名到 /etc/hosts 文件。
检查并创建 elasticsearch 用户
检查是否已存在 elasticsearch 用户如果不存在则创建。
检查和创建 ES 目录
检查数据和日志目录是否存在如果不存在则创建。
检查 Java 环境
检查Java环境是否已安装如果未安装则退出脚本。
安装 Elasticsearch
安装指定版本的 Elasticsearch。
修改 elasticsearch.yml 配置文件
替换配置文件中的集群名、节点名、数据和日志路径等参数。
添加 X-Pack 配置
启用安全特性和 SSL。
修改系统配置
调整系统参数以满足 Elasticsearch 的需求。
授权目录权限和配置 ES_JAVA_HOME
授予数据和日志目录以 elasticsearch 用户的权限。配置 ES_JAVA_HOME。
启动 Elasticsearch
启用并启动 Elasticsearch 服务。
防火墙配置
允许 9200 端口通过防火墙。
设置密码
使用交互式命令设置 Elasticsearch 密码。
完成消息
显示安装和配置完成的消息。 注意该脚本假定在CentOS 7环境中运行可能需要根据其他发行版进行调整。在生产环境中运行脚本之前请检查脚本并根据需要调整变量. 此脚本按原样提供使用时请小心。建议在部署之前了解其功能并根据具体要求进行调整。用户负责确保在其环境中设置的安全性和兼容性。
3. 完整代码如下
#!/bin/bashset -e# 定义变量
CLUSTER_NAMEtech-es
## 节点名称修改
NODE_NAMEnode-2
IPS(192.168.2.49 192.168.2.50 192.168.2.51)
HOSTS(node-1 node-2 node-3)SEED_HOSTS$(printf ,%s ${IPS[]})
SEED_HOSTS[${SEED_HOSTS:1}]
INITIAL_MASTER_NODES$(printf ,%s ${HOSTS[]})
INITIAL_MASTER_NODES[${INITIAL_MASTER_NODES:1}]ES_PKG/usr/local/dhtech/autoinstall/lib/elasticsearch-7.17.8-x86_64.rpm
ES_CONFIG/etc/elasticsearch/elasticsearch.yml
LIMITS_CONF/etc/security/limits.conf
PROC_CONF/etc/security/limits.d/20-nproc.conf
SYSCTL_CONF/etc/sysctl.conf
ES_DIR/dhxdata/es
PROFILE/etc/profile
JAVA_HOME_DIR/usr/local/java/jdk1.8# 更新 /etc/hosts 文件
for (( i0; i${#IPS[]}; i ));
doif ! grep -q ${IPS[i]} ${HOSTS[i]} /etc/hosts; thenecho ${IPS[i]} ${HOSTS[i]} /etc/hostsfi
done
# 检查并创建用户
if id elasticsearch /dev/null 21; thenecho elasticsearch user exists
elseuseradd elasticsearchecho elasticsearch user has been created
fi
# 检查ES的存储目录和日志目录是否存在不存在则创建
if [ ! -d $ES_DIR/data ]; thenmkdir -p $ES_DIR/data
fi
if [ ! -d $ES_DIR/logs ]; thenmkdir -p $ES_DIR/logs
fi
# 检查Java环境
java_version$(java -version 21 | awk -F /version/ {print $2})
if [[ ! -n ${java_version} ]]; thenecho 未安装Java开发环境${java_version}exit 1
fi# 安装
if [ ! -f $ES_PKG ]; thenecho Elasticsearch安装包不存在确认文件后请重新运行脚本。exit 1
firpm -ivh $ES_PKG# 修改elasticsearch.yml配置
sed -i s|^[#]*\s*cluster.name:.*|cluster.name: $CLUSTER_NAME| $ES_CONFIG
sed -i s|^[#]*\s*node.name:.*|node.name: $NODE_NAME| $ES_CONFIG
sed -i s|path.data:.*|path.data: $ES_DIR/data| $ES_CONFIG
sed -i s|path.logs:.*|path.logs: $ES_DIR/logs| $ES_CONFIG
sed -i s|^[#]*\s*network.host:.*|network.host: 0.0.0.0| $ES_CONFIG
sed -i s|^[#]*\s*http.port:.*|http.port: 9200| $ES_CONFIG
sed -i s|^[#]*\s*discovery.seed_hosts:.*|discovery.seed_hosts: $SEED_HOSTS| $ES_CONFIG
# sed -i s|^[#]*\s*cluster.initial_master_nodes:.*|cluster.initial_master_nodes: $INITIAL_MASTER_NODES| $ES_CONFIG
sed -i s|^[#]*\s*cluster.initial_master_nodes:.*|cluster.initial_master_nodes: [\node-1\]| $ES_CONFIG# 添加以下三行
echo xpack.security.enabled: true $ES_CONFIG
echo xpack.license.self_generated.type: basic $ES_CONFIG
echo xpack.security.transport.ssl.enabled: true $ES_CONFIG# 修改系统配置
echo elasticsearch soft nofile 65536
elasticsearch hard nofile 65536 $LIMITS_CONF
echo elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
* hard nproc 4096 $PROC_CONF
echo vm.max_map_count655360 $SYSCTL_CONFsysctl -p# 创建数据和日志的目录并授予权限
chown -R elasticsearch:elasticsearch $ES_DIR# 配置ES_JAVA_HOME
echo ES_JAVA_HOME$JAVA_HOME_DIR
export ES_JAVA_HOME $PROFILE
source $PROFILE# 启动Elasticsearch
systemctl enable elasticsearch
systemctl start elasticsearch# 允许9200端口通过防火墙
firewall-cmd --zonepublic --add-port9200/tcp --permanent
# 重新加载防火墙配置
firewall-cmd --reload# 设置密码
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
echo Elasticsearch安装已完成