当前位置:   article > 正文

搭建 es 集群_es集群搭建方案

es集群搭建方案

一、VMware准备机器

首先准备三台机器

这里我直接使用 VMware 构建三个虚拟机 都是基于 CentOS7

然后创建新用户

部署 es 需要单独创建一个用户,我这里在构建虚拟机的时候直接创建好了

然后将安装包上传

可以使用 rz 命令上传,也可以使用工具上传

工具包地址:链接:https://pan.baidu.com/s/1sGJW4jErofM3aj2CeU1ncg?pwd=eo6a 
提取码:eo6a 

上传后进行解压

三台机器都需要

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

解压完成

二、配置 jdk

es7 以上内置了 jdk 环境,

但是需要配置一下:

  1. # linux 进入用户主目录,比如/home/heyue/es/目录下,设置用户级别的环境变量
  2. vim .bash_profile
  3. #设置ES_JAVA_HOME和ES_HOME的路径
  4. export ES_JAVA_HOME=/home/heyue/es/elasticsearch-7.17.3/jdk
  5. export ES_HOME=/home/heyue/es/elasticsearch-7.17.3
  6. export PATH=$PATH:/home/heyue/es/elasticsearch-7.17.3/jdk/bin
  7. #执行以下命令使配置生效
  8. source .bash_profile

三、先单机启动

这里可以先启动三台单机的 es

然后配置 ElasticSearch

配置 elasticsearch.yaml 文件

  1. vim elasticsearch.yml
  2. #开启远程访问
  3. network.host: 0.0.0.0
  4. #单节点模式 初学者建议设置为此模式
  5. discovery.type: single-node

修改 JVM 内存 我这里内存比较小,可以根据自己服务器情况进行设置

修改config/jvm.options配置文件,调整jvm堆内存大小

启动 es

  1. bin/elasticsearch
  2. # -d 后台启动
  3. bin/elasticsearch -d

启动成功后通过浏览器访问

如果访问不通,可以看下防火墙端口是否开放:

添加防火墙规则:
打开端口,例如打开端口 9200(HTTP):

sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent

重新加载防火墙规则以应用更改:

sudo firewall-cmd --reload

查看已打开的端口:

sudo firewall-cmd --list-ports

然后可以看到 我这里三台 单机 es 已经启动成功

四、安装 kibana

然后随便找一台机器安装 kibana

同样的上传压缩包,解压

修改配置文件

vim config/kibana.yml

修改一下几个地方

端口:

 网卡监听:

es URL:

中文:

然后启动 kibana

nohup  bin/kibana &

可以看到启动成功

这里注意,别忘了 开放端口 5601

五、集群配置

域名映射

可以先进行域名映射,便于后面维护

执行命令

vim /etc/hosts

注意:这里如果其实文件只读,可以对文件增加写入权限,也可以使用 root 进行修改

添加以下配置:

  1. 192.168.177.201 es-node1
  2. 192.168.177.202 es-node2
  3. 192.168.177.203 es-node3

三台机器同样的操作

然后修改 elasticsearch.yml 配置

首先把刚刚单机配置注释

其他配置:

  1. # 指定集群名称3个节点必须一致
  2. cluster.name: es-cluster
  3. #指定节点名称,每个节点名字唯一
  4. node.name: node-1
  5. #是否有资格为master节点,默认为true
  6. node.master: true
  7. #是否为data节点,默认为true
  8. node.data: true
  9. # 绑定ip,开启远程访问,可以配置0.0.0.0
  10. network.host: 0.0.0.0
  11. #指定web端口
  12. #http.port: 9200
  13. #指定tcp端口
  14. #transport.tcp.port: 9300
  15. #用于节点发现
  16. discovery.seed_hosts: ["es-node1", "es-node2", "es-node3"]
  17. #7.0新引入的配置项,初始仲裁,仅在整个集群首次启动时才需要初始仲裁。
  18. #该选项配置为node.name的值,指定可以初始化集群节点的名称
  19. cluster.initial_master_nodes: ["node-1","node-2","node-3"]
  20. #解决跨域问题
  21. http.cors.enabled: true
  22. http.cors.allow-origin: "*"

配置好之后,先 kill 掉刚刚启动的进程,三台机器同样的操作

 !!!注意修改完成之后,一定一定要记得切换用户,不要使用 root!不要使用 root!不要使用 root!不要使用 root!不要使用 root!不要使用 root!

然后由于刚刚进行单机启动了,所以还需要删除 data 文件夹

  1. # 注意:如果运行过单节点模式,需要删除data目录, 否则会导致无法加入集群
  2. rm -rf data
  3. # 启动ES服务 bin/elasticsearch -d

重新启动:

bin/elasticsearch -d

报错以及解决方案

发现报错可以按照以下方案解决:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错

然后进行配置:

注意需要先切换到 root 

  1. #切换到root用户
  2. vim /etc/security/limits.conf
  3. 末尾添加如下配置:
  4. * soft nofile 65536
  5. * hard nofile 65536
  6. * soft nproc 4096
  7. * hard nproc 4096

[2]: max number of threads [1024] for user [es] is too low, increase to at least [4096]

无法创建本地线程问题,用户最大可创建线程数太小

  1. vim /etc/security/limits.d/20-nproc.conf
  2. 改为如下配置:
  3. * soft nproc 4096

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

最大虚拟内存太小,调大系统的虚拟内存

  1. vim /etc/sysctl.conf
  2. 追加以下内容:
  3. vm.max_map_count=262144
  4. 保存退出之后执行如下命令:
  5. sysctl -p

[4]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

缺少默认配置,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.initial_master_nodes中的一个参数.

  • discovery.seed_hosts: 集群主机列表
  • discovery.seed_providers: 基于配置文件配置集群主机列表
  • cluster.initial_master_nodes: 启动时初始化的参与选主的node,生产环境必填
  1. vim config/elasticsearch.yml
  2. #添加配置
  3. discovery.seed_hosts: ["127.0.0.1"]
  4. cluster.initial_master_nodes: ["node-1"]
  5. #或者指定配置单节点(集群单节点)
  6. discovery.type: single-node

 [5] 

 注意:es默认不能用root用户启动,生产环境建议为elasticsearch创建用户。

  1. #为elaticsearch创建用户并赋予相应权限
  2. adduser es
  3. passwd es
  4. chown -R es:es elasticsearch-7.17.3

配置完成后,注意,一定一定 要记得切换用户,es 不支持 root 启动

如果已经使用 root 启动报错了,需要先执行以下命令进行替换

回到 es 文件夹,执行以下命令,里面的 heyue 换成自己的用户名

chown -R heyue:heyue elasticsearch-7.17.3

如果出现以下信息,那么恭喜,集群搭建成功

六、更新 kibana 配置

然后还需要修改一下 kibana 配置,配置为集群

  1. vim config/kibana.yml
  2. elasticsearch.hosts: ["http://192.168.65.174:9200","http://192.168.65.192:9200","http://192.168.65.204:9200"]

七、安装 Cerebro 客户端

先上传,然后解压

unzip cerebro-0.9.4.zip

 解压完成后直接启动

nohup bin/cerebro > cerebro.log &

然后页面上输入 es 地址链接

到这里,看到这个页面,恭喜 es 集群已经完成搭建完成 

 这里是基于原生安装包的方式进行搭建,基于 docker 搭建也是一样的,使用docker 启动三个单机,然后修改里面的配置文件即可

未来的自己一定会感谢今天努力的自己,加油,我们一起进步!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/962696
推荐阅读
相关标签
  

闽ICP备14008679号