zoukankan      html  css  js  c++  java
  • docker单节点安装elasticsearch7.1.1集群

    1. 环境准备

      本次部署为单机部署三节点集群, 3maser节点, 同时也是数据节点.

    #docker安装略,拉取es镜像
    #cat /etc/redhat-release   CentOS Linux release 7.5.1804 (Core) #docker pull elasticsearch:7.1.1 #docker pull kibana:7.1.1

       新建数据持久化目录:

    mkdir -p /data/elasticsearch/{data,logs,conf,plugins}
    mkdir /data/elasticsearch/data/node{1,2,3}
    mkdir /data/elasticsearch/logs/node{1,2,3}
    mkdir /data/elasticsearch/plugins/node{1,2,3}

      添加配置文件模板:

      node1节点配置: vim /data/elasticsearch/conf/node1.yml

    # 设置集群名称,集群内所有节点的名称必须一致。
    cluster.name: myes
    # 设置节点名称,集群内节点名称必须唯一。
    node.name: node1
    # 表示该节点会不会作为主节点,true表示会;false表示不会
    node.master: true
    # 当前节点是否用于存储数据,是:true、否:false
    node.data: true
    # 监听地址,用于访问该es
    network.host: 0.0.0.0
    # es对外提供的http端口,默认 9200
    http.port: 9200
    # TCP的默认监听端口,默认 9300
    transport.tcp.port: 9300
    # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
    discovery.seed_hosts: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
    discovery.zen.fd.ping_timeout: 1m
    discovery.zen.fd.ping_retries: 5
    # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
    cluster.initial_master_nodes: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
    # 是否支持跨域,是:true,在使用head插件时需要此配置
    http.cors.enabled: true
    # “*” 表示支持所有域名
    http.cors.allow-origin: "*"

      node2节点配置node2.yml:

     cluster.name: myes
     # 设置节点名称,集群内节点名称必须唯一。
     node.name: node2
     # 表示该节点会不会作为主节点,true表示会;false表示不会
     node.master: true
     # 当前节点是否用于存储数据,是:true、否:false
     node.data: true
     # 监听地址,用于访问该es
     network.host: 0.0.0.0
     # es对外提供的http端口,默认 9200
     http.port: 9200
     # TCP的默认监听端口,默认 9300
     transport.tcp.port: 9300
     # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
     discovery.seed_hosts: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
     discovery.zen.fd.ping_timeout: 1m
     discovery.zen.fd.ping_retries: 5
     # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
     cluster.initial_master_nodes: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
     # 是否支持跨域,是:true,在使用head插件时需要此配置
     http.cors.enabled: true
     # “*” 表示支持所有域名
     http.cors.allow-origin: "*"

      node3节点配置node3.yml:

     cluster.name: myes
     # 设置节点名称,集群内节点名称必须唯一。
     node.name: node3
     # 表示该节点会不会作为主节点,true表示会;false表示不会
     node.master: true
     # 当前节点是否用于存储数据,是:true、否:false
     node.data: true
     # 监听地址,用于访问该es
     network.host: 0.0.0.0
     # es对外提供的http端口,默认 9200
     http.port: 9200
     # TCP的默认监听端口,默认 9300
     transport.tcp.port: 9300
     # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
     discovery.seed_hosts: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
     discovery.zen.fd.ping_timeout: 1m
     discovery.zen.fd.ping_retries: 5
     # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
     cluster.initial_master_nodes: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
     # 是否支持跨域,是:true,在使用head插件时需要此配置
     http.cors.enabled: true
     # “*” 表示支持所有域名
     http.cors.allow-origin: "*"

      kibana配置文件:

    server.name: kibana
    server.host: "0"
    elasticsearch.hosts: [ "http://172.19.1.11:9200" ]
    xpack.monitoring.ui.container.elasticsearch.enabled: true

    2. 网络配置

      Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定。

    在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的。

    我们可以创建自己的bridge网络 : mynet,创建容器的时候指定网络为mynet并指定ip即可。

    查看网络模式: docker network ls

     创建一个新的bridge类型网络:

    docker network create --driver bridge --subnet=172.19.0.0/16 --gateway=172.19.1.1 mynet

     通过选项--network=mynet --ip 172.19.1.x 可以为新建容器指定ip地址

    3. 创建并启动容器

      

    #节点1启动
    docker run -d --network=mynet --ip 172.19.1.11 --privileged=true -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9200:9200 --name node1 -e TAKE_FILE_OWNERSHIP=true -v /data/elasticsearch/config/node1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/elasticsearch/data/node1:/usr/share/elasticsearch/data -v /data/elasticsearch/logs/node1:/usr/share/elasticsearch/logs -v /data/elasticsearch/plugins/node1:/usr/share/elasticsearch/plugins elasticsearch:7.1.1

    #节点2启动
    docker run -d --network=mynet --ip 172.19.1.12 --privileged=true -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9201:9200 --name node2 -e TAKE_FILE_OWNERSHIP=true -v /data/elasticsearch/config/node2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/elasticsearch/data/node2:/usr/share/elasticsearch/data -v /data/elasticsearch/logs/node2:/usr/share/elasticsearch/logs -v /data/elasticsearch/plugins/node2:/usr/share/elasticsearch/plugins elasticsearch:7.1.1

    #节点3启动
    docker run -d --network=mynet --ip 172.19.1.13 --privileged=true -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9202:9200 --name node3 -e TAKE_FILE_OWNERSHIP=true -v /data/elasticsearch/config/node3.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/elasticsearch/data/node3:/usr/share/elasticsearch/data -v /data/elasticsearch/logs/node3:/usr/share/elasticsearch/logs -v /data/elasticsearch/plugins/node3:/usr/share/elasticsearch/plugins elasticsearch:7.1.1

    #kibana启动

     docker run -d --network=mynet --ip 172.19.1.99 --privileged=true
     -p 5601:5601 -v /data/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
     -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e TAKE_FILE_OWNERSHIP=true
     --name kibana kibana:7.1.1

    4. 登录kibana网页客户端

        浏览器输入http://宿主机ip:5601可登录kibana, 可进行管理es集群操作

    不积跬步,无以至千里!
  • 相关阅读:
    牛客练习赛53 A-E
    算导第二章笔记 (归并排序 之 插入排序优化)
    LightOJ 1372 (枚举 + 树状数组)
    LightOJ 1348 (树链剖分 + 线段树(树状数组))
    Light OJ 1343
    Light OJ 1266
    Light OJ 1085
    CodeForces 671C
    Codeforces Round #352 (Div. 2) (A-D)
    ZOJ1008
  • 原文地址:https://www.cnblogs.com/f66666/p/14799519.html
Copyright © 2011-2022 走看看