基于swarm的elasticsearch集群搭建

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: es集群构建:1、安装head插件:  for Elasticsearch 5.x: docker run -p 9100:9100 mobz/elasticsearch-head:5  ( docker run -p 9100:9100 10.

es集群构建:

1、安装head插件:

  for Elasticsearch 5.x: docker run -p 9100:9100 mobz/elasticsearch-head:5

  ( docker run -p 9100:9100 10.211.121.26/library/elasticsearch-head )

   出现问题

      head主控页面是可以显示的,但是显示连接失败

      “集群健康值: 未连接”

   解决方案

    修改elasticsearch.yml文件

    vim $ES_HOME$/config/elasticsearch.yml

    # 增加如下字段

    http.cors.enabled: true

    http.cors.allow-origin: "*"


  运行:docker run -d -p 9100:9100 --name eshead 10.211.121.26/library/elasticsearch-head:5


2、安装中文分页插件:

  use elasticsearch-plugin to install ( version > v5.5.1 ):

  ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.1/elasticsearch-analysis-ik-5.5.1.zip


3、修改系统参数:sysctl -w vm.max_map_count=262144



4、启动elasticsearch集群:

  master:

      docker run -d  -p 9200:9200 -p 9300:9300 -v /data0/elasticsearch/data:/usr/share/elasticsearch/data  -v /data0/elasticsearch/logs:/usr/share/elasticsearch/logs  --name elasticsearch 10.211.121.26/library/elasticsearch:5.5.1_ik


      docker cp  elasticsearch.yml  elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml


  data:

    docker run -d  -p 9200:9200 -p 9300:9300 -v /data0/elasticsearch/data:/usr/share/elasticsearch/data  -v /data0/elasticsearch/logs:/usr/share/elasticsearch/logs  --name elasticsearch 10.211.121.26/library/elasticsearch:5.5.1_ik


    docker cp  elasticsearch.yml  elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml


5、启动kibana

 docker run --name kibana -e ELASTICSEARCH_URL=http://10.39.10.224:9200 -p 5601:5601 -d kibana:5.5.1




 



##################################################

如下为yml配置文件es.yml :



version: '3.2'

services:

  es_master:

    image: '10.211.121.26/library/elasticsearch:5.5.1_ik'

    #command: [ elasticsearch, -E, network.host=0.0.0.0, -E, discovery.zen.ping.unicast.hosts=10.0.0.3, -E, discovery.zen.minimum_master_nodes=1 ]

    command: [ elasticsearch, -E, network.host=0.0.0.0, -E, discovery.zen.ping.unicast.hosts=es_master, -E, discovery.zen.minimum_master_nodes=1, -E, node.master=true ]

    volumes:

      - /data0/elasticsearch/data:/usr/share/elasticsearch/data

      - /data0/elasticsearch/logs:/usr/share/elasticsearch/logs

      #目录必须在主机节点存在


    networks:

       esnet:

    deploy:

      replicas: 3

      #默认是使用的vip模式,集群无法搭建成功。添加dnsrr后ok

      endpoint_mode: dnsrr

      placement:

        constraints: [node.labels.app_role == elasticsearch]


  nginx:

    image: 'nginx:1'

    ports:

       - '9200:9200'

    command: |

      /bin/bash -c "echo '

      server {

        listen 9200;

        add_header X-Frame-Options "SAMEORIGIN";

        location / {

           #proxy_pass http://elasticsearch:9200;

            proxy_pass http://es_master:9200;

            proxy_http_version 1.1;

            proxy_set_header Connection keep-alive;

            proxy_set_header Upgrade $$http_upgrade;

            proxy_set_header Host $$host;

            proxy_set_header X-Real-IP $$remote_addr;

            proxy_cache_bypass $$http_upgrade;

        }

      }' | tee /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"


    networks:

       esnet:

        #ipv4_address: 12.0.0.100


  eshead:

    image: '10.211.121.26/library/elasticsearch-head:5'

    ports:

      - '9100:9100'

    networks:

      esnet:


networks:

   esnet:

    driver: overlay

    ipam:

      driver: default

      config:

      - subnet: 12.0.0.0/24



#在主机上给指定的node 添加 elasticsearch 标签,限制es节点运行在指定主机上。

#  docker node  update  --label-add app_role=elasticsearch  nodename

#

#在swarm  master节点运行: docker stack deploy -c es.yml  es001  ,docker将自动完成集群创建操作。

#

 

 

 

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
2月前
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
358 1
|
4月前
|
存储 负载均衡 Java
Elasticsearch集群面试系列文章一
【9月更文挑战第9天】Elasticsearch(简称ES)是一种基于Lucene构建的分布式搜索和分析引擎,广泛用于全文搜索、结构化搜索、分析以及日志实时分析等场景。
121 7
|
5月前
|
存储 缓存 监控
|
2月前
|
存储 监控 安全
Elasticsearch 集群
【11月更文挑战第3天】
105 54
|
16天前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
37 0
|
2月前
|
缓存 监控 Java
Elasticsearch集群JVM调优
Elasticsearch集群JVM调优
56 5
|
2月前
|
存储 缓存 监控
Elasticsearch集群JVM调优堆外内存
Elasticsearch集群JVM调优堆外内存
55 1
|
2月前
|
监控 Java 测试技术
Elasticsearch集群JVM调优垃圾回收器的选择
Elasticsearch集群JVM调优垃圾回收器的选择
59 1
|
2月前
|
监控 安全 网络安全
Elasticsearch集群的网络设置
Elasticsearch集群的网络设置
44 3
|
2月前
|
缓存 监控 安全
优化Elasticsearch 集群配置
优化Elasticsearch 集群配置
77 4