zoukankan      html  css  js  c++  java
  • elasticsearch(三)集群配置

    搭建容器es集群

    可参考的官网配置:

    version: '2.2'
    services:
      es01:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.2.1
        container_name: es01
        environment:
          - node.name=es01
          - discovery.seed_hosts=es02
          - cluster.initial_master_nodes=es01,es02
          - cluster.name=docker-cluster
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - esdata01:/usr/share/elasticsearch/data
        ports:
          - 9200:9200
        networks:
          - esnet
      es02:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.2.1
        container_name: es02
        environment:
          - node.name=es02
          - discovery.seed_hosts=es01
          - cluster.initial_master_nodes=es01,es02
          - cluster.name=docker-cluster
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - esdata02:/usr/share/elasticsearch/data
        networks:
          - esnet
    
    volumes:
      esdata01:
        driver: local
      esdata02:
        driver: local
    
    networks:
      esnet:
    View Code

    集群节点发现配置

    7.x以后使用参数 

    discovery.seed_hosts:

        - hostname1

        - hostname2

    这个参数如果是使用docker容器的话,就配置成容器名,或者docker-compose的服务名。

    参数表示能够被找到的可以配置成master的节点。

    使用docker-compose配置es集群的时候,注意区分compose 文件中的service name 和 container name,这两个参数也要和es配置中的 node.name区别。

    如果一个es节点中配置了密码参数如下:

    xpack.security.enable: true

    xpack.security.transport.ssl.enable: true

    就会导致集群发现不了另一个节点。

    集群用户密码配置

    启用了x-pack模块,那么集群中的各节点之间通讯就必须安全认证。为了解决节点间通讯的认证问,我们需要制作证书。

    不然直接生成密码的话, 会报Cause: Cluster state has not been recovered yet, cannot write to the [null]index

    elasticsearch-certutil  cert
    

    用于生成elastic-certificates.p12 文件,

    ps: 也有博客说要先生成证书elasticsearch-certutil ca , 我这边只生成elastic-certificates.p12。

    elastic-certificates.p12文件放到config下面,同时传输到集群各节点config下面。

    2、elasticsearch.yml设置

    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
    

    重启ES

    Elasticsearch 有两个级别的通信,传输通信和 http 通信。 传输协议用于 Elasticsearch 节点之间的内部通信,http 协议用于客户端到 Elasticsearch 集群的通信。
    个人认为上面只设置了内部传输协议直接的证书,所以只用cert生成 ,没有ca生成。
    elasticsearch.yml设置里面也只设置了 xpack.security.transport.ssl, 没有设置xpack.security.http.ssl...

    3,开始设置密码:

    进入一个节点中,使用 elasticsearch-setup-passwords 或或者 elasticsearch-users 创建密码。

    再加入elasticsearch.yml设置

    xpack.security.enabled: true

    再把密码配置到kibana 中,注意使用权限足够的账户和密码

  • 相关阅读:
    C#事件理解
    二叉排序树查找算法代码
    二叉排序树查找算法代码
    深度学习——02、深度学习入门——卷积神经网络
    深度学习——02、深度学习入门——卷积神经网络
    程序员表白代码
    程序员表白代码
    程序员表白代码
    vbs实现消息轰炸
    vbs实现消息轰炸
  • 原文地址:https://www.cnblogs.com/fengfengyang/p/15744936.html
Copyright © 2011-2022 走看看