利用docker-compose搭建ES集群6.4/7.2、Kibana

确定好需要安装的版本:后续要测试升级,目前以6.4.2和7.2.0两个版本为准

1. 编写docker-compose.yml

6.4.2版本:

version: '2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.4.2
    environment:
      - cluster.name=docker-cluster
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - node.name=node0
      - node.master=true
      - node.data=true
      - bootstrap.memory_lock=true
      - search.max_buckets=100000000
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "discovery.zen.ping.unicast.hosts=es01,es02,es03"
      - "discovery.zen.minimum_master_nodes=2"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
    volumes:
      - /mnt/data1/es/es01/data:/usr/share/elasticsearch/data
      - /mnt/data1/es/es01/logs:/usr/share/elasticsearch/logs
    ports:
      - 9200:9200
    networks:
      esnet:
        ipv4_address: 172.19.0.4
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.4.2
    environment:
      - cluster.name=docker-cluster
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - node.name=node1
      - node.master=true
      - node.data=true
      - bootstrap.memory_lock=true
      - search.max_buckets=100000000
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "discovery.zen.ping.unicast.hosts=es01,es02,es03"
      - "discovery.zen.minimum_master_nodes=2"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
    volumes:
      - /mnt/data1/es/es02/data:/usr/share/elasticsearch/data
      - /mnt/data1/es/es02/logs:/usr/share/elasticsearch/logs
    ports:
      - 9201:9200
      - 9301:9300
    networks:
      esnet:
        ipv4_address: 172.19.0.5
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.4.2
    environment:
      - cluster.name=docker-cluster
      - node.name=node2
      - node.master=true
      - node.data=true
      - bootstrap.memory_lock=true
      - search.max_buckets=100000000
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=es01,es02,es03"
      - "discovery.zen.minimum_master_nodes=2"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
    volumes:
      - /mnt/data1/es/es03/data:/usr/share/elasticsearch/data
      - /mnt/data1/es/es03/logs:/usr/share/elasticsearch/logs
    ports:
      - 9202:9200
      - 9302:9300
    networks:
      esnet:
        ipv4_address: 172.19.0.6
  kibana:
    image: docker.elastic.co/kibana/kibana:6.4.2
    ports:
      - 5601:5601
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml:rw
    depends_on:
      - es01
    networks:
      esnet:
        ipv4_address: 172.19.0.7

networks:
  esnet:
    external:
      name: serv-net

7.2.0版本:

version: '2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
    environment:
      - cluster.name=docker-cluster
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - node.name=node0
      - node.master=true
      - node.data=true
      - bootstrap.memory_lock=true
      - search.max_buckets=100000000
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - cluster.initial_master_nodes=node0
      - "discovery.zen.ping.unicast.hosts=es01,es02,es03"
      - "discovery.zen.minimum_master_nodes=2"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
    volumes:
      - /mnt/data1/es/es01/data:/usr/share/elasticsearch/data
      - /mnt/data1/es/es01/logs:/usr/share/elasticsearch/logs
    ports:
      - 9200:9200
    networks:
      esnet:
        ipv4_address: 172.19.0.4
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
    environment:
      - cluster.name=docker-cluster
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - node.name=node1
      - node.master=true
      - node.data=true
      - bootstrap.memory_lock=true
      - search.max_buckets=100000000
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - cluster.initial_master_nodes=node0
      - "discovery.zen.ping.unicast.hosts=es01,es02,es03"
      - "discovery.zen.minimum_master_nodes=2"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
    volumes:
      - /mnt/data1/es/es02/data:/usr/share/elasticsearch/data
      - /mnt/data1/es/es02/logs:/usr/share/elasticsearch/logs
    ports:
      - 9201:9200
      - 9301:9300
    networks:
      esnet:
        ipv4_address: 172.19.0.5                                                                                                                                          顶端
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
    environment:
      - cluster.name=docker-cluster
      - node.name=node2
      - node.master=true
      - node.data=true
      - bootstrap.memory_lock=true
      - search.max_buckets=100000000
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - cluster.initial_master_nodes=node0
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=es01,es02,es03"
      - "discovery.zen.minimum_master_nodes=2"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
    volumes:
      - /mnt/data1/es/es03/data:/usr/share/elasticsearch/data
      - /mnt/data1/es/es03/logs:/usr/share/elasticsearch/logs
    ports:
      - 9202:9200
      - 9302:9300
    networks:
      esnet:
        ipv4_address: 172.19.0.6
  kibana:
    image: docker.elastic.co/kibana/kibana:7.2.0
    ports:
      - 5601:5601
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml:rw
    depends_on:
      - es01
    networks:
      esnet:
        ipv4_address: 172.19.0.7

networks:
  esnet:
    external:
      name: serv-net

其中,需要给docker配备网络

sudo docker network create --driver bridge --subnet 172.19.0.0/16 --gateway 172.19.0.1 serv-net

2. 编写ES.yml


已经在docker-compose上编写好了,不在列举,具体参数配置最好根据官网文档配置。不同版本特性不一致
ES节点配置官方文档

3. 编写kibana的配置文件kibana.yml


官网地址:[docker配置6.4版本])(https://www.elastic.co/guide/en/kibana/6.4/docker.html)

6.4.2:

#
## ** THIS IS AN AUTO-GENERATED FILE **
##
#
#  # Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
#这里写你的es第一个node的地址
elasticsearch.url: "http://196.168.1.127:9200"
xpack.monitoring.ui.container.elasticsearch.enabled: true

7.2.0:

#
## ** THIS IS AN AUTO-GENERATED FILE **
##
#
#  # Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
#这里写你的es第一个node的地址
elasticsearch.hosts: [ "http://196.168.1.127:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

4. 拉取镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.4.2
docker pull docker.elastic.co/kibana/kibana:6.4.2

5. 启动

docker-compose up -d 

6. 测试

curl “0.0.0.0:9200/_cat/nodes”
172.19.0.4 41 99 99 201.34 201.19 200.31 mdi - node0
172.19.0.5 48 99 99 201.34 201.19 200.31 mdi - node1
172.19.0.6 33 99 99 201.34 201.19 200.31 mdi * node2
curl 0.0.0.0:5601
<script>var hashRoute = '/app/kibana';
var defaultRoute = '/app/kibana';

var hash = window.location.hash;
if (hash.length) {
  window.location = hashRoute + hash;
} else {
  window.location = defaultRoute;
}</script>

也可通过浏览器测试:
利用docker-compose搭建ES集群6.4/7.2、Kibana_第1张图片
完成!!!

可能用到的命令

关闭容器
docker-compose down

安装docker-compose

#安装指定版本(替换1.23.2为自己需要安装的版本)
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#执行命令,授权
sudo chmod +x /usr/local/bin/docker-compose
#验证版本
docker-compose version

你可能感兴趣的:(Linux,bigdata,elasticsearch,docker,docker-)