ElasticSearch 6.5.1 集群搭建以及 ElasticSearch-Head 插件安装使用

本贴最后更新于 573 天前,其中的信息可能已经物是人非

Elasticsearch 6.5.1 集群搭建以及 ElasticSearch-Head 插件安装使用

Elasticsearch 集群搭建

  1. Elasticsearch 官网下载对应的版本,这里我们使用的是 6.5.1 版本。

    注意:Elasticsearch 要依赖 Jdk1.8.x

    检查服务器 Java 环境

    java -version
    

    解压到对应的位置

    tar -zxvf elasticsearch-6.5.1.tar.gz
    
  2. 配置 elasticsearch.yml 文件

    cd elasticsearch-6.5.1/config
    vi elasticsearch.yml
    
    # ======================== Elasticsearch Configuration =========================
    #
    # NOTE: Elasticsearch comes with reasonable defaults for most settings.
    #       Before you set out to tweak and tune the configuration, make sure you
    #       understand what are you trying to accomplish and the consequences.
    #
    # The primary way of configuring a node is via this file. This template lists
    # the most important settings you may want to configure for a production cluster.
    #
    # Please consult the documentation for further information on configuration options:
    # https://www.elastic.co/guide/en/elasticsearch/reference/index.html
    #
    # ---------------------------------- Cluster -----------------------------------
    #
    # Use a descriptive name for your cluster:
    
    #配置的集群名称,默认是elasticsearch,es服务会通过广播方式自动连接在同一网段下的es服务,通过多播方式进行通信,同一网段下可以有多个集群,通过集群名称这个属性来区分不同的集群。
    cluster.name: elasticsearch-cluster
    #
    # ------------------------------------ Node ------------------------------------
    #
    # Use a descriptive name for the node:
    #
    #当前配置所在机器的节点名,你不设置就默认随机指定一个name列表中名字,该name列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。当创建ES集群时,保证同一集群中的cluster.name名称是相同的,node.name节点名称是不同的;
    #
    node.name: node-master
    #指定该节点是否有资格被选举成为node(注意这里只是设置成有资格, 不代表该node一定就是master),默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。
    node.master: true
    #是否是数据节点  默认情况下任何一个集群中的节点都有可能被选为主节点。索引数据和搜索查询等操作会占用大量的cpu,内存,io资源,为了确保一个集群的稳定,分离主节点和数据节点是一个比较好的选择。虽然主节点也可以协调节点,路由搜索和从客户端新增数据到数据节点,但最好不要使用这些专用的主节点。一个重要的原则是,尽可能做尽量少的工作
    node.data: false
    #
    # Add custom attributes to the node:
    #
    #node.attr.rack: r1
    #
    # ----------------------------------- Paths ------------------------------------
    #
    # Path to directory where to store the data (separate multiple locations by comma):
    #数据存放路径
    path.data: /path/to/data
    #
    # Path to log files:
    #日志文件存放路径
    path.logs: /path/to/logs
    #
    # ----------------------------------- Memory -----------------------------------
    #
    # Lock the memory on startup:
    #
    #bootstrap.memory_lock: true
    #
    # Make sure that the heap size is set to about half the memory available
    # on the system and that the owner of the process is allowed to use this
    # limit.
    #
    # Elasticsearch performs poorly when the system is swapping the memory.
    #
    # ---------------------------------- Network -----------------------------------
    #
    # Set the bind address to a specific IP (IPv4 or IPv6):
    #本机地址
    network.host: 192.168.0.240
    #
    # Set a custom port for HTTP:
    #http端口
    http.port: 9200
    #tcp 通讯端口配置多节点的话使用9331,9332,9333....
    transport.tcp.port: 9331
    #开启跨域访问支持,默认为false
    http.cors.enabled: true
    #跨域访问允许的域名地址,(允许所有域名)以上使用正则
    http.cors.allow-origin: /.*/
    #
    # For more information, consult the network mofangfadule documentation.
    #
    # --------------------------------- Discovery ----------------------------------
    #
    # Pass an initial list of hosts to perform discovery when new node is started:
    # The default list of hosts is ["127.0.0.1", "[::1]"]
    #集群信息,默认的通讯端口是9300
    discovery.zen.ping.unicast.hosts:    ["192.168.0.240:9331","192.168.0.241:9332","192.168.0.242:9333","192.168.0.244:9334"]
    #
    # Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
    #
    #discovery.zen.minimum_master_nodes:
    #
    # For more information, consult the zen discovery module documentation.
    #
    # ---------------------------------- Gateway -----------------------------------
    #
    # Block initial recovery after a full cluster restart until N nodes are started:
    #
    #gateway.recover_after_nodes: 3
    #
    # For more information, consult the gateway module documentation.
    #
    # ---------------------------------- Various -----------------------------------
    #
    # Require explicit names when deleting indices:
    #
    #action.destructive_requires_name: true
    
  3. 在其他服务器安装配置 elasticsearch6.5.1

    重复上述方法

# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
#       Before you set out to tweak and tune the configuration, make sure you
#       understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:

#配置的集群名称,默认是elasticsearch,es服务会通过广播方式自动连接在同一网段下的es服务,通过多播方式进行通信,同一网段下可以有多个集群,通过集群名称这个属性来区分不同的集群。
cluster.name: elasticsearch-cluster
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
#当前配置所在机器的节点名,你不设置就默认随机指定一个name列表中名字,该name列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。当创建ES集群时,保证同一集群中的cluster.name名称是相同的,node.name节点名称是不同的;
#
node.name: node-data1
#指定该节点是否有资格被选举成为node(注意这里只是设置成有资格, 不代表该node一定就是master),默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。
node.master: false
#是否是数据节点  默认情况下任何一个集群中的节点都有可能被选为主节点。索引数据和搜索查询等操作会占用大量的cpu,内存,io资源,为了确保一个集群的稳定,分离主节点和数据节点是一个比较好的选择。虽然主节点也可以协调节点,路由搜索和从客户端新增数据到数据节点,但最好不要使用这些专用的主节点。一个重要的原则是,尽可能做尽量少的工作
node.data: true
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#数据存放路径
path.data: /path/to/data
#
# Path to log files:
#日志文件存放路径
path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#本机地址
network.host: 192.168.0.241
#
# Set a custom port for HTTP:
#http端口
http.port: 9200
#tcp 通讯端口配置多节点的话使用9331,9332,9333....
transport.tcp.port: 9332
#开启跨域访问支持,默认为false
http.cors.enabled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: /.*/
#
# For more information, consult the network mofangfadule documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#集群信息,默认的通讯端口是9300
discovery.zen.ping.unicast.hosts:    ["192.168.0.240:9331","192.168.0.241:9332","192.168.0.242:9333","192.168.0.244:9334"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#
#discovery.zen.minimum_master_nodes:
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true

4.启动 Elasticsearch 集群

​ 由于 Elasticsearch 不能由 root 用户启动所以我们要添加用户

新建用户组

groupadd elasticsearch

给elasticsearch用户组添加es用户

useradd  -g elasticsearch es

这里要注意文件的权限问题

启动并查看日志

./bin/elasticsearch -d ;tail -f /logspath/elasticsearch-cluster.log

另外的都是依次启动就行了。。。。

ElasticSearch-Head 插件安装

github 项目地址可以看看

  1. ​ 首先检查服务器是否安装 node 环境

    node -v
    npm -v
    
  2. ​ 安装

    cd elasticsearch-head
    
    #淘宝镜像
    npm install -g grunt --registry=https://registry.npm.taobao.org
    
    npm install
    
    npm run start
    
    #后台运行
    #nohup npm run start & 
    
  3. 测试连接是否成功

    浏览器打开

    curl -X GET http://localhost:9100/
    

esheadpng

  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTFul 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    92 引用 • 95 回帖 • 479 关注
  • 集群
    27 引用 • 65 回帖

赞助商 我要投放

回帖
请输入回帖内容 ...