前言一、准备环境二、Elasticsearch集群搭建
1.安装JDK2.下载elasticsearch3.安装elasticsearch4.配置目录5.创建用于存放数据与日志的目录6.集群配置7.JVM配置8.使用ROOT账户执行以下命令9.启动服务 总结
前言
文章详细介绍了在 Centos7 环境下搭建 ES 7.9.0 集群。
部署ES集群,三台机器同样的操作
一、准备环境
采用三台 CentOS7.9 部署Elasticsearch集群。
| 系统 | 节点名称 | IP地址 |
|---|---|---|
| centos 7.9 | node01 | 192.168.60.201 |
| centos 7.9 | node02 | 192.168.60.202 |
| centos 7.9 | node03 | 192.168.60.203 |
Elasticsearch是基于Java开发是一个Java程序,运行在Jvm中,所以第一步要安装JDK。
详细请移步 :
Centos7 安装JDK1.8详细过程
https://www.elastic.co/cn/downloads/elasticsearch,是ELasticsearch的官方站点,如果需要下载最新的版本,进入官网下载即可。可以下载到本地电脑然后再导入CentOS中,也可以直接在CentOS中下载。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.0-linux-x86_64.tar.gz3.安装elasticsearch
tar -zxvf elasticsearch-7.9.0-linux-x86_64.tar.gz4.配置目录
安装完毕后会生成很多文件,包括配置文件日志文件等等,下面几个是最主要的配置文件路径
/usr/local/src/elasticsearch-node01/config/elasticsearch.yml #elasticsearch的配置文件 /usr/local/src/elasticsearch-node01/config/jvm.options #JVM相关的配置,内存大小等等 /usr/local/src/elasticsearch-node01/ # elasticsearch 安装目录 /data/elk1/data # 数据存放路径 /data/elk1/logs # 日志存放路径5.创建用于存放数据与日志的目录
数据文件会随着系统的运行飞速增长,所以默认的日志文件与数据文件的路径不能满足我们的需求,需要手动创建日志与数据文件路径。
mkdir -p /data/elk1/data mkdir -p /data/elk1/logs6.集群配置
vim /usr/local/src/elasticsearch-node01/config/elasticsearch.yml
cluster.name: my-application # 集群名称 node.name: node-1 # 节点名称,仅仅是描述名称,用于在日志中区分 #是不是有资格竞选主节点 node.master: true #是否存储数据 node.data: true path.data: /data/elk1/data # 数据的存放路径 path.logs: /data/elk1/logs # 日志的存放路径 network.host: 192.168.60.201 # 当前节点的IP地址 http.port: 9200 # 对外提供服务的端口,9300为集群服务的端口 #添加如下内容 #culster transport port transport.tcp.port: 9300 transport.tcp.compress: true discovery.seed_hosts: ["192.168.60.201:9300", "192.168.60.202:9300", "192.168.60.203:9300"] # 集群每个节点IP地址。 cluster.initial_master_nodes: ["node-1", "node-2", "node-3"] #es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master discovery.zen.minimum_master_nodes: 2 # 为了避免脑裂,集群节点数最少为 半数+1 #只要指定数量的节点加入集群,就开始进行恢复 gateway.recover_after_nodes: 2 #如果期望的节点数量没有达标,那么会等待一定的时间,然后就开始进行shard recovery,默认是等待5m gateway.recover_after_time: 5m #要求必须有多少个节点在集群中,当加入集群中的节点数量达到这个期望数值之后,每个node的local shard的恢复就会理解开始,默认的值是0,也就是不会做任何的等待 gateway.expected_nodes: 2 #查询结果在分片上找到的条目超过了限定的10000个,官网限制在10000是为了其性能考虑的。需要调大search.max_buckets这个参数。 search.max_buckets: 90000000 #es的查询参数限制,默认是限制只能传入1024个参数 indices.query.bool.max_clause_count: 10240 #将阻止主副本分片被分配到同一台物理机,提高可用性。 cluster.routing.allocation.same_shard.host:true #ES默认开启了内存地址锁定,为了避免内存交换提高性能。但是Centos6不支持SecComp功能,启动会报错,Centos7支持 bootstrap.memory_lock: true #设置是否压缩tcp传输时的数据,默认为false,不压缩。 transport.tcp.compress: true # 是否支持跨域 http.cors.enabled: true # *表示支持所有域名 http.cors.allow-origin: "*"
三台机器不一样的配置点如下
node.name: node-1 #192.168.60.201 node.name: node-2 #192.168.60.202 node.name: node-3 #192.168.60.2037.JVM配置
由于Elasticsearch是Java开发的,所以可以通过/etc/elasticsearch/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。
不过其中还是有两项最重要的-Xmx1g与-Xms1gJVM的最大最小内存。如果太小会导致Elasticsearch刚刚启动就立刻停止。太大会拖慢系统本身。
vim /usr/local/src/elasticsearch-node01/config/jvm.options -Xms1g 修改为 ===> -Xms2g -Xmx1g 修改为 ===> -Xmx2g
设置为物理内存一半最佳,可根据服务器内存去选择调。
ElasticSearch内存调优详情,请移步 :ElasticSearch内存调优
8.使用ROOT账户执行以下命令elasticsearch的相关配置已经完成,下面需要启动elasticsearch集群。但是由于安全的考虑,elasticsearch不允许使用root用户来启动,所以需要创建一个新的用户,并为这个账户赋予相应的权限来启动elasticsearch集群。
添加用户
useradd elk
修改ES目录权限
chown -R elk:elk /usr/local/src/elasticsearch-node01/ chown -R elk:elk /data/elk19.启动服务
需切换为elk用户
su elk
启动服务(当前的路径为:/usr/local/src/elasticsearch-node01/)
./bin/elasticsearch
后台运行es :
nohup ./bin/elasticsearch >>elasticsearch.log &
查看服务是否正常
curl localhost:9200
服务正常显示结果 :
总结
如果此篇文章有帮助到您, 希望打大佬们能关注、点赞、收藏、评论支持一波,非常感谢大家!
如果有不对的地方请指正!!!



