linux下ELK 6.6 版本之ElasticSearch多节点(ElasticSearch集群)的安装部署

续我的上篇博文:https://mp.csdn.net/postedit/89330809即Head插件已经安装部署好;

和我的上上篇博文:https://mp.csdn.net/postedit/8932206即ElasticSearch单节点已经安装部署好。

一、实验环境(rhel7.3版本)

1selinux和firewalld状态为disabled

2各主机信息如下:

主机 ip
server1(es节点1),内存至少2G 172.25.83.1
server2(es节点2),内存至少2G 172.25.83.2
server1(es节点3),内存至少2G 172.25.83.3

二、ElasticSearch多节点(ElasticSearch集群)的安装部署

配置server1:

上上篇博文已经配置好

只需编辑elasticsearch的主配置文件/etc/elasticsearch/elasticsearch.yml设置集群中master节点的初始列表,即可。

[root@server1 ~]# vim /etc/elasticsearch/elasticsearch.yml
 72 discovery.zen.ping.unicast.hosts: ["server1", "server2", "server3"]

[root@server1 ~]# systemctl restart elasticsearch.service

配置server2和server3:配置方法同server1,只需将server1配置过程中关于server1的内容替换为server2和server3的即可。

1、下载ElasticSearch所需的软件包(elasticsearch-6.6.1.rpm),及其依赖的jdk包(jdk-8u181-linux-x64.rpm),并进行安装

[root@server1 ~]# scp elasticsearch-6.6.1.rpm jdk-8u181-linux-x64.rpm server2:

[root@server2 ~]# ls
elasticsearch-6.6.1.rpm  jdk-8u181-linux-x64.rpm

[root@server2 ~]# rpm -ivh jdk-8u181-linux-x64.rpm
[root@server2 ~]# rpm -ivh elasticsearch-6.6.1.rpm 



#server3端的安装同server2端

搭建集群,最好保证每个节点的环境相同。因为安装完elasticsearch软件之后,会自动生成elasticsearch用户。所以这里要保证每个节点(这里是server1,server2和server3)上的elasticsearch用户的uid和gid相同。如何不一致,则需要进行调整,使其一致

server1端
[root@server1 ~]# id elasticsearch
uid=997(elasticsearch) gid=995(elasticsearch) groups=995(elasticsearch)


server2端
[root@server2 ~]# id elasticsearch
uid=997(elasticsearch) gid=995(elasticsearch) groups=995(elasticsearch)


server3端
[root@server3 ~]# id elasticsearch
uid=997(elasticsearch) gid=995(elasticsearch) groups=995(elasticsearch)

2、编辑elasticsearch的主配置文件/etc/elasticsearch/elasticsearch.yml

配置server2
[root@server1 ~]# scp /etc/elasticsearch/elasticsearch.yml server2:/etc/elasticsearch/

[root@server2 ~]# vim /etc/elasticsearch/elasticsearch.yml   #只需将其中关于server1的内容替换为server2的即可
 23 node.name: server2
 55 network.host: 172.25.83.2

 
配置server3
[root@server1 ~]# scp /etc/elasticsearch/elasticsearch.yml server3:/etc/elasticsearch/

[root@server3 ~]# vim /etc/elasticsearch/elasticsearch.yml   #只需将其中关于server1的内容替换为server3的即可
 23 node.name: server3
 55 network.host: 172.25.83.3
  • 查看配置文件/etc/elasticsearch/elasticsearch.yml中不以#开头的行。以此来查看修改了哪些内容。

