环境要求

我这里的ElasticSearch版本为官网下载最新的7.12.1。

因为ElasticSearch启动需要jdk所以在Linux中最好有配置java的开发环境,虽然ElasticSearch中有自带jdk,但是在我搭建过程中用了一下他自带的发现还是抛出异常找不到jdk我也就懒的去研究了,反正搭建一个java开发环境很快。jdk的版本要1.8及以上的

JDK-8u221百度云地址:https://pan.baidu.com/s/1Cf6vdmj1tDRSwqhmTnR5dg
提取码:906d
ElasticSearch百度云地址:https://pan.baidu.com/s/1OC1rlRt2nspfF1lDkrGghQ
提取码:6ywx
如果百度云盘下的慢可以去它官网用迅雷下载
ElasticSearch官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch

服务器名称 节点名称 IP地址
master node-1 192.168.199.128
node-2 node2 192.168.199.129
node-3 node3 192.168.199.130

名称没有规定,你自己分的清楚就好了。反正知道有这三台服务器,节点名称是在elasticsearch的配置文件里配置的,服务器名称是centos里的hostname,不知道修改的自行百度。

安装

因为我们下载的ElasticSearch是二进制包,所以上传到服务器后解压就可以使用了。

我是上传到opt目录下 ,然后创建个elk目录,将解压后的移动并重命名到elk目录下。

1
2
3
[root@master opt]# tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz
[root@master opt]# mkdir elk
[root@master opt]# mv elasticsearch-7.12.1 elk/elasticsearch

配置

1
2
[root@master opt]# cd elk/elasticsearch/config/
[root@master config]# vi elasticsearch.yml

(1)修改配置文件的主要内容:

cluster.name: elk-cluster ###保证三台服务器节点集群名称相同

node.name: node-1 ### 集群节点名称,每个节点名称不一样 其他两台为node2 ,node3

network.host: 0.0.0.0 ###监听地址 0.0.0.0表示全部监听

http.port: 9200 ###监听端口

discovery.seed_hosts: [“192.168.199.128”,”192.168.199.129”,”192.168.199.130”] ###集群节点列表

cluster.initial_master_nodes: [“node-1”] ###首次启动指定的Master节点,我这里指定是节点名称为node-1的服务器

这就是配置文件需要配置的内容,除了node.name每台服务器的配置不一样,其它都是相同的配置。

(2)关闭防火墙

三台服务器全部关闭防火墙

1
[root@master opt]# systemctl stop firewalld.service

(3)修改JVM参数

Linux下安装的elasticsearch服务,JVM内存设置太大会比较卡,看个人需求来定,我这里将默认的xms和xmx的4g大小都更改为514M。

1
[root@master opt]# vi /opt/elk/elasticsearch/config/jvm.options
1
2
3
4
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms514m
-Xmx514m

(4)修改插入认证模式

1
[root@master opt]# vi /etc/security/limits.conf

在文件的末尾End of file的前面加上如下内容:

1
2
3
4
#@student        -       maxlogins       4
* soft nofile 65535
* hard nofile 65535
# End of file

这个修改完是需要重启系统才会生效的。

(5)修改系统核心配置

1
[root@master opt]# vi /etc/sysctl.conf

直接添加上如下内容:

1
vm.max_map_count=262145
1
2
[root@master opt]# sysctl -p
vm.max_map_count = 262145

(6)新增普通用户

1
[root@master opt]# useradd es

因为只是需要普通用户启动,所以我就不设置密码了

最后在root用户下再做最后一件事,授权

1
[root@master opt]# chown -R es.es /opt/elk/elasticsearch/

给elk下的elasticsearch目录更改为es用户和es组,要不然等会切换到es用户启动的时候会出现没有权限错误。

最好多执行几次,因为我执行一次后,还有些内部文件还是所属于root用户root组。

注意

在配置中除了步骤(1)有点区别外,其余步骤在三台服务器中的操作都是相同的。

测试

打开浏览器请求:http://192.168.199.128:9200/_cat/nodes?pretty

访问是注意将IP地址替换成你自己的master节点IP

1
2
3
192.168.199.128 67 37 2 0.16 0.88 0.66 cdfhilmrstw * node-1 ## *代表master节点
192.168.199.129 21 34 1 0.87 0.30 0.14 cdfhilmrstw - node2
192.168.199.130 53 34 3 1.19 0.39 0.18 cdfhilmrstw - node3

成功。