单机部署
- 解压文件
tar -zxvf elasticsearch-8.7.1-linux-x86_64.tar.gz
mv elasticsearch-8.7.1 /usr/local/share/
- 创建用户组
groupadd elastic
- 创建ES启动用户
- es不能以root用户启动,单独新建一个普通用户
useradd elastic -g elastic -p elastic
- 创建前置目录
# 数据存储目录
mkdir /var/lib/elasticsearch_data
# 日志存储目录
mkdir /var/log/elasticsearch_log
# PID目录
mkdir /var/run/elasticsearch
- 修改目录权限
chown -R elastic:elastic /usr/local/share/elasticsearch-8.7.1
chown -R elastic:elastic /var/lib/elasticsearch_data
chown -R elastic:elastic /var/log/elasticsearch_log
chown -R elastic:elastic /var/run/elasticsearch
- 修改节点内存参数
echo -e "vm.max_map_count=655350 \nvm.overcommit_memory=1">>/etc/sysctl.conf
sysctl -p
- 修改节点limit参数
# echo -e "* soft nofile 65536 \n* hard nofile 65536 \n* soft nproc 65536 \n* hard nproc 65536 \n* hard memlock unlimited \n* soft memlock unlimited" >>/etc/security/limits.conf
- 创建证书
- 集群部署时,生成的证书压缩包ca.zip,需要分发到其他机器上,保证所有机器都是同一份证书
./bin/elasticsearch-certutil ca --pem --out ca.zip --days 36500 -s
# 解压
unzip ca.zip
- 修改elasticsearch.yml配置文件
cluster.name: cluster-es
#配置各节点hostname
node.name: node-01
path.data: /var/lib/elasticsearch_data
path.logs: /var/log/elasticsearch_log
#配置各节点IP
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["es01", "es02","es03"]
cluster.initial_master_nodes: ["es01", "es02","es03"]
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.key: /home/elasticsearch-8.7.1/config/cert/ca/ca.key #上一步骤生成的证书
xpack.security.transport.ssl.certificate: /home/elasticsearch-8.7.1/config/cert/ca/ca.crt
- 节点启动
- 测试单台机子上是否能够成功运行
# 后台运行
nohup /usr/local/share/elasticsearch-8.7.1/bin/elasticsearch >/var/log/elasticsearch_log/cluster-es.log 2>&1 &
curl -u "es用户名:es用户密码" 127.0.0.1:9200
- 设置密码访问
- 设置密码访问,需注意节点上es要保持启动状态
- 集群部署时,只要其中一个节点进行该步骤即可
# 按照提示一步步生成即可,这里图方便将所有的密码都设置成一样
./bin/elasticsearch-setup-passwords interactive
ps:假如密码忘记,或者有人手欠将.security-7索引删除,可登录一个节点重置密码
# 重置密码需要指定账户 -u [用户名]
./bin/elasticsearch-reset-passwords -u elastic
服务化配置
- 创建service文件
vim /etc/systemd/system/elasticsearch.service
service文件内容如下
[Unit]
Description=elasticsearch
After=network.target
[Service]
# data根目录
Environment="DATA_DIR=/var/lib/elasticsearch_data"
# log根目录
Environment="LOG_DIR=/var/log/elasticsearch_log"
# PID根目录
Environment="PID_DIR=/var/run/elasticsearch"
User=elastic
Group=elastic
ExecStart=/usr/local/share/elasticsearch-8.7.1/bin/elasticsearch -p ${PlD DlR)/elasticsearch.pid --quiet
ExecStop=/bin/kill -s TERM $MAINPID
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
- 刷新elasticsearch.service配置信息
systemctl daemon-reload
- 重启服务
systemctl restart elasticsearch.service
- 查看节点运行状况
systemctl status elasticsearch.service
- 设置开机自启动
systemctl enable elasticsearch.service
集群部署
参考【单机部署】【服务化配置】,我们已成功运行一个节点,在另外2台机器上重复上述安装步骤即可,以下再强调集群部署中的一些踩坑点
- 证书需要确保每个节点均保持一直
- 设置密码访问时,只要在其中一个节点进行即可