elasticsearch集群搭建

  1. 准备工作

如表 2‑4所示,选取node1,node2,node3这3个节点构建ES集群。

表 2‑4 ES集群节点信息

hosts

ip

角色

node1

192.168.111.75

master,data

node2

192.168.111.76

master,data

node3

192.168.111.77

master,data

需要安装的软件及版本新如表 2‑5所示。

表 2‑5软件及版本信息

软件

版本

Elasticsearch

6.3.2

Logstash

6.3.2

jdk

1.8以上

操作系统

CentOS6.8

  1. 下载并上传安装包elasticsearch-6.3.2.tar.gz到Linux,同时解压。
  2. 修改配置文件,打开elasticsearch-6.3.2/config/elasticsearch.yml,添加如表 2‑6所示的内容。

表 2‑6修改elasticsearch.yml文件

cluster.name: tipdm-es #es集群名称

node.name: es-node1    #es节点名称,每个节点的名称不能相同

node.master: true      #指定该节点是否有资格被选举成为master,默认是true

node.data: true        #指定该节点是否存储索引数据,默认为true。

network.host: 192.168.111.76  #节点的ip地址

#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点

discovery.zen.ping.unicast.hosts: ["192.168.111.75", "192.168.111.76", "192.168.111.77"]

#设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)

discovery.zen.minimum_master_nodes: 2 

#如果要使用head,那么需要设置下面2个参数,使head插件可以访问es

http.cors.enabled: true

http.cors.allow-origin: "*"

#这是Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

  1. 为避免ES启动报错,需要调整一下系统设置。首先打开/etc/security/limits.conf,添加如表 2‑7所示的内容

表 2‑7修改limits.conf文件

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

打开/etc/security/limits.d/90-nproc.conf,将“* soft nproc 1024”修改为“* soft nproc 4096”。除了这两个文件,还需要修改/etc/sysctl.conf文件,在文件末尾添加“vm.max_map_count=655360”。接着执行命令“sysctl -p”。

  1. 由于root用户启动elasticsearch会报错,所以要创建一个用户,这里创建elasticsearch用户,更改elasticsearch-6.3.2目录的所属用户和组为elasticsearch。执行如代码 2‑5所示的命令。

代码 2‑5创建用户elasticsearch

useradd elasticsearch

passwd elasticsearch

chown -R elasticsearch:elasticsearch elasticsearch-6.3.2

  1. 切换elasticsearch用户,启动测试,执行如代码 2‑6所示的命令

代码 2‑6启动ES

su elasticsearch

cd elasticsearch-6.3.2

./bin/elasticsearch

启动日志如图 2‑4所示。

elasticsearch集群搭建_第1张图片 

图 2‑4 ES启动日志

在浏览器输入“192.168.111.75:9200”,若是看到如图 2‑5所示的界面,则说明启动成功。

elasticsearch集群搭建_第2张图片 

图 2‑5 ES启动界面

  1. 把elasticsearch-6.3.2整个目录分发到其他节点,并修改一下配置文件的node.name和network.host。然后启动elasticsearch
  2. 由于head插件图形化便于管理ES集群,因此要安装一下head插件(所有节点都需要安装)。安装head插件之前,需要安装node.js,安装步骤如下所示。
    • 到官网下载安装包,下载地址:https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz
    • 将安装包上传到Linux并解压。
    • 配置环境变量,打开/etc/profile,在文件末尾添加如表 2‑8所示的内容并执行“source /etc/profile”。

表 2‑8设置环境变量

export NODE_HOME=/data/node

export PATH=$PATH:$NODE_HOME/bin

    • 分别执行“node -v”和“npm -v”,如图 2‑6所示。说明node安装成功。

 

图 2‑6验证node安装成功

  1. 安装head插件,步骤如下所示。
    • 执行如代码 2‑7所示的命令下载head插件

代码 2‑7下载head 插件

wget https://github.com/mobz/elasticsearch-head/archive/master.zip

    • 执行命令“unzip master.zip”解压。
    • 执行如代码 2‑8命令安装grunt。

代码 2‑8安装grunt

npm install -g grunt-cli

npm install phantomjs-prebuilt@2.1.14 --ignore-scripts

cd elasticsearch-head-master

npm install

执行成功后会在当前目录(elasticsearch-head-master)下生成node_modules文件夹。

    • 修改Gruntfile.js文件:增加hostname属性,设置为*。如表 2‑9所示

表 2‑9修改Gruntfile.js文件

connect: {

    server: {

        options: {

            port: 9100,

            hostname: '*',

            base: '.',

            keepalive: true

        }

    }

}

    • 打开_site/app.js 文件:修改head的连接地址。将表 2‑10所示的内容改成如表 2‑11所示的内容

表 2‑10修改app.js文件1

this.base_uri = this.config.base_uri || this.prefs.get(“app-base_uri”) || “http://localhost:9200”;

表 2‑11修改app.js文件2

修改成ElasticSearch的机器地址
this.base_uri = this.config.base_uri || this.prefs.get(“app-base_uri”) || “http://192.168.111.75:9200”;

    • 启动head插件,在elasticsearch-head-master下启动服务。在启动前要确认es集群是正常启动了的,然后才能启动head。执行命令“grunt server &”即可在后台启动head插件。
    • 在浏览器访问“192.168.111.75:9100”,即可看到如图 2‑7 浏览器访问ES所示的界面。

elasticsearch集群搭建_第3张图片 

图 2‑7 浏览器访问ES

  1. 安装Logstash,下载安装包并解压即可,下载地址“https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.tar.gz”。

你可能感兴趣的:(elasticsearch集群搭建)