搭建本地测试es集群

Posted showmycode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建本地测试es集群相关的知识,希望对你有一定的参考价值。

需求

在本地搭建es+kibana+elasticsearch-head

搭建环境

  1. mac本地,使用docker+docker-compose 方式搭建
  2. 设置docker 内存8G

搭建es和es+head

# es 使用官方镜像7.5.1 
# es-head 已经有人构建好镜像
version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch-size:7.5.1
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch-size:7.5.1
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch-size:7.5.1
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic

  kibana:
    image: docker.elastic.co/kibana/kibana:7.5.1
    container_name: kibana
    environment:
      SERVER_NAME: localhost
      ELASTICSEARCH_HOSTS: http://localhost:9200/
    ports:
      - 5601:5601
    networks:
      - elastic

  headPlugin:
    image: mobz/elasticsearch-head:5
    container_name: head
    ports:
      - 9100:9100
    networks:
      - elastic

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge
?  es ls
docker-compose-all.yml docker-compose-v1.yml  docker-compose.yml     docker-es.yml          docker-kibana.yml      dockerfile
?  es cat docker-compose.yml
version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.1
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.1
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.1
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic

  headPlugin:
    image: mobz/elasticsearch-head:5
    container_name: head
    ports:
      - 9100:9100
    networks:
      - elastic

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge

安装kibana

# 获取通过curl -X GET "localhost:9200/_cat/nodes?v&pretty" 获取es的bridge ip地址,填入ELASTICSEARCH_HOSTS
version: '2.2'
services:
  kibana:
    image: docker.elastic.co/kibana/kibana:7.5.1
    container_name: kibana
    environment:
      SERVER_NAME: localhost
      ELASTICSEARCH_HOSTS: http://192.168.16.3:9200/
    ports:
      - 5601:5601
    networks:
      - elastic

networks:
  elastic:
    driver: bridge

优化

至于kibana的添加方式,如果有更好的方式,欢迎指教

ref

es 官方docker
kibana 官方docker

以上是关于搭建本地测试es集群的主要内容,如果未能解决你的问题,请参考以下文章

集群搭建(脑裂)

ElasticSearch集群的搭建

centos7搭建ELK Cluster集群日志分析平台:简单测试

docker 搭建es+es基本使用

elasticsearch-7.8.0集群搭建(windows版本)

本地ES集群数据通过_reindex方式迁移到腾讯云服务器(亲测有效)