Elasticsearch集群部署

节点信息

节点名称 节点IP 节点角色
node01 172.16.1.11 master data
node02 172.16.1.12 master data
node03 172.16.1.13 master data

环境部署

下载安装包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.12.2-linux-x86_64.tar.gz

解压到data目录

mkdir -p /data
tar xf elasticsearch-8.12.2-linux-x86_64.tar.gz -C /data/

创建配置文件:

#集群名称,所有节点保持一致,同一网段会自动发现
cluster.name: es-cluster
#节点名称,一般为主机名 node-1、node-2、node-3
node.name: node01
#节点角色,master表示管理节点,data表示数据节点
node.roles: [master,data]
#数据存放路径
path.data: /data/elasticsearch-8.12.2/data
#日志存放路径
path.logs: /data/elasticsearch-8.12.2/logs
#绑定监听IP
network.host: 172.16.1.11
#设置端口
http.port: 9200
#跨域相关设置
http.cors.enabled: true
http.cors.allow-credentials: true
http.cors.allow-origin: "*"
#节点发现
discovery.seed_hosts: ["172.16.1.11:9300","172.16.1.12:9300","172.16.1.13:9300"]
#集群初始化Master节点,会在第一次选举中进行计算
cluster.initial_master_nodes: ["172.16.1.11:9300"]
#启用节点上Elastic Search的xpack安全功能
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.keystore.password: <password>
xpack.security.transport.ssl.truststore.password: <password>

创建用户组

groupadd elasticsearch
useradd -g elasticsearch -M elasticsearch

配置环境变量

cat > /etc/profile.d/elasticsearch.sh << 'EOF'
ES_HOME=/data/elasticsearch-8.12.2
PATH=$PATH:$ES_HOME/bin:$HOME/bin
EOF
source /etc/profile

创建xpack证书,第一个节点创建,其他节点scp同步即可

mkdir -p /data/elasticsearch-8.12.2/config/certs
elasticsearch-certutil ca --out config/certs/elastic-stack-ca.p12 --pass <password> -s
elasticsearch-certutil cert --ca config/certs/elastic-stack-ca.p12 --out config/certs/elastic-certificates.p12 --ca-pass <password> --pass <password> -s

设置权限

chown -R elasticsearch.elasticsearch /data/elasticsearch-8.12.2/

配置内核参数

vm.max_map_count=655360

创建systemd配置文件

cat > /etc/systemd/system/elasticsearch.service <<EOF
[Unit]
Description=Elasticsearch Service
After=network.target remote-fs.target nss-lookup.target

[Service]
User=elasticsearch
Group=elasticsearch

ExecStart=/data/elasticsearch-8.12.2/bin/elasticsearch
LimitNOFILE=65536
LimitMEMLOCK=infinity

[Install]
WantedBy=multi-user.target
EOF

启动服务

systemctl enable elasticsearch
systemctl start elasticsearch
systemctl status elasticsearch

设置密码,一个节点执行即可

elasticsearch-reset-password -u elastic -i

集群验证

测试集群状态

curl -u elastic:<password> http://localhost:9200/_cat/nodes
文章作者: 慕容峻才
文章链接: https://www.acaiblog.top/elasticsearch集群部署/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿才的博客
微信打赏
支付宝打赏