基于swarm的elasticsearch集群搭建

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将自动完成集群创建操作。

#

 

 

 

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/539501

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。