- 准备3台机器
192.168.1.41
192.168.1.42
192.168.1.43
因为es集群有几个节点,所以我对应node1,node2,node3.这几个名称并不是主机名,而是es节点名称
2. 开始部署,基础配置 (三台都做)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "* soft nproc 65536" >> /etc/security/limits.conf
echo "* hard nproc 65536" >> /etc/security/limits.conf
echo "* soft memlock unlimited" >> /etc/security/limits.conf
echo "* hard memlock unlimited" >> /etc/security/limits.conf
echo "vm.max_map_count = 655360" >> /etc/sysctl.conf
sysctl -p
3.开始部署es集群
官网下载
我用的是 elasticsearch-8.2.3-linux-x86_64.tar.gz
8.0版本后,默认增加安全配置,默认启动就行
创建用户
出于安全考虑,elasticsearch默认不允许以root账号运行。
groupadd es
useradd -g es es
echo "123456"|passwd --stdin es
启动node1
(1)解压
tar -zxvf elasticsearch-8.2.3-linux-x86_64.tar.gz -C /opt/
cd /opt/elasticsearch-8.2.3
mkdir data
chown -R es:es elasticsearch-8.2.3/
(2)
vi /opt/elasticsearch-8.2.3/config/elasticsearch.yml
添加这几行
#添加
cluster.name: test-es
node.name: node1
path.data: /opt/elasticsearch-8.2.3/data
path.logs: /opt/elasticsearch-8.2.3/logs
network.host: 192.168.1.41
http.port: 9200
启动后elasticsearch.yml里面会多出来几行,认证这个不想要可以关掉。为了安全这个必须的。不需要你添加,自动生成下面配置文件(你只需要添加上面的几行)。
# 启用安全功能
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
# 为HTTP API客户端连接(如Kibana、Logstash和代理)启用加密
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
# 启用群集节点之间的加密和相互身份验证
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
#仅使用当前节点创建新群集
#其他节点稍后仍可以加入群集
cluster.initial_master_nodes: ["node1"]
vi /opt/elasticsearch-8.2.3/config/jvm.options
#调整一下,我这边是测试
-Xms1g
-Xmx1g
(3)启动
注意启动使用用户:es 非root
#启动该节点并记录启动日志
cd /app/elasicsearch/elasticsearch-8.4.3
#启动es节点,后台启动
bin/elasticsearch -d
#正常启动,关注如下日志:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Elasticsearch security features have been automatically configured!
✅ Authentication is enabled and cluster connections are encrypted.
#生成默认用户:elastic 密码:u++ZdsMJ6JcvL2JHhauo
ℹ️ Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
u++ZdsMJ6JcvL2JHhauo
ℹ️ HTTP CA certificate SHA-256 fingerprint:
d673d6c209a69753a82ded21ccb7791aa667761619a865ca58929f3f2edb7f14
#生成kibana链接es的token,有效时间:30分钟 如果失效,往下看第五步
ℹ️ Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
eyJ2ZXIiOiI4LjQuMyIsImFkciI6WyIxMC4yNDguMTkwLjE3Njo5MjAwIl0sImZnciI6ImQ2NzNkNmMyMDlhNjk3NTNhODJkZWQyMWNjYjc3OTFhYTY2Nzc2MTYxOWE4NjVjYTU4OTI5ZjNmMmVkYjdmMTQiLCJrZXkiOiI4czY0UFlRQkEyYkIza3RQYnJ3Mjp0amx1ZzNaVFNHS2dPbURScW5wVXpRIn0=
#生成es其他节点加入该集群的token,有效时间:30分钟 如果失效,往下看第五步
ℹ️ Configure other nodes to join this cluster:
• Copy the following enrollment token and start new Elasticsearch nodes with `bin/elasticsearch --enrollment-token <token>` (valid for the next 30 minutes):
eyJ2ZXIiOiI4LjQuMyIsImFkciI6WyIxMC4yNDguMTkwLjE3Njo5MjAwIl0sImZnciI6ImQ2NzNkNmMyMDlhNjk3NTNhODJkZWQyMWNjYjc3OTFhYTY2Nzc2MTYxOWE4NjVjYTU4OTI5ZjNmMmVkYjdmMTQiLCJrZXkiOiI5TTY0UFlRQkEyYkIza3RQYnJ3NDp6VTByVFp3bVR3S1R4MUk5TzRNVS1nIn0=
If you're running in Docker, copy the enrollment token and run:
`docker run -e "ENROLLMENT_TOKEN=<token>" docker.elastic.co/elasticsearch/elasticsearch:8.4.3`
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#启动后,ES会自动配置集群配置、安全配置,并追加到elasticsearch.yml文件中
#ssl证书等配置,生成到config/certs目录中。
#后续节点加入集群,会自动同步该节点的配置,不要人工手动配置。
启动node2参考配置
1.部署位置参考node1
2.配置文件参考node1
基础配置与配置node-1相同【不要启动】
注意使用用户:es 非root
解压安装包,配置elasticsearch.yml与jvm.options
不要把ip与节点名称配置重复了。
其余不要动
启动node2
注意添加节点前必须获取一次token值
#**在node1上面执行命令获取token值**-----------------------
[root@ZJS01 ~]# cd /opt/elasticsearch-8.2.3/
[root@ZJS01 elasticsearch-8.2.3]# bin/elasticsearch-create-enrollment-token -s node
eyJ2ZXIiOiI4LjIuMyIsImFkciI6WyIxOTIuMTY4LjEuNDE6OTIwMCJdLCJmZ3IiOiJmNzIxMmI1ZjI4NjIyOTlmMTRjZWE4NjQzYmQ1MWE1ZTJjZjYyYjU5MjU5ZGZhYWM4OGZkMmUxNzVlMjA5MmZmIiwia2V5Ijoid3kzZGlJWUJrcU03SVlSRFUyYXg6aGlyLUdJSHdSRVdRTTZtbUI2U1ljdyJ9
#node2启动与node1不同,node2启动通过node-1提供的token直接加入集群,同步node-1的所有默认配置。
#**node2上面执行**——————————————————————————————
cd /opt/elasticsearch-8.2.3
#第一次启动node-2 es节点,后台启动
#需要注意的是这个token值,你的在node1上面去执行获取。加节点的时候必须执行
bin/elasticsearch -d --enrollment-token 复制日志中的node-token
#启动成功后,es自动配置elasticsearch.yml中集群以及安全等,不要去改动配置。
#如果后续关闭节点重启,则使用以下命令:
bin/elasticsearch -d
#查看日志确认节点加入集群
#node-1节点操作
cd /opt/elasticsearch-8.2.3/
cat logs/test-es_server.json
#发现 node add日志则表示加入成功
node-3配置与启动,与node-2相同,按照步骤操作即可。token可重复使用。
以后重启es节点的时候可以使用这个命令
#如果后续关闭节点重启,则使用以下命令:
bin/elasticsearch -d
配置安装kibana
版本:kibana-8.2.3-linux-x86_64.tar.gz
tar -zxvf kibana-8.2.3-linux-x86_64.tar.gz -C /home/es
vi kibana-8.2.3/config/kibana.yml
#添加
erver.port: 5601
server.host: "0.0.0.0"
i18n.locale: "zh-CN"
启动
用普通用户es启动
su - es
/home/es/kibana-8.2.3/bin/kibana &
访问http://ip:5601
界面上会让你输入
kibana的token值输入
bin/elasticsearch-create-enrollment-token -s kibana
会让你输入验证码
登录的时候
账号就是生成的elastic
如果忘记密码记得
重置elastic 密码
bin/elasticsearch-reset-password -u elastic
到此完成