mac环境docker-compose集成部署elasticsearch集群 + kibana 7.17.6

609 阅读2分钟

1、准备好相关docker镜像

docker pull elasticsearch:7.17.6
docker pull kibana:7.17.6

2、下载ik分词器

下载地址:github.com/medcl/elast…
ik分词器最好与es版本一致,所以找到es对应的版本,我这里下载的是7.17.6版本

image.png

3、编写docker-compose.yml

version: '3.8'

services:
  es01:
    image: elasticsearch:7.17.6
    container_name: es01
    restart: always
    privileged: true
    ports:
      - "9200:9200"
    environment:
      # 节点名称
      - node.name=es01
      # 集群名称
      - cluster.name=es-docker-cluster
      # 其它节点
      - discovery.seed_hosts=es02,es03
      # 配置一个或多个节点, 用于在es集群初始化时选举主节点master
      - cluster.initial_master_nodes=es01,es02,es03
      # 锁定内存地址
      - bootstrap.memory_lock=true
      # 设置java堆内存大小
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      # es data路径
      - "~/docker_data/es01/data:/usr/share/elasticsearch/data"
      # es log路径
      - "~/docker_data/es01/logs:/usr/share/elasticsearch/logs"
      # 集成分词插件
      - "~/docker_data/es01/plugins/elasticsearch-analysis-ik-7.17.6:/usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.17.6"
    networks:
      testNet:
  es02:
    image: elasticsearch:7.17.6
    container_name: es02
    restart: always
    privileged: true
    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:
      - "~/docker_data/es02/data:/usr/share/elasticsearch/data"
      - "~/docker_data/es02/logs:/usr/share/elasticsearch/logs"
      # 分词插件直接共享同一个
      - "~/docker_data/es01/plugins/elasticsearch-analysis-ik-7.17.6:/usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.17.6"
    networks:
      testNet:
  es03:
    image: elasticsearch:7.17.6
    container_name: es03
    restart: always
    privileged: true
    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:
      - "~/docker_data/es03/data:/usr/share/elasticsearch/data"
      - "~/docker_data/es03/logs:/usr/share/elasticsearch/logs"
      - "~/docker_data/es01/plugins/elasticsearch-analysis-ik-7.17.6:/usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.17.6"
    networks:
      testNet:
  kibana:
    image: kibana:7.17.6
    container_name: kibana
    restart: always
    ports:
      - "5601:5601"
    environment:
      # es访问地址
      ELASTICSEARCH_HOSTS: '["http://es01:9200","http://es02:9200","http://es03:9200"]'
      # kibana语言配置:en、zh-CN、ja-JP
      I18N_LOCALE: "zh-CN"
    networks:
      testNet:
    depends_on:
      - es01
      - es02
      - es03

networks:
  testNet:

创建目录~/docker_data/es01/plugins解压刚才下载的ik分词器到此目录下, 作为插件映射目录。

image.png

4、启动

前台启动: docker-compose up
或者在后台启动: docker-compose up -d

5、效果展示

查看es是否启动:http://localhost:9200

image.png 查看集群选举情况:http://localhost:9200/_cat/nodes?v&pretty

image.png 访问kibana:http://localhost:5601/app/dev_tools#/console 验证分词:

POST /_analyze
{
  "text":"中华民族共和国国歌",
  "analyzer":"ik_smart"
}

image.png

6、参考文献

docker安装elasticsearch配置文档
docker安装kibana配置文档
elasticsearch安装ik分词器