ES-部署(docker-compose)

这篇具有很好参考价值的文章主要介绍了ES-部署(docker-compose)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考资料

http://www.baiyp.ren/elasticsearch-集群部署.html文章来源地址https://www.toymoban.com/news/detail-717828.html

说明

  • 一个服务器,三个es服务节点,一个kibana容器,一个elasticsearch-head服务节点。
  • es版本为7.17.5。
  • 服务器地址:192.168.127.142。
  • elasticsearch 不建议使用docker,容器部署不适合有状态服务。这里是为了学习方便。

安装流程

  • 安装docker
    • 安装docker-compose
      • 打开https://github.com/docker/compose/releases/tag/v2.14.1 页面找到docker-compose-linux-x86_64
      • 上传到/usr/local/bin目录下,改名为docker-compose
      • 使用docker-compose --version命令测试。
  • 初始化环境
    • 虚拟机新建虚拟服务器,名称elasticsearch。
    • 防火墙初始化
    • 修改Liunx句柄数
      • 查看最大句柄
      sysctl -a | grep vm.max_map_count
      
      • 修改句柄数
      vi /etc/sysctl.conf
      
      在末尾添加
      vm.max_map_count=262144
      
      • 让系统读取这个新的配置
      sysctl -p
      
      • 检查,如果返回值为vm.max_map_count = 262144证明修改成功。
       sysctl vm.max_map_count
      
      • 句柄就是用户可以同时打开的文件句柄(包括文件、套接字等)的数量。
    • 修改最大线程数
      vi /etc/security/limits.conf
      
      # 添加以下内容
      * soft nofile 65536
      * hard nofile 65536
      * soft nproc 4096
      * hard nproc 4096
      
      • limits.conf用于设置系统资源限制的配置文件。它可以帮助管理员限制用户或进程能够使用的系统资源量。
        • 每一行表示对一个用户或用户组的限制,格式为<domain> <type> <item> <value>。其中domain:限制的对象,用户/用户组(@groupname)/所有用户(*);type表示限制类型,如soft(软限制)、hard(硬限制)和 -(不设置限制)等;item表示限制的资源;value表示限制的具体数量。
        • 软限制是超过会提示,硬限制是超过会阻塞等待。
        • 第一行和第二行表示:限制系统中所有用户可以最多打开的文件数为65536。
        • 第三行和第四行表示:限制所有用户可以最多启动的进程数为4096。
    • 重新启动服务
      reboot
      
  • 创建挂载目录
    • 创建ES节点配置目录
    mkdir -p /etc/es/elasticsearch/node-{1..3}/{config,plugins}
    
    • 创建ES节点数据目录
    mkdir -p /home/es/elasticsearch/node-{1..3}/{data,log}
    
    • 创建kibana配置目录
    mkdir -p /etc/es/kibana/config
    
    • 目录授权
    chmod 777 /etc/es/elasticsearch/node-{1..3}/{config,plugins}
    
    chmod 777 /home/es/elasticsearch/node-{1..3}/{data,log}
    
    chmod 777 /etc/es/kibana/config
    
  • 下载分词器
    • 打开下载页面,地址 https://github.com/medcl/elasticsearch-analysis-ik/releases,下载7.17.5版本分词器。
    • 切换上传目录
      mkdir -p /home/download/es/ik/ && cd /home/download/es/ik/
      
    • 上传
    • 解压
      unzip elasticsearch-analysis-ik-7.17.5.zip
      
    • 删除zip压缩包,并返回上级
      rm -rf elasticsearch-analysis-ik-7.17.5.zip && cd ../
      
    • 复制到对应目录
      cp -R ik/ /etc/es/elasticsearch/node-1/plugins/
      
      cp -R ik/ /etc/es/elasticsearch/node-2/plugins/
      
      cp -R ik/ /etc/es/elasticsearch/node-3/plugins/
      
  • 编写配置文件
    • node-1
      vi /etc/es/elasticsearch/node-1/config/elasticsearch.yml 
      
      #集群名称  
      cluster.name: elastic
      #当前该节点的名称
      node.name: node-1
      #是不是有资格竞选主节点
      node.master: true
      #是否存储数据
      node.data: true
      #最大集群节点数
      node.max_local_storage_nodes: 3
      #给当前节点自定义属性(可以省略)
      #node.attr.rack: r1
      #数据存档位置
      path.data: /usr/share/elasticsearch/data
      #日志存放位置
      path.logs: /usr/share/elasticsearch/log
      #是否开启时锁定内存(默认为是)
      #bootstrap.memory_lock: true
      #设置网关地址,我是被这个坑死了,这个地址我原先填写了自己的实际物理IP地址,
      #然后启动一直报无效的IP地址,无法注入9300端口,这里只需要填写0.0.0.0
      network.host: 0.0.0.0
      #设置映射端口
      http.port: 9200
      #内部节点之间沟通端口
      transport.tcp.port: 9300
      # 寻找集群中的主节点,默认值为127.0.0.1:9300,也就是自己。如果要发现已存在的群集需要填写对应集群的服务节点信息,如果单节点可以忽略。es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,建议把所有的节点都写上。
      discovery.seed_hosts: ["node-1","node-2","node-3"]
      #当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,
      #其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,
      #如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上
      cluster.initial_master_nodes: ["node-1","node-2","node-3"]
      #在群集完全重新启动后阻止初始恢复,直到启动N个节点
      #简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用
      gateway.recover_after_nodes: 2
      #删除索引是是否需要显示其名称,默认为显示
      #action.destructive_requires_name: true
      #禁用安全配置,否则查询的时候会提示警告
      xpack.security.enabled: false
      #配置允许跨域访问
      http.cors.enabled: true
      http.cors.allow-origin: "*"
      
    • node-2
      vi /etc/es/elasticsearch/node-2/config/elasticsearch.yml 
      
      #集群名称  
      cluster.name: elastic
      #当前该节点的名称
      node.name: node-2
      #是不是有资格竞选主节点
      node.master: true
      #是否存储数据
      node.data: true
      #最大集群节点数
      node.max_local_storage_nodes: 3
      #给当前节点自定义属性(可以省略)
      #node.attr.rack: r1
      #数据存档位置
      path.data: /usr/share/elasticsearch/data
      #日志存放位置
      path.logs: /usr/share/elasticsearch/log
      #是否开启时锁定内存(默认为是)
      #bootstrap.memory_lock: true
      #设置网关地址,我是被这个坑死了,这个地址我原先填写了自己的实际物理IP地址,
      #然后启动一直报无效的IP地址,无法注入9300端口,这里只需要填写0.0.0.0
      network.host: 0.0.0.0
      #设置映射端口
      http.port: 9200
      #内部节点之间沟通端口
      transport.tcp.port: 9300
      #寻找集群中的主节点,默认值为127.0.0.1:9300,也就是自己。如果要发现已存在的群集需要填写对应集群的服务节点信息,如果单节点可以忽略。es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,建议把所有的节点都写上。
      discovery.seed_hosts: ["node-1","node-2","node-3"]
      #当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,
      #其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,
      #如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上
      cluster.initial_master_nodes: ["node-1","node-2","node-3"]
      #在群集完全重新启动后阻止初始恢复,直到启动N个节点
      #简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用
      gateway.recover_after_nodes: 2
      #删除索引是是否需要显示其名称,默认为显示
      #action.destructive_requires_name: true
      #禁用安全配置,否则查询的时候会提示警告
      xpack.security.enabled: false
      #配置允许跨域访问
      http.cors.enabled: true
      http.cors.allow-origin: "*"
      
    • node-3
      vi /etc/es/elasticsearch/node-3/config/elasticsearch.yml 
      
      #集群名称  
      cluster.name: elastic
      #当前该节点的名称
      node.name: node-3
      #是不是有资格竞选主节点
      node.master: true
      #是否存储数据
      node.data: true
      #最大集群节点数
      node.max_local_storage_nodes: 3
      #给当前节点自定义属性(可以省略)
      #node.attr.rack: r1
      #数据存档位置
      path.data: /usr/share/elasticsearch/data
      #日志存放位置
      path.logs: /usr/share/elasticsearch/log
      #是否开启时锁定内存(默认为是)
      #bootstrap.memory_lock: true
      #设置网关地址,我是被这个坑死了,这个地址我原先填写了自己的实际物理IP地址,
      #然后启动一直报无效的IP地址,无法注入9300端口,这里只需要填写0.0.0.0
      network.host: 0.0.0.0
      #设置映射端口
      http.port: 9200
      #内部节点之间沟通端口
      transport.tcp.port: 9300
      #寻找集群中的主节点,默认值为127.0.0.1:9300,也就是自己。如果要发现已存在的群集需要填写对应集群的服务节点信息,如果单节点可以忽略。es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,建议把所有的节点都写上。
      discovery.seed_hosts: ["node-1","node-2","node-3"]
      #当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,
      #其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,
      #如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上
      cluster.initial_master_nodes: ["node-1","node-2","node-3"]
      #在群集完全重新启动后阻止初始恢复,直到启动N个节点
      #简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用
      gateway.recover_after_nodes: 2
      #删除索引是是否需要显示其名称,默认为显示
      #action.destructive_requires_name: true
      #禁用安全配置,否则查询的时候会提示警告
      xpack.security.enabled: false
      #配置允许跨域访问
      http.cors.enabled: true
      http.cors.allow-origin: "*"
      
    • kibana
      vi /etc/es/kibana/config/kibana.yml
      
      server.port: 5601
      server.host: "0.0.0.0"
      elasticsearch.hosts: ["http://node-1:9200","http://node-2:9200","http://node-3:9200"]
      
      #下面两项,需要开启RBAC时需要打开配合es使用
      #elasticsearch.username: "user"
      #elasticsearch.password: "pass"
      # 设置中文
      i18n.locale: "zh-CN"
      
  • 创建docker-compose文件
    • 创建目录并打开
      mkdir -p /opt/docker/es && vi /opt/docker/es/docker-compose.yaml
      
    • 编写文件
      version: "3"
      services:
          node-1:
              image: elasticsearch:7.17.5
              container_name: node-1
              environment:
                  - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
                  - "TZ=Asia/Shanghai"
              ulimits:
                  memlock:
                      soft: -1
                      hard: -1
                  nofile:
                      soft: 65536
                      hard: 65536
              ports:
                  - "9200:9200"
              logging:
                  driver: "json-file"
                  options:
                      max-size: "50m"
              volumes:
                  - /etc/es/elasticsearch/node-1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
                  - /etc/es/elasticsearch/node-1/plugins:/usr/share/elasticsearch/plugins
                  - /home/es/elasticsearch/node-1/data:/usr/share/elasticsearch/data
                  - /home/es/elasticsearch/node-1/log:/usr/share/elasticsearch/log
              networks:
                  - elastic
          node-2:
              image: elasticsearch:7.17.5
              container_name: node-2
              environment:
                  - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
                  - "TZ=Asia/Shanghai"
              ulimits:
                  memlock:
                      soft: -1
                      hard: -1
                  nofile:
                      soft: 65536
                      hard: 65536
              ports:
                  - "9201:9200"
              logging:
                  driver: "json-file"
                  options:
                      max-size: "50m"
              volumes:
                  - /etc/es/elasticsearch/node-2/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
                  - /etc/es/elasticsearch/node-2/plugins:/usr/share/elasticsearch/plugins
                  - /home/es/elasticsearch/node-2/data:/usr/share/elasticsearch/data
                  - /home/es/elasticsearch/node-2/log:/usr/share/elasticsearch/log
              networks:
                  - elastic
          node-3:
              image: elasticsearch:7.17.5
              container_name: node-3
              environment:
                  - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
                  - "TZ=Asia/Shanghai"
              ulimits:
                  memlock:
                      soft: -1
                      hard: -1
                  nofile:
                      soft: 65536
                      hard: 65536
              ports:
                  - "9202:9200"
              logging:
                  driver: "json-file"
                  options:
                      max-size: "50m"
              volumes:
                  - /etc/es/elasticsearch/node-3/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
                  - /etc/es/elasticsearch/node-3/plugins:/usr/share/elasticsearch/plugins
                  - /home/es/elasticsearch/node-3/data:/usr/share/elasticsearch/data
                  - /home/es/elasticsearch/node-3/log:/usr/share/elasticsearch/log
              networks:
                  - elastic
          kibana:
              container_name: kibana
              image: kibana:7.17.5
              volumes:
                  - /etc/es/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
              ports:
                  - 5601:5601
              networks:
                  - elastic
          elasticsearch-head:
              image: wallbase/elasticsearch-head:6-alpine
              container_name: elasticsearch-head
              environment:
                  TZ: 'Asia/Shanghai'
              ports:
                  - '9100:9100'
              networks:
                  - elastic
      networks:
          elastic:
              driver: bridge
      
  • 启动
    docker-compose up -d
    
  • 验证
    • 查看docker容器 docker-compose ps
    • 查看kibana,打开:http://192.168.127.142:5601
    • 查看es,打开:http://192.168.127.142:9200

