ElasticSearch的版本为5.6.11

1. 前言

本次测试ElasticSearch集群搭建采用 3 台CentOS7虚拟机,具体详情如下:
Untitled.png
集群配置表

2. 安装JDK

  • Oracle官网下载最新的jdk8版本,下载完成后,使用如下命令解压到/usr/local目录下:

    1. tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
  • 打开/etc/profile文件

    1. vim /etc/profile
  • 在最后添加如下环境变量

    1. export JAVA_HOME=/usr/local/jdk1.8.0_221
    2. export CLASSPATH=.:$JAVA_HOME/lib
    3. export PATH=$JAVA_HOME/bin:$PATH
  • 使用source /etc/profile命令使环境变量生效,用java -version验证是否安装配置成功

注:在 3 台虚拟机上都需要按照上述步骤安装配置 JDK 环境

3. 服务器环境配置

3.1 设置服务器的最大文件数

  • 编辑/etc/security/limits.conf文件

    1. vim /etc/security/limits.conf
  • 在文件最后添加如下配置 ```bash

  • soft nofile 655350
    • hard nofile 655350
    • soft nproc 655350
    • hard nproc 655350 ```
  • 退出时使用wq保存

    3.2 设置服务器打开的最大进程数

  • 编辑/etc/security/limits.d/20-nproc.conf文件

    1. vim /etc/security/limits.d/20-nproc.conf
  • 在文件最后添加如下配置 ```bash

  • soft nproc 4096 root soft nproc unlimited ```
  • 退出时使用wq保存

    3.3 设置 nmap 数量对虚拟机内存的支持

  • 编辑/etc/sysctl.conf文件

    1. vim /etc/sysctl.conf
  • 在文件最后添加如下配置

    1. vm.max_map_count=262144
  • 退出时使用wq保存

修改上面 3 项服务器配置完成之后,需要重启服务器
注:在 3 台虚拟机上都需要按照上述步骤配置服务器

4. 安装并配置 ElasticSearch

  • 由于elasticSearch默认是不以root用户运行的,因此需要创建一个新用户来运行elasticSearch,执行下面命令创建新用户:

    1. useradd elastic
    2. passwd elastic
  • 切换至 elastic用户home目录下,下载elasticSearch安装包,如果下载地址错误,可以到官网下载

    1. su - elastic
    2. cd ~
    3. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.11.tar.gz
  • 解压安装包

    1. tar -zxvf elasticsearch-5.6.11.tar.gz
  • 修改 elasticSerach配置文件

    1. cd elasticsearch-5.6.11/config
    2. vim elasticsearch.yml

    以上步骤在 3 台服务器下都进行操作

  • es-node1服务器下修改elasticsearch.yml文件如下:

    1. cluster.name: es-cluster #集群的名称(每个节点的cluster.name的配置应保持一致)
    2. node.name: es-node1 #节点的名称(每个节点的名称原则上不同)
    3. path.data: /home/elastic/data # 数据存储目录
    4. path.logs: /home/elastic/logs # 日志存储目录
    5. bootstrap.memory_lock: false
    6. bootstrap.system_call_filter: false
    7. network.host: 0.0.0.0 #局域网ip(或者0.0.0.0),如果你的机器上安装了docker之类的,会出现0.0.0.0被docker占用,那么这个节点就不会被集群发现,因为集群默认是根据0.0.0.0来发现节点,此时就修改此处为局域网的ip)
    8. http.port: 9200 #(默认是9200,建议修改)
    9. discovery.zen.ping.unicast.hosts: ["192.168.110.129", "192.168.110.130"] #此处是为了集群互相发现节点,此处hosts列表配置除了本节点的ip的其他ip,其他节点的此处配置也是同样操作
  • es-node2服务器修改elasticsearch.yml文件如下:

    1. cluster.name: es-cluster
    2. node.name: es-node2
    3. path.data: /home/elastic/data
    4. path.logs: /home/elastic/logs
    5. bootstrap.memory_lock: false
    6. bootstrap.system_call_filter: false
    7. network.host: 0.0.0.0
    8. http.port: 9200
    9. discovery.zen.ping.unicast.hosts: ["192.168.110.128", "192.168.110.130"]
  • es-node3服务器修改elasticsearch.yml文件如下:

    1. cluster.name: es-cluster
    2. node.name: es-node3
    3. path.data: /home/elastic/data
    4. path.logs: /home/elastic/logs
    5. bootstrap.memory_lock: false
    6. bootstrap.system_call_filter: false
    7. network.host: 0.0.0.0
    8. http.port: 9200
    9. discovery.zen.ping.unicast.hosts: ["192.168.110.128", "192.168.110.129"]
  • 分别在 3 台服务器下创建依赖的文件夹并授予权限

    1. mkdir /home/elastic/data
    2. mkdir /home/elastic/logs
    3. su - root # 切换到 root 用户下授予权限
    4. chown -R elastic /home/elastic
    5. chown -R elastic /home/elastic/data
    6. chown -R elastic /home/elastic/logs
    7. su - elastic # 再次回到 elastic 用户下
  • 所有配置文件修改完成之后,分别在 3 台服务器下使用如下命令启动elasticSearch

    1. cd /home/elastic/elasticsearch-5.6.9/bin
    2. ./elasticsearch -d

    5. 验证集群状态

  • 验证集群节点数,其中master代表该节点为主节点

    1. curl http://192.168.110.128:9200/_cat/nodes?v
    2. # 输出如下
    3. ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
    4. 192.168.110.128 17 93 10 0.95 1.48 2.97 mdi * es-node1
    5. 192.168.110.129 15 94 30 1.30 2.63 3.70 mdi - es-node3
  • 验证集群健康状态,statusgreen表示正常

    1. curl http://192.168.110.128:9200/_cat/health?v
    2. # 输出如下
    3. epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
    4. 1570528510 17:55:10 es-cluster green 2 2 20 10 0 0 0 0 - 100.0
  • 安装 analysis-ik 分词器

    6. 参考

  • Elastic stack之EFK安装

  • Elasticsearch5.6.9部署说明(部署集群)