Linux上Elasticsearch 集群部署指南

Es 集群部署

  • [Es 集群部署](#Es 集群部署)

Es 集群部署

准备好三台服务器。示例使用:110.0.5.141/142/143

1、es用户和用户组创建,使用root账号

shell 复制代码
groupadd es

useradd -g es es

2、将es安装包和ik分词器上传到:/home/es/目录下(任意目录都行),并解压

shell 复制代码
cd /home/es

tar -zxvf elasticsearch-7.17.5-linux-x86_64.tar.gz

3、将ik解压后目录下的整个(ik分词器插件)上传到/home/es/elasticsearch-7.17.5/plugins

4、配置es的java环境变量(ES包里自带了jdk直接使用即可)。使用es用户。

shell 复制代码
cd /home/es

vim /etc/profile
shell 复制代码
export PATH
export ES_JAVA_HOME=/home/es/elasticsearch-7.17.5/jdk
export CLASSPATH=.:$ES_JAVA_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar
export PATH=$ES_JAVA_HOME/bin:$PATH

配置完刷新一下 source /etc/profile

5、修改elasticsearch.yml

shell 复制代码
cd /home/es/elasticsearch-7.17.5/config

vi elasticsearch.yml (改配置都注释了,放开注释直接配置,跨域访问配置需要添加在末尾)

141服务器:

yaml 复制代码
cluster.name: my-es
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["110.0.5.141", "110.0.5.142", "110.0.5.143"]
cluster.initial_master_nodes: ["110.0.5.141"]
#允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

142服务器:

yaml 复制代码
cluster.name: my-es
node.name: node-2
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["110.0.5.141", "110.0.5.142", "110.0.5.143"]
cluster.initial_master_nodes: ["110.0.5.141"]
#允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

143服务器:

yaml 复制代码
cluster.name: my-es
node.name: node-2
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["110.0.5.141", "110.0.5.142", "110.0.5.143"]
cluster.initial_master_nodes: ["110.0.5.141"]
#允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

6、配置ca证书

1.新增配置

每个集群节点都需要设置,编辑 elasticsearch.yml 文件:

shell 复制代码
cd /home/isearch/es
vi es-cluster-01/config/elasticsearch.yml
vi es-cluster-02/config/elasticsearch.yml
vi es-cluster-03/config/elasticsearch.yml
yaml 复制代码
# 设置启用了X-Pack安全特性,包括身份验证、授权、加密通信和审计等功能
xpack.security.enabled: true
# 设置指定了使用基本类型的自生成许可证
xpack.license.self_generated.type: basic
# 设置启用了节点间通信的SSL/TLS加密
xpack.security.transport.ssl.enabled: true
 
# 设置定义了SSL/TLS通信时的证书验证模式
xpack.security.transport.ssl.verification_mode: certificate
# 设置指定了包含SSL密钥和证书的PKCS#12文件(.p12)的路径
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
# 设置指定了包含受信任证书集合的PKCS#12文件的路径
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

2.生成CA证书,es的bin目录下

shell 复制代码
cd /home/isearch/es/es-cluster-01/bin
 
./elasticsearch-certutil ca

Please enter the desired output file [elastic-stack-ca.p12]: // 设置文件生成名称(可回车跳过,默认为elastic-stack-ca.p12)

Enter password for elastic-stack-ca.p12 : // 设置证书密码(如不设置也可回车跳过)

3.对生成的CA证书进行验证

依次执行以下命令

shell 复制代码
# 依次输入上一个步骤的密码。回车(文件使用默认名),密码(建议与上一步密码相同)
./elasticsearch-certutil cert --ca elastic-stack-ca.p12  
   #并输入第一步输入的密码
./elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password  
  #并输入第一步输入的密码
./elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password 

执行完命令后会得到三个文件,如不设置文件名称,则是elastic-certificates.p12、elasticsearch.keystore、elastic-stack-ca.p12

其中(我的设置完路径如下)elastic-certificates.p12、elastic-stack-ca.p12在es根路径,elasticsearch.keystore在config目录下

将这三个文件都拷贝到config目录下,然后在之前的xpack配置后增加:

shell 复制代码
cd /home/isearch/es/es-cluster-01
 
mv elastic-certificates.p12 ./config/
 
mv elastic-stack-ca.p12 ./config/

将节点 1 上的证书依次拷贝到其他节点:

配置修改完成,重启es服务

6、修改jvm配置

powershell 复制代码
cd /home/es/elasticsearch-7.17.5/config

vi jvm.options

内存大小按照实际情况修改。默认为4g

-Xms1g
-Xmx1g

7、文件数和句柄数修改

vim /etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

8、vm.max_map_count参数修改

vim /etc/sysctl.conf

shell 复制代码
##文件末尾添加并保存
vm.max_map_count=262144

执行一下命令刷新下配置 sysctl -p

9、配置都修改完毕后,需要将用户目录权限全部给到es用户。(因为elasticSearch不能使用root用户启动)

shell 复制代码
chown -R es:es /home/es

10、切换到es用户然后,启动es

shell 复制代码
su es

cd /home/es/elasticsearch-7.17.5/bin

./elasticsearch (后台启动命令./elasticsearch -d)

ES 集群不启动,下面的添加密码操作执行不了,所以依次启动 3 个节点。

shell 复制代码
~/es/es-cluster-01/bin/elasticsearch -d
 
~/es/es-cluster-02/bin/elasticsearch -d
 
~/es/es-cluster-03/bin/elasticsearch -d

11、es设置密码访问

1)修改es根目录下的elasticsearch.yml配置文库,写入下面配置。

