wiki/运维/日志/Elasticsearch/部署三节点elasticsearch.md
2025-01-02 10:46:09 +08:00

128 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 三节点搭建Elasticsearch
## 一、环境
三台服务器2C4Gubuntu22.04elasticsearch 8.14kibana 8.14
## 二、实操
```
#!/bin/bash
echo "由于脚本是在windows的vscode下写的所以需要安装dos2unix进行转换"
echo "try dos2unix filename"
read -p "什么?你已经执行过了?【y/n】" windows2unix
if [ $windows2unix = 'y' ]
then
echo "牛逼"
else
echo "滚回去执行!"
exit
fi
echo "脚本有1个参数主节点参数为1从节点参数为2 or 3比如./createES.sh 1"
read -p "什么你带参数了【y/n】" pram
if [ $# -ne 0 -a "$pram" = 'y' ]
then
echo "你真牛逼"
else
echo "给爷重新执行"
exit
fi
esnodetoke=""
echo -e "\033[41;33m Download and install the public signing key ing \033[0m"
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo -e "\033[41;33m Download and install the public signing key done \033[0m"
echo -e "\033[41;33m install apt-transport-https \033[0m"
apt-get install apt-transport-https >> ./installES.log
echo -e "\033[41;33m install apt-transport-https done \033[0m"
echo -e "\033[41;33m Save the repository \033[0m"
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
echo -e "\033[41;33m Save the repository done \033[0m"
echo -e "\033[41;33m install elasticsearch ing... \033[0m"
apt-get update >> ./installES.log && sudo apt-get install elasticsearch >> ./installES.log
echo -e "\033[41;33m install elasticsearch done \033[0m"
if [ ! $1 ]
then
echo -e "\033[41;33m erro,please input 1 or 2 or 3 \033[0m"
exit
elif [ $1 -eq 2 ]
then
read -p "请输入esnodetoken" esnodetoken
echo -e "\033[41;33m 2节点开始加入集群 \033[0m"
/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token $esnodetoken >> ./installES.log
echo -e "\033[41;33m 加入集群成功 \033[0m"
echo -e "\033[41;33m 2节点开始修改配置 \033[0m"
sed -i 's/#cluster.name: my-application/cluster.name: my-es/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改集群名称success \033[0m"
sed -i 's/#node.name: node-1/node.name: es-2/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改节点名称success \033[0m"
echo -e "\033[41;33m 修改2节点监听配置 \033[0m"
sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改2节点监听配置success \033[0m"
echo -e "\033[41;33m 启动2节点ES \033[0m"
systemctl start elasticsearch.service
echo -e "\033[41;33m 启动完成 \033[0m"
elif [ $1 -eq 3 ]
then
read -p "请输入esnodetoken" esnodetoken
echo -e "\033[41;33m 3节点开始加入集群 \033[0m"
/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token $esnodetoken >> ./installES.log
echo -e "\033[41;33m 加入集群成功 \033[0m"
echo -e "\033[41;33m 3节点开始修改集群名称 \033[0m"
sed -i 's/#cluster.name: my-application/cluster.name: my-es/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改集群名称success \033[0m"
echo -e "\033[41;33m 3节点开始修改节点名称 \033[0m"
sed -i 's/#node.name: node-1/node.name: es-3/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 3节点修改节点名称succes \033[0m"
echo -e "\033[41;33m 修改3节点监听配置 \033[0m"
sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改3节点监听配置success \033[0m"
echo -e "\033[41;33m 启动3节点ES \033[0m"
systemctl start elasticsearch.service
echo -e "\033[41;33m 启动完成 \033[0m"
elif [ $1 -eq 1 ]
then
echo -e "\033[41;33m 主节点开始修改配置 \033[0m"
sed -i 's/#cluster.name: my-application/cluster.name: my-es/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改集群名称success \033[0m"
echo -e "\033[41;33m 开始修改节点名称success \033[0m"
sed -i 's/#node.name: node-1/node.name: es-1/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改节点名称success \033[0m"
sed -i 's/^\(cluster.initial_master_nodes:.*\)/cluster.initial_master_nodes: \[\"es-1\"\]/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改主节点master配置success \033[0m"
echo -e "\033[41;33m 修改主节点监听配置 \033[0m"
sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改主节点监听配置success \033[0m"
node1IP=$(ip a | awk '/inet / {print $2}' | awk -F / 'NR==2 {print $1}')
read -p "请输入2节点IP、3节点IP" node2IP node3IP
sed -i "s/#discovery.seed_hosts: \[\"host1\", \"host2\"\]/discovery.seed_hosts: \[\"$node1IP\", \"$node2IP\", \"$node3IP\"\]/g" /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m seed_hosts success \033[0m"
echo -e "\033[41;33m 启动主节点ES \033[0m"
systemctl start elasticsearch.service
echo -e "\033[41;33m 启动完成 \033[0m"
echo -e "\033[41;33m 主节点开始生成加入节点密码 \033[0m"
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node > ./esnodetoken
echo -e "\033[41;33m 请查看esnodetoken文件获取加入节点密码 \033[0m"
echo -e "\033[41;33m 主节点安装成功 \033[0m"
echo -e "\033[41;33m 等待其他节点加入... \033[0m"
ELASTIC_PASSWORD=(awk -F ' ' '/The generated password for the elastic built-in superuser is : / {print $11}' installES.log)
echo $ELASTIC_PASSWORD > ./ELASTIC_PASSWORD
while
do
nodes=$(curl --silent --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200/_cat/nodes?v | wc -l)
if [ $nodes -eq 2 ]
then
echo -ne "wait 2 nodes join...\r"
elif [ $nodes -eq 3 ]
then
echo -ne "wait 1 node join...\r"
elif [ $nodes -eq 4 ]
then
echo "三个节点全部检测到啦"
fi
sleep 1
fi
```