1、环境准备

  为了搭建Elasticsearch集群,我们这里准备了三台虚拟机环境,IP地址分别是:192.168.1.8,192.168.1.9,192.168.1.10。并且JDK环境、防火墙配置等都已经准备好了,详细请参考《如何快速搭建一个简易的ELK日志分析系统》,在这篇博文中,我们已经成功搭建了单机版的Elasticsearch环境。

2、集群搭建

  其实基于单机版的ES环境,改造成为ES集群环境,只需要少量配置即可。这里从下载ES开始,重头梳理一遍。

  因为在配置集群的过程中,三台机器都要运行ES服务,其中有很多配置又都是一样的,我们这里选择现在192.168.1.10这台服务器上配置好,然后通过scp服务到另外两台服务器上,再进行个性化的修改,最后实现集群环境的搭建。

2.1、下载

  首先,在192.168.1.10这台机器上下载ES。ES的下载页面:https://www.elastic.co/cn/downloads/elasticsearch 。我这里直接选择了6.3.1这个版本,通过wget下载,命令如下:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.tar.gz
2.2、解压

  解压到当前目录中。

tar -zvxf elasticsearch-6.3.1.tar.gz
2.3、修改elasticsearch.yml中配置

  修改elasticsearch-6.3.1/config目录下的elasticsearch.yml中配置文件。

vim elasticsearch.yml

  修改内容如下:

#集群名称,集群中节点的集群名称要一致
cluster.name: escluster
#节点名称,仅仅是描述名称,用于在日志中区分,不能重复
node.name: 192.168.1.10
#配置data和logs的目录,我这里放到了根目录下的data和logs中
path.data: /usr/local/soft/elasticsearch-6.3.1/data
path.logs: /usr/local/soft/elasticsearch-6.3.1/logs

#当前节点的IP地址
network.host: 192.168.1.10
#对外提供服务的端口
http.port: 9200

#为了避免脑裂,集群节点数最少为 半数+1
discovery.zen.minimum_master_nodes: 2
#自动发现ping其他节点超时时间
discovery.zen.ping_timeout: 3s
#集群各节点IP地址,其中9300为集群服务的默认端口
discovery.zen.ping.unicast.hosts: ["192.168.1.8:9300","192.168.1.9:9300","192.168.1.10:9300"]

2.4、复制ES根目录到其他服务器

  通过scp命令,复制elasticsearch-6.3.1到另外两个节点。

scp -r elasticsearch-6.3.1 node02:$PWD
scp -r elasticsearch-6.3.1 node01:$PWD
2.5、修改另外两个节点的个性化配置

  在elasticsearch.yml配置文件中,除了通用配置外,还有个性化配置,需要修改,比如:node.name、network.host等,当然其他配置也可以配置的不一样,但是为了方便,一般都保证集群上的各节点目录一致。

2.6、添加es用户

  因为elasticsearch不能够使用root用户启动,所以为三台服务器创建用户并授权。

adduser es
chown -R es:es /usr/local/soft/elasticsearch-6.3.1

  可以通过命令窗口,在三台服务器同时执行上述命令。
在这里插入图片描述

2.7、修改系统配置文件

  在前面搭建ELK的时候,我们知道需要修改一些系统配置,Elasticsearch才能正常启动了,可以参考《在搭建ELK日志分析系统中的常见问题和解决方案》,我们这里直接进行修改配置。

  首先,修改/etc/sysctl.conf文件,增加如下配置即可:

#限制一个进程拥有虚拟内存区域的大小
vm.max_map_count=262144

  然后执行下面命令,让配置生效。

#配置生效
sysctl -p

  再,修改vim /etc/security/limits.conf配置

* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096

  其中,

  • nofile 表示最大开打开文件描述符
  • nproc 表示最大用户进程数
2.8、启动

 &esmp;分别启动三个ES节点,如果只启动其中一个节点,这个时候会一直等到其他节点的启动,最终会失败。

#在elasticsearch根目录下执行
./bin/elasticsearch
2.9、验证

  启动成功后,访问任一节点http://192.168.1.10:9200/,会出现如下内容,说明启动成功。

在这里插入图片描述
如果访问http://192.168.1.10:9200/_cat/health?v ,可以查看集群的状态,如下所示:
在这里插入图片描述

  其中,

  • 集群的状态(status):red红表示集群不可用,有故障。yellow黄表示集群不可靠但可用,一般单节点时就是此状态。green正常状态,表示集群一切正常。

  • cluster ,集群名称

  • status,集群状态 green代表健康;yellow代表分配了所有主分片,但至少缺少一个副本,此时集群数据仍旧完整;red代表部分主分片不可用,可能已经丢失数据。

  • node.total,在线节点数

  • node.data,在线数据节点数,存储数据的节点数,

  • shards,分片数,active_shards 存活的分片数量

  • pri,主分片数,active_primary_shards 存活的主分片数量 正常情况下 shards的数量是pri的两倍。

  • relo, relocating_shards 迁移中的分片数量,正常情况为 0

  • init, initializing_shards 初始化中的分片数量 正常情况为 0

  • unassign, unassigned_shards 未分配的分片 正常情况为 0

  • pending_tasks,准备中的任务,任务指迁移分片等 正常情况为 0

  • max_task_wait_time,任务最长等待时间

  • active_shards_percent,激活的分片百分比,正常分片百分比 正常情况为 100%

3、Elasticsearch-head插件的安装和使用

  请参考《Elasticsearch-head插件的安装和使用》

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