cd /home/es/elasticsearch-7.17.5/config/elasticsearch.yml

yaml 复制代码
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

修改完成后重启elastic

2)设置密码,进入bin目录下执行命令。在任意一台es机器执行设置用户名和密码(uxun2024)的命令

shell 复制代码
cd /home/isearch/es/es-cluster-01/bin
 
./elasticsearch-setup-passwords interactive

浏览器访问:168.165.34.44:9200;

用户密码登录=> 用户名:elastic 密码:自己设置的密码(2025);

13、创建ES索引,有三种方式;

  1. postman直接请求;
  2. cur请求
  3. kibana请求

1.通过postman请求Elasticsearch 的 RESTFul API 创建索引;

2.登录es,账号:elastic 密码:2025;

3.复制登陆后Authorization信息使用postman的PUT请求ES;

4.找到索引文件,只需要执行mapping类文件,复制里面内容,如果包含_doc则去掉;

5.es请求后缀如第一个文件为order,put请求内容地址为:192.168.5.142:9200/order;

6.若执行错误内容,讲put请求改为delete请求即可删除;

后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹

相关推荐
Yvonne9782 小时前
创建三个节点
java·大数据
OJAC近屿智能5 小时前
苹果新品今日发布,AI手机市场竞争加剧,近屿智能专注AI人才培养
大数据·人工智能·ai·智能手机·aigc·近屿智能
lucky_syq5 小时前
Spark算子:大数据处理的魔法棒
大数据·分布式·spark
m0_748233648 小时前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
圣享科技SMARTLIC8 小时前
企业软件合规性管理:构建高效、安全的软件资产生态
大数据·安全·浮动许可证监控·许可证管理·浮动许可证优化·软件资产管理·浮动许可证管理
京东零售技术8 小时前
京东广告基于 Apache Doris 的冷热数据分层实践
大数据
D愿你归来仍是少年8 小时前
解决Python升级导致PySpark任务异常方案
大数据·开发语言·python·spark
光仔December8 小时前
【Elasticsearch入门到落地】8、RestClient操作索引库-基础介绍及导入demo
elasticsearch·搜索引擎·全文检索·索引·映射
risc1234568 小时前
【Elasticsearch】Retrieve inner hits获取嵌套查询的具体的嵌套文档来源,以及父子文档的来源
elasticsearch
薇晶晶9 小时前
如何安装Hadoop
大数据·hadoop·分布式