单机部署
解压文件
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台机器上重复上述安装步骤即可,以下再强调集群部署中的一些踩坑点
- 证书需要确保每个节点均保持一直
- 设置密码访问时,只要在其中一个节点进行即可
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。