软件 | 版本 |
---|---|
Elasticsearch版本 | 7.17.22 |
系统 | Ubuntu 64bit |
节点规格 | 磁盘容量 | 数量 | 用途 |
---|---|---|---|
16C64G | 4096G SSD | 3 | Elasticsearch Data Node |
4C16G | 100G SSD | 3 | Elasticsearch Master Node |
注:具体规格以生产环境业务需求为准进行评估。
可以使用wget方式进行安装包的下载或直接访问downloads地址下载安装包后上传至相应节点并进行解压。
cd /data
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.22-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.22-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-7.17.22-linux-x86_64.tar.gz.sha512
tar -zxzf elasticsearch-7.17.22-linux-x86_64.tar.gz
cd elasticsearch-7.17.22/
注:在本文中统一安装至/data目录下
这里我们使用Elasticsearch安装包中自带的JDK环境,配置JDK环境变量。
vi /etc/profile
#在文件末尾加入以下三行内容
export JAVA_HOME=/data/elasticsearch-7.17.22/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#添加完成后进行保存
:wq
#使用source命令进行profile文件的更新
source /etc/profile
执行java -version验证JDK版本,如下图所示,即为JDK环境配置成功。
进入”/data/elasticsearch-7.17.22/config”目录下,找到”jvm.options”文件。
cd /data/elasticsearch-7.17.22/config
vi jvm.options
#找到IMPORTANT: JVM heap size部分
#打开##,修改JVM堆内存额度
-Xms32g
-Xmx32g
#保存并退出
:wq
修改后如图所示:
注:Elasticsearch节点堆内存默认设置为节点内存总额度的一半,最大支持设置为32g。
进入”/data/elasticsearch-7.17.22/config”目录下,找到” elasticsearch.yml”文件。
进入文件后需要找到以下属性并进行属性值修改(修改时需要打开#注释):
cd /data/elasticsearch-7.17.22/config
vi elasticsearch.yml
#设置集群名称
cluster.name: demo-cluster
#设置节点名(可以根据节点角色与节点主机名进行设置)
node.name: es-data-node1
#如果节点为集群的专用主节点,需添加以下两行内容
node.master: true
node.data: false
#设置数据存放目录(需要设置为节点数据磁盘的挂载目录)
path.data: /path/to/data
#设置日志存放目录
path.logs: /var/logs/elasticsearch
#打开启动时锁定内存
bootstrap.memory_lock: true
#设置节点在网络中的IP(建议设置为节点的IP地址,需要替换为实际的节点IP)
network.host: 192.168.10.100
#设置HTTP端口
http.port: 9200
#设置transport通信端口,添加以下内容
transport.tcp.port: 9300
#设置节点发现列表(主要配置用于作为主节点的IP与端口,建议配置为奇数)
discovery.seed_hosts: ["192.168.10.100:9300","192.168.231.10:9300","192.168.231.10:9300"]
#设置节点发现时间
discovery.find_peers_interval: 120s
#设置初始符合主节点条件的节点进行集群引导(这里需要配置为与seed_hosts中配置的IP对应的主机名)
cluster.initial_master_nodes: ["es-node1", " es-node2","es-node3"]
生成CA证书
./bin/elasticsearch-certutil ca
在生成时,可以按需设置证书的名字与证书的密码,改密码设置后建议记录保存。
然后在elasticsearch.yml文件末尾添加以下证书配置内容,这里需要正确配置证书的名称,路径等信息.
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: elastic-ca.p12
xpack.security.transport.ssl.truststore.path: elastic-ca.p12
由于之前在创建证书时输入了密码,这里需要执行以下两步,将密码保存至Elasticsearch的秘钥库中。
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
这里每执行一步都需要输入之前创建证书时输入的密码
由于Elasticsearch在启动时,不允许使用root账户进行启动,所以需要为Elasticsearch单独创建用户与用户组。
#依次执行以下命令进行用户组与用户的创建
useradd elasticsearch
groupadd elasticsearch
usermod -a -G elasticsearch elasticsearch
#修改Elasticsearch安装目录及文件的用户与用户组
chown -R elasticsearch:elasticsearch elasticsearch-7.17.22
这里以守护进程的模式进行Elasticsearch服务的启动。
#切换至elasticsearch用户
su elasticsearch
#以守护进程的方式启动Elasticsearch
cd /data/elasticsearch-7.17.22
./bin/elasticsearch -d -p pid
#终止Elasticsearch服务
pkill -F pid
运行以下命令,进行Elasticsearch相应账户的修改,用于设置相关账户的密码,便于后续其他服务进行访问。
bin/elasticsearch-setup-passwords interactive
注:修改后的密码建议保存,后续kibana等需要访问Elasticsearch数据的服务都会使用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。