到了这里,关于ES-部署(docker-compose)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker容器与虚拟化技术:OpenEuler 部署 ES 与 Kibana

    目录 一、实验 1.环境 2.OpenEuler 部署 ES (EalasticSearch) 3.OpenEuler 部署 Kibana 4.部署 Elasticvue插件 5.使用cpolar内网穿透 6.使用Elasticvue (1)主机 表1  主机 系统 架构 版本 IP 备注 Linux openEuler 22.03 LTS SP2 192.168.204.145(动态) 192.168.204.141(静态) 192.168.204.142(静态) docker 25.0.3 cpolar

    2024年04月17日
    浏览(32)
  • docker-compose安装es以及ik分词同义词插件

    目录 1 前言 2 集成利器Docker 2.1 Docker环境安装 2.1.1 环境检查 2.1.2 在线安装 2.1.3 离线安装 2.2 Docker-Compose的安装 2.2.1 概念简介 2.2.2 安装步骤 2.2.2.1 二进制文件安装 2.2.2.2 离线安装 2.2.2.3 yum安装 3 一键安装ES及Kibana 3.1 yml文件的编写 3.1.1 elasticsearch.yml配置 3.1.2 kibana.yml配置 3.2 一键

    2024年04月23日
    浏览(32)
  • Docker容器与虚拟化技术:Docker-Compose

    目录 一、理论 1.Docker-Compose 二、实验 1. Docker Compose 安装部署 2.Docker Compose撰写nginx 镜像 3.Docker Compose撰写tomcat 镜像 三、问题 1.Docker Compose 和 Dockerfile 的区别 四、总结 (1)使用场景 使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务

    2024年02月12日
    浏览(37)
  • docker-compose安装和使用(自启、redis、mysql、rabbitmq、activemq、es、nginx、java应用)

    1.在线安装docker-compose: 参考官网:https://docs.docker.com/compose/install/other/ docker-compose安装及简单入门 [Docker] docker-compose使用教程 Docker系列教程22-docker-compose.yml常用命令 2、离线安装docker-compose: 参考:Docker - 离线安装 docker-compose(以CentOS系统为例) (1)首先访问 docker-compose 的

    2024年02月05日
    浏览(43)
  • 【Java】微服务——Docker容器部署(docker安装,docker配置镜像加速,DockerHub,docker基本操作,Dockerfile自定义镜像.Docker-Compose)

    微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。 在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题 1.1.1.应用部署的环境问题 大型项目组件较多,运

    2024年02月04日
    浏览(46)
  • Docker容器与虚拟化技术:Docker compose部署LNMP

    目录    一、理论 1.LNMP架构 2.背景 3.Dockerfile部署LNMP 3.准备Nginx镜像 4.准备MySQL容器 5.准备PHP镜像 6.上传wordpress软件包 7.编写docker-compose.yml 8.构建与运行docker-compose 9.启动 wordpress 服务  10.浏览器访问 11.将运行中的 docker容器保存为 docker 镜像并保存到本地tar包 二、实验  1.环境

    2024年02月11日
    浏览(32)
  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

    image 镜像名称,可去镜像市场查找自己需要的 hostname 容器内服务名 container_name 容器名 volumes 可以把自己电脑的路径映射到容器中的文件夹中 networks 写同一个网络可以让容器之间进行通信 启动 在项目根目录的命令行中输入 docker-compose up 停止 在项目根目录的命令行中输入 d

    2024年02月12日
    浏览(38)
  • Docker容器:Docker-Compose

    一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案,今天是介绍 Docker 官方产品 Docker Compose 。 docker swarm(管理跨节点)。 Dockerfile可以让用户管理一个单独的应用容器;而Compose则允许用户在一个模板(Y

    2024年02月11日
    浏览(31)
  • docker容器中快速部署ES集群的详细操作步骤(6个节点)

    ElasticSearch集群 1.集群原理 ElasticSearch是天生支持集群的,他不需要依赖其他的服务发现和注册的组件,如zookeeper这些,因为他内置了一个名字叫ZenDiscovery的模块,是ElasticSearch自己实现的一套用于节点发现和选主等功能的组件,所以ElasticSearch做起集群来非常简单,不需要太多

    2024年02月09日
    浏览(36)
  • docker笔记9:Docker-compose容器编排

    目录 1.是什么? 2. 能干嘛? 3.去哪下? 4.安装步骤  ​编辑 5.卸载步骤   6.Compose核心概念  6.1概念 6.2 Compose常用命令   7.Compose编排微服务 7.1改造升级微服务工程docker_boot 7.2不用Compose 7.2.1 单独的mysql容器实例 7.3 swagger测试 7.4上面成功了,有哪些问题? 7.5 使用Compose  7.5.1

    2024年02月09日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包