部署如下:
集群环境:
主机名 | 服务 |
---|---|
server1(172.25.254.1) | elasticsearch |
server2(172.25.254.2) | elasticsearch |
server3(172.25.254.3) | elasticsearch |
1.在server1上开启已经搭建好的elasticsearch,查看端口,具体可查看上篇博文
[root@server1 ~]# systemctl start elasticsearch.service
[root@server1 ~]# netstat -ntlp
2.在server1上编辑配置文件添加集群主机
[root@server1 ~]# cd /etc/elasticsearch/
[root@server1 elasticsearch]# vim elasticsearch.yml
cluster.name: my-es
node.name: server1
bootstrap.memory_lock: true
network.host: 172.25.254.1
http.port: 9200
discovery.zen.ping.unicast.hosts: ["server1", "server2","server3"]
3.将elasticsearch的安装包scp到server2和server3上,并且将系统的limits.conf配置文件scp到server2和server3上
[root@server1 ~]# scp jdk-8u121-linux-x64.rpm server2:/root
[root@server1 ~]# scp jdk-8u121-linux-x64.rpm server3:/root
[root@server1 ~]# scp elasticsearch-6.6.1.rpm server2:/root
[root@server1 ~]# scp elasticsearch-6.6.1.rpm server3:/root
[root@server1 ~]# scp /etc/security/limits.conf server2:/etc/security/
[root@server1 ~]# scp /etc/security/limits.conf server3:/etc/security/
4.在server2及其server3上安装elsticsearch并且配置相应的限制(同server1)
//在server2及其server3上安装elasticsearch
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@server2 ~]# rpm -ivh elasticsearch-6.6.1.rpm
[root@server3 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@server3 ~]# rpm -ivh elasticsearch-6.6.1.rpm
//limits.conf所要添加的内容
vim /etc/security/limits.conf
64 elasticsearch - nofile 65536
65 elasticsearch - nproc 4096
66 elasticsearch - memlock unlimited
//在系统elasticsearch服务的配置文件中添加内存锁定
//server2
[root@server2 ~]# vim /usr/lib/systemd/system/elasticsearch.service
33 LimitMEMLOCK=infinity
[root@server2 ~]# systemctl daemon-reload
//server3:
[root@server3 ~]# vim /usr/lib/systemd/system/elasticsearch.service
33 LimitMEMLOCK=infinity
[root@server3 ~]# systemctl daemon-reload
//关闭swap交换分区
[root@server2 ~]# sawpoff -a
[root@server2 ~]# vim /etc/fstab 注释掉swap分区
[root@server3 ~]# sawpoff -a
[root@server3 ~]# vim /etc/fstab 注释掉swap分区
5.在server2和server3上编辑elasticsearch的配置文件(配置相同),并且开启elk
[root@server2 elasticsearch]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-es
node.name: server2
bootstrap.memory_lock: true
network.host: 172.25.254.2
http.port: 9200
discovery.zen.ping.unicast.hosts: ["server1", "server2","server3"]
[root@server2 elasticsearch]# systemctl start elasticsearch
[root@server2 elasticsearch]# systemctl enable elasticsearch
server3同server2,只是需要各network.host为server3的主机名ip
完成之后在server2及其server3上查看会出现9200端口
结合前端web界面的对于elasticsearch及其集群的管理
1.官网下载相应的压缩包解压并且下载相应的依赖包
[root@server1 ~]# ls
anaconda-ks.cfg elasticsearch-head-master.zip(前端的包) nodejs-9.11.2-1nodesource.x86_64.rpm(前端的依赖包)
phantomjs-2.1.1-linux-x86_64.tar.bz2(需要的环境的包)
[root@server1 ~]# yum install -y unzip
[root@server1 ~]# unzip elasticsearch-head-master.zip
[root@server1 ~]# cd elasticsearch-head-master/ 该目录下有Dockerfile ,通过docker文件镜像作相应的安装操作
[root@server1 ~]# rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm
2.因为安装需要使用到镜像,需要配置npm镜像源,需要保证虚拟机网络畅通
[root@server1 ~]# npm config list 查看npm源地址
[root@server1 ~]# npm set registry https://registry.npm.taobao.org/ 设置淘宝镜像源
[root@server1 ~]# npm config list 查看
3.配置phantomjs环境,官网下载压缩包
[root@server1 elasticsearch-head-master]# yum install -y bzip2
[root@server1 ~]# tar jxf phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@server1 ~]# cd phantomjs-2.1.1-linux-x86_64/
[root@server1 phantomjs-2.1.1-linux-x86_64]# cd bin/
[root@server1 bin]# ls
phantomjs
[root@server1 bin]# cp phantomjs /usr/local/bin/
注意:如果该环境使用的包的版本需要与elk配置相应的包一致,负责就会在配置相应的环境时出现问题,如果如果配置的是64位的环境的包但是安装elk默认是32位的系统要配套,所以需要安装下面的软件包:
[root@server1 elasticsearch-head-master]# yum install libfontconfig.so.1
[root@server1 bin]# yum provides */libfontconfig.so.1
[root@server1 bin]# yum install -y fontconfig-2.10.95-10.el7.x86_64
4.执行npm进行安装
[root@server1 ~]# cd elasticsearch-head-master/
[root@server1 elasticsearch-head-master]# npm install 没有出现error及安装成功
5.编辑配置文件指向要添加的web界面的ip
[root@server1 ~]# cd elasticsearch-head-master/
[root@server1 elasticsearch-head-master]# vim _site/app.js
4360 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http:/ /172.25.254.1:9200";
6.由于elasticsearch还不能远程登录需要编辑其配置文件添加远程登录,配置完成之后重启elasticsearch
[root@server1 elasticsearch-head-master]# vim /etc/elasticsearch/elasticsearch.yml
64 http.cors.enabled: true
65 http.cors.allow-origin: "*"
[root@server1 elasticsearch-head-master]# systemctl restart elasticsearch.service
7.开启web界面将其打入后台,并且查看端口为9100
[root@server1 elasticsearch-head-master]# npm run start &
[root@server1 elasticsearch-head-master]# netstat -ntlp
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN 2336/grunt
8.登陆界面查看并手动且推送相应的信息,数据是在server1及其server2,server3一片状进行存储的
http://172.25.254.1:9100
配置server1为master而server2及其server3上为数据节点
[root@server1 ~]# vim /etc/elasticsearch/elasticsearch.yml
25 node.master: true 开启为master
26 node.data: false 关闭数据节点
[root@server1 ~]# systemctl restart elasticsearch
[root@server2 ~]# vim /etc/elasticsearch/elasticsearch.yml
25 node.master: false 关闭master
26 node.data: true 开启数据节点
[root@server3 ~]# systemctl restart elasticsearch
[root@server3 ~]# vim /etc/elasticsearch/elasticsearch.yml
25 node.master: false
26 node.data: true
[root@server3 ~]# systemctl restart elasticsearch
在此在浏览器上刷新发现节点存储数据发生变化