搭建集群基础环境
本篇博客在ELK安装部署之后完成,详情请见ELK的简介与安装部署
接下来,我们要用到几台虚拟机部署ES集群。
主机 | ip |
---|---|
server1 | 172.25.26.1 |
server2 | 172.25.26.2 |
server3 | 172.25.26.3 |
[root@server1 ~]# vim /etc/elasticsearch/elasticsearch.yml
discovery.zen.ping.unicast.hosts: ["server1", "server2", "server3"]
cluster.name: my-es
在server1上设置集群名字,设置集群包含的主机,这里我设置的是server1,server2,server3.
在server2上安装jdk和es。
[root@server2 elasticsearch]# vim elasticsearch.yml
17 cluster.name: my-es
55 network.host: 172.25.26.2
59 http.port: 9200
68 discovery.zen.ping.unicast.hosts: ["server1", "server2", "server3"]
在server2这个节点上进行设置,集群名为my-es,和server1保持一致。
同样的,在server3也进行一样的设定。
[root@server3 elasticsearch]# systemctl restart elasticsearch.service
重启服务。
之后可以在浏览器中查看是否配置成功,直接访问主机的9200端口查看。
搭建ES的web界面
在server1:
首先要下载需要用到的软件包。
elasticsearch-head-master.zip
nodejs-9.11.2-1nodesource.x86_64.rpm
之后将zip这个软件包解压
[root@server1 ~]# yum install -y unzip
[root@server1 ~]# unzip elasticsearch-head-master.zip
[root@server1 ~]# rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm
安装ndoejs。
之后就可以使用npm和node命令了。
可以查看到这些信息。
因为后面需要用到npm源进行部署,所以现在要部署一下npm,可以参考npm镜像源管理
[root@server1 bin]# npm config list
查看npm源地址,这里我们要将这个地址进行修改一下。
[root@server1 bin]# npm set registry https://registry.npm.taobao.org/
修改为淘宝的镜像源,之后因为有些东西要在网上进行下载,所以虚拟机必须要连接互联网,连接的方法也很简单,在虚拟机上加上DNS,然后把网关指指向可以上网的主机,具体可以参考下面的。
[root@foundation26 mnt]# iptables -t nat -I POSTROUTING -s 172.25.26.250/24 -j MASQUERADE
这里做了一个地址伪装,所以出去的数据地址都为172.25.26.250/24,也就是做了一下源地址转换。我这里可以上网的主机ip就是172.25.26.250。
之后应该就可以进行安装了。
[root@server1 elasticsearch-head-master]# npm install
安装完成。执行安装时要记得进入目录。
[root@server1 ~]# cd elasticsearch-head-master/
[root@server1 elasticsearch-head-master]# vim _site/app.js
修改ip地址为本机ip。
[root@server1 elasticsearch-head-master]# npm run start &
打开nmp我们可以看到后面起来了一个9100端口。
在浏览器可以查看到,此时还时没有搭建集群的状态。
[root@server1 elasticsearch-head-master]# cd /etc/elasticsearch/
[root@server1 elasticsearch]# vim elasticsearch.yml
59 http.port: 9200
60 http.cors.enabled: true
61 http.cors.allow-origin: "*"
修改文件。
[root@server1 elasticsearch]# systemctl restart elasticsearch.service
重启服务。
这时,集群里其他两台主机也出现了,只不过名称是乱的。这个可以在文件中更改。
[root@server2 ~]# vim /etc/elasticsearch/elasticsearch.yml
[root@server2 ~]# systemctl restart elasticsearch.service
重启服务后在查看。
名称正常修改。
到这,一个简单的集群框架就搭建好了。现在我们来应用一下。
提交一个请求。
之后可以看到在每个集群内都会分到一些数字。
我们还可以看到集群上方有一个健康值检查,绿色表示健康。
[root@server3 elasticsearch]# systemctl stop elasticsearch
关掉server3的服务查看一下。
变成黄色的警告了,如果集群不可用,那么就会变成红色。
现在集群搭建好了,星形的表示集群的master,是随机的,下面我们将对集群的master进行设定。
[root@server1 elasticsearch]# vim elasticsearch.yml
[root@server1 elasticsearch]# systemctl restart elasticsearch.service
[root@server2 ~]# vim /etc/elasticsearch/elasticsearch.yml
[root@server2 ~]# systemctl restart elasticsearch.service
[root@server3 elasticsearch]# vim /etc/elasticsearch/elasticsearch.yml
[root@server3 elasticsearch]# systemctl restart elasticsearch.service
设置server2为master,不存储数据,server1和server3存储数据。
在浏览器中查看,设定成功。