【Elasticsearch】从零开始搭建ES8集群并且集成到Springboot,更好的服务电商类等需要全文索引的项目(一) 您所在的位置:网站首页 springboot集成es6集群 【Elasticsearch】从零开始搭建ES8集群并且集成到Springboot,更好的服务电商类等需要全文索引的项目(一)

【Elasticsearch】从零开始搭建ES8集群并且集成到Springboot,更好的服务电商类等需要全文索引的项目(一)

2023-11-18 21:44| 来源: 网络整理| 查看: 265

从零开始搭建Elasticsearch集群(一) 从零开始搭建Elasticsearch8.6集群(一)简单介绍下Elasticsearch,以及为何使用它下载Elasticsearch准备服务器解压安装配置文件elasticsearch.yml修改调整JVM运行内存设置密码证书认证1.生成证书2.生成秘钥3.迁移凭证地址到config目录下4.其他集群都要将这个凭证移动到这个ES安装的config目录下5.各个集群节点都添加keystore密码 切换用户启动(重要)设置集群访问密码创建完毕进行访问查看

从零开始搭建Elasticsearch8.6集群(一) 简单介绍下Elasticsearch,以及为何使用它

最近公司的电商项目越来越庞大,功能需求点也越来越多,各种C端对查询和检索的要求也越来越高,是时候在项目中引入全文检索了。 ElasticSearch 是一个基于 Lucene 的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,并且是基于Java 开发的,我记得很久之前ES还不流行的时候,我们公司使用的是solr,两者都是基于Lucene的全文搜索服务,其实还都挺好用,使用方式大同小异,现在使用ES的公司越来越多,很多大型门户网站或者电商也使用了ES。既然使用ES那肯定不能使用单机版,单机就是一个demo自己玩玩可以,万万是不能够上生产环境的,所以我们必须学会使用集群搭建。

下载Elasticsearch

ES的官网:https://www.elastic.co/cn/上下载最新稳定版本,我现在使用的版本是8.6.1(elasticsearch-8.6.1-linux-x86_64.tar.gz),下载下来是一个压缩包。因为服务器是linux服务器,所以整个是基于linux进行安装的。

准备服务器

在高可用和高性能方面来说一般要3个以上的服务器,我这开发环境有限,就只安装2台了 192.168.X.111 master 192.168.X.113 slave

解压安装 #下载成功后将压缩包放到到home/elasticsearch目录下面(自己新建一个elasticsearch文件夹),进入目录进行解压 cd /home/elasticsearch/ #解压 tar -zxvf elasticsearch-8.6.1-linux-x86_64.tar.gz

解压之后的目录大概是这样

配置文件elasticsearch.yml修改

原始的文件中,都是配置的介绍和使用方式,我这里挂出我的配置

确保安全,我们需要密码证书的方式进行访问,先贴出配置,后面会生成证书和密码 master配置:

#集群名称 cluster.name: ESsearch #结点名称 多个结点名称不同 node.name: es_node_1 #服务器地址 network.host: 192.168.X.111 #端口号 http.port: 9200 transport.profiles.default.port: 9300 #其他结点的路径 discovery.seed_hosts: ["192.168.X.111:9300", "192.168.X.113:9300"] cluster.initial_master_nodes: ["es_node_1", "es_node_2"] # 允许通配符删除索引 action.destructive_requires_name: true bootstrap.memory_lock: true #设置证书密码访问 下面会说怎么生成证书 xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: /home/elasticsearch/elasticsearch-8.6.1/config/certificates/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: /home/elasticsearch/elasticsearch-8.6.1/config/certificates/elastic-certificates.p12 #日志和索引存储地址 path.data: /home/elasticsearch/elasticsearch-8.6.1/data path.logs: /home/elasticsearch/elasticsearch-8.6.1/logs #是否支持跨域 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length

slave配置(如果多个节点,根据需要同样配置多个就行):

#集群名称 cluster.name: ESsearch #结点名称 多个结点名称不同 node.name: es_node_2 #服务器地址 network.host: 192.168.10.113 #端口号 http.port: 9200 transport.profiles.default.port: 9300 #其他结点的路径 discovery.seed_hosts: ["192.168.10.111:9300", "192.168.10.113:9300"] cluster.initial_master_nodes: ["es_node_1", "es_node_2"] # 允许通配符删除索引 action.destructive_requires_name: true bootstrap.memory_lock: true #设置证书密码访问 xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: /home/elasticsearch/elasticsearch-8.6.1/config/certificates/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: /home/elasticsearch/elasticsearch-8.6.1/config/certificates/elastic-certificates.p12 #日志和索引存储地址 path.data: /home/elasticsearch/elasticsearch-8.6.1/data path.logs: /home/elasticsearch/elasticsearch-8.6.1/logs #是否支持跨域 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length

注意:bootstrap.memory_lock项要设置为true,锁定物理内存地址,防止es内存被交换,从而提高ES性能;但是设置以后因为服务器配置不同可能会启动报错 修改文件/etc/security/limits.conf

执行vim /etc/security/limits.conf 添加以下内容: * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096 在以下配置文件中添加参数: vim /etc/sysctl.conf vm.max_map_count=655360 执行sysctl -p #重启服务配置 systemctl daemon-reload 调整JVM运行内存

进入config目录下的jvm.options文件,本地服务器内存真的不够。。。。只能调整 增加参数: -Xms2g -Xmx2g

设置密码证书认证 1.生成证书 #进入安装bin目录 cd /home/elasticsearch/elasticsearch-8.6.1/ ./bin/elasticsearch-certutil ca #第一个是描述,不填跳过;第二是密码,输入123456(你可以设置你自己的密码) #会生成elastic-stack-ca.p12的文件 2.生成秘钥 ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 #输入刚刚的密码123456,要输入路径直接回车,生成在当前目录下 3.迁移凭证地址到config目录下 # 先创建目录 mkdir ./config/certificates # 移动凭证至指定目录下 mv ./elastic-certificates.p12 ./config/certificates/ # 赋值权限777 chmod 777 ./config/certificates/elastic-certificates.p12 4.其他集群都要将这个凭证移动到这个ES安装的config目录下 5.各个集群节点都添加keystore密码

这里也要切换用户生成密码(参考下面一步的切换用户启动)

#输入生成证书时的密码123456 ./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password ./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password 切换用户启动(重要)

为了确保安全性,ES不允许使用root用户进行启动,当然,为了安全考虑我们本身在使用服务器时也不建议使用root用户直接操作,因为我是开发环境,一般直接就root开整了,所以需要切换用户后再进行启动,如果已经有用户了就不用创建了

#创建用户组 groupadd elsearch #创建用户 useradd elsearch -g elsearch -p 123456 #授予用户权限 chown -R elsearch:elsearch /home/elasticsearch/elasticsearch-8.6.1/ #切换用户 su - elsearch #然后进入安装bin目录 cd /home/elasticsearch/elasticsearch-8.6.1/ #后台启动 ./bin/elasticsearch -d 设置集群访问密码

会设置很多密码 elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,我本地环境全部设置成了123456

./bin/elasticsearch-setup-passwords interactive 创建完毕进行访问查看

至此,集群启动完毕,可以单独访问每台服务器: http://192.168.X.111:9200 http://192.168.X.113:9200 会让你输入账号密码:elastic 123456 在这里插入图片描述

在这里插入图片描述

也可以访问http://192.168.X.111:9200/_cat/nodes查看各节点情况: 在这里插入图片描述 下一篇,详细介绍下如何安装IK分词器和kibana可视化界面 传送门:从零开始搭建Elasticsearch集群(二)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有