3、编辑/etc/security/limits.conf和elasticsearch服务的启动脚本(/usr/lib/systemd/system/elasticsearch.service

[root@server1 ~]# scp /etc/security/limits.conf server2:/etc/security/

[root@server1 ~]# scp /usr/lib/systemd/system/elasticsearch.service server2:/usr/lib/systemd/system/elasticsearch.service


#server3端同server2端

4、启动elasticsearch服务,并查看该服务对应的9200端口是否已经打开

[root@server2 ~]# systemctl start elasticsearch
[root@server2 ~]# netstat -antulpe | grep 9200
tcp6       0      0 172.25.83.2:9200        :::*                    LISTEN      997        25212      2543/java 



#server3端同server2端

5、测试,确保ElasticSearch集群部署成功

测试一:访问web界面

刷新web界面

从上图我们可以看到之前是黄色的集群健康值,变成了绿色。因为现在有3个节点,满足副本数为1的要求,所以变成了绿色。

同时从上图我们可以看到server1是master节点(前面的标志不同于server2和server3,标志是“星星”)

测试二:查看集群中节点的健康状态(目前有三个节点),以及集群中的节点个数(目前有三个节点)

[root@server1 ~]# curl -XGET http://172.25.83.1:9200/_cat/health?v
epoch      timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1555405577 09:06:17  my-es   green           3         3     10   5    0    0        0             0                  -                100.0%
[root@server1 ~]# curl -XGET http://172.25.83.1:9200/_cat/health
1555405579 09:06:19 my-es green 3 3 10 5 0 0 0 0 - 100.0%


[root@server1 ~]# curl -XGET http://172.25.83.1:9200/_cat/nodes?v
ip          heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.25.83.2           10          96   1    0.03    0.07     0.07 mdi       -      server2
172.25.83.1           15          96   0    0.00    0.01     0.05 mdi       *      server1
172.25.83.3           14          93   0    0.00    0.07     0.06 mdi       -      server3
[root@server1 ~]# curl -XGET http://172.25.83.1:9200/_cat/nodes
172.25.83.2 10 96 0 0.03 0.07 0.07 mdi - server2
172.25.83.1 15 96 1 0.00 0.01 0.05 mdi * server1
172.25.83.3 14 93 0 0.00 0.07 0.06 mdi - server3

至此ElasticSearch多节点的安装部署也就完成了。

下面我们测试当集群中的某个节点down掉之后,会不会实现master的自动迁移

[root@server1 ~]# systemctl stop elasticsearch.service 

刷新web界面

将其中的地址改为http://172.25.83.2:9200http://172.25.83.3:9200

从上图我们可以看到之前是绿色的集群健康值,变成了黄色。server1节点down掉之后,导致某些分片丢失,所以变成了黄色。

同时从上图我们可以看到server2是master节点(前面的标志不同于erver3,标志是“星星”)

此时重新启动server1节点,master节点也不会回切,即server2节点仍为master节点

[root@server1 ~]# systemctl start elasticsearch.service

刷新web界面

从上图我们可以看到之前是黄色的集群健康值,变成了绿色。server1节点又重新启动了,丢失的分片也找回来了,所以变成了绿色。

同时从上图我们可以看到server2是master节点(前面的标志不同于server1和erver3,标志是“星星”)

如果我们想让server1只做master节点,server2和server3只做存储节点,该怎么做呢?

配置server1
[root@server1 ~]# vim /etc/elasticsearch/elasticsearch.yml   #在里面添加如下的内容
 25 node.master: true
 26 node.data: false
[root@server1 ~]# systemctl restart elasticsearch.service 


配置server2
[root@server2 ~]# vim /etc/elasticsearch/elasticsearch.yml   #在里面添加如下的内容
 25 node.master: false
 26 node.data: true
[root@server2 ~]# systemctl restart elasticsearch.service 



配置server3
[root@server3 ~]# vim /etc/elasticsearch/elasticsearch.yml   #在里面添加如下的内容
 25 node.master: false
 26 node.data: true
[root@server3 ~]# systemctl restart elasticsearch.service 

刷新web界面

从上图中,我们可以看到,只有server2和server3端存储有数据,server1端没有存储数据。这表明配置成功。

猜你喜欢

转载自blog.csdn.net/qq_42303254/article/details/89335965
今日推荐