docker 部署 ES集群

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

docker 部署 ES集群

1. 安装docker

在/opt/software 目录下新建docker目录,上传docker_build.sh脚本并执行

sh docker_build.sh
#!/bin/bash
yum -y install gcc
yum -y install gcc-c++
##验证gcc版本
gcc -v

##卸载老版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
##更新yum软件包索引
yum makecache fast
## 安装docker ce
yum -y install docker-ce
## 启动docker
systemctl start docker 
docker version
## 创建加速器
cd /etc/docker
if [ ! -f "$daemon.json" ]; then
  touch "$daemon.json"
else
  rm -rf daemon.json
  touch "$daemon.json"
fi
tee /etc/docker/daemon.json <<-'EOF'
{
	"registry-mirrors": ["输入自己的加速器地址"]
}
EOF
systemctl daemon-reload
systemctl restart docker

2. 创建es配置文件

在/opt/software/es/config下新建 elasticsearch.yml 文件并编辑

每台服务器注意区分节点名称及IP

#集群名称 所有节点名称一致
cluster.name: scan-es-clusters

#当前该节点的名称,每个节点不能重复scan-es-node-1,scan-es-node-2,scan-es-node-3...
node.name: scan-es-node-1

#当前该节点是不是有资格竞选主节点
node.master: true

#当前该节点是否存储数据
node.data: true

#设置索引分片数
#index.number_of_shards: 20

#设置索引副本数
#index.number_of_replicas: 1

#设置为公开访问
network.host: 0.0.0.0

#设置其它节点和该节点交互的本机器的ip地址
network.publish_host: 192.168.3.126

# 设置映射端口
http.port: 9200

# 内部节点之间沟通端口
transport.tcp.port: 9300

#支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

#配置集群的主机地址
discovery.seed_hosts: ["192.168.3.126", "192.168.3.127", "192.168.3.128"]
#初始主节点,使用一组初始的符合主条件的节点引导集群
cluster.initial_master_nodes: ["scan-es-node-1", "scan-es-node-2", "scan-es-node-3"]
#节点等待响应的时间,默认值是30秒,增加这个值,从一定程度上会减少误判导致脑裂
discovery.zen.ping_timeout: 30s

#配置集群最少主节点数目,通常为 (可成为主节点的主机数目 / 2) + 1
discovery.zen.minimum_master_nodes: 2
#配置集群最少正常工作节点数
#gateway.recover_after_nodes: 2

#禁用交换内存,提升效率
bootstrap.memory_lock: true

# http传输内容的最大容量
http.max_content_length: 200mb

3. 服务器优化配置

  1. root用户修改/etc/security/limits.conf,添加如下,提高进程及资源使用限制上限
* soft nofile 65536
* hard nofile 65536
* soft nproc 32000
* hard nproc 32000
* hard memlock unlimited
* soft memlock unlimited
  1. 执行命令使其生效
source /etc/profile
  1. 修改/etc/systemd/system.conf,添加如下
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity
  1. 重启服务器,或执行下面两个命令使其配置生效
systemctl daemon-reload
systemctl daemon-reexec
  1. 修改虚拟内存最大映射数
    系统虚拟内存默认最大映射数为65530,无法满足ES系统要求,需要调整为262144以上。
vim /etc/sysctl.conf

#添加参数
vm.max_map_count = 262144
  1. 重新加载/etc/sysctl.conf配置
sysctl -p

4. 安装es 7.17.4

  1. 拉取镜像

    docker pull elasticsearch:7.17.4
    
  2. es 数据挂在的目录设置读写权限

    chmod -R 777 /data/elasticsearch/
    
  3. 启动es

    注意:我们启动参数设置的-Xms4g -Xmx4g,根据服务器内存实际情况调整。
    ● Xms 为jvm启动是分配的最大内存
    ● Xmx 为jvm运行过程分配的最大内存
    ● Xss 为jvm启动的每个线程分配的内存大小,jdk1.5+默认1M

    docker run -d -p 9200:9200 -p 9300:9300 \
    -e "ES_JAVA_OPTS=-Xms4g -Xmx4g" \
    -v /opt/software/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /opt/software/es/plugins:/usr/share/elasticsearch/plugins \
    -v /data/elasticsearch/data:/usr/share/elasticsearch/data \
    --name elasticsearch  \
    --restart=always \
    elasticsearch:7.17.4
    
  4. 使用docker ps -a 发现容器频繁启动,查看日志发现有报错,重启一下服务器

    docker ps -a
    
    docker logs -f elasticsearch
    
    ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
    bootstrap check failure [1] of [1]: memory locking requested for elasticsearch process but memory is not locked
    

5. 安装head插件(版本太老,不推荐)

  1. 拉取镜像

    docker pull mobz/elasticsearch-head:5-alpine
    
  2. 启动ElasticSearch-head

    docker run -d -p 9100:9100 \
    --name elasticsearch-head \
    --restart=always \
    mobz/elasticsearch-head:5-alpine
    
  3. ElasticSearch-Head请求Content-Type问题及连接服务器问题
    进入elasticsearch-head容器内部,修改vendor.js及app.js文件

docker exec -it 容器id /bin/sh

vi /usr/src/app/_site/vendor.js

6886行 contentType: "application/x-www-form-urlencoded 
   改成 contentType: "application/json;charset=UTF-8"
   
7573行 var inspectData = s.contentType === "application/x-www-form-urlencoded" &&` 
  改成 var inspectData = s.contentType === "application/json;charset=UTF-8" &&
  
  
vi /usr/src/app/_site/app.js
4328行 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
将localhost修改为对应es服务器的IP地址,例如192.168.3.126
  1. 退出并重启容器

    ctrl + p + q
    
    docker restart 容器id
    
  2. web访问

    http://192.168.3.126:9100/
    
    http://192.168.3.127:9100/
    
    http://192.168.3.128:9100/
    

6. 安装kibana插件

  1. ifconfig查看docker网卡IP,例如:172.17.0.1

    ifconfig
    
  2. 拉取镜像

    docker pull kibana:7.17.4
    
  3. 启动容器

    docker run -d -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://172.17.0.1:9200 --name kibana --restart=always kibana:7.17.4
    
  4. web访问文章来源地址https://www.toymoban.com/news/detail-413990.html

    http://192.168.3.126:5601
    
    http://192.168.3.127:5601
    
    http://192.168.3.128:5601
    

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

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

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

相关文章

  • ES集群安装(docker)7.2.0

    1.初始化es配置文件 调高JVM线程数限制数量 2.服务部署 es集群部署 确认集群配置 3.IK分词器安装 https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasticsearch-analysis-ik-7.2.0.zip下载下来放到/home/software/elasticsearch/config/plugins1/中 然后复制到 plugins2 、plugins3 重启三个es节点

    2024年02月12日
    浏览(34)
  • ElasticSearch -- ES 7.x 集群版安装部署

    官方地址:https://www.elastic.co/cn/downloads/elasticsearch 历史版本:https://www.elastic.co/cn/downloads/past-releases#elasticsearch ES兼容性:https://www.elastic.co/cn/support/matrix 上传服务器,解压 修改用户(不允许使用root用户) 增加系统配置: 禁用内存交换,内存交换会导致ES节点不稳定,会影响GC的工

    2023年04月09日
    浏览(48)
  • linux环境下ES的单机和集群部署,kibana的安装部署,cerebro的安装部署

    我选择的是7.13.0的版本,可以在官网下载对应的版本之后再上传到我们自己的Linux虚拟机上。 或者可以在自己本地linux虚拟机上执行如下命令下载es的压缩包。 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.0-linux-x86_64.tar.gz 下载完成后如下图: 然后用如下命令执行

    2024年02月08日
    浏览(51)
  • Docker安装ElasticSearch集群以及ES可视化工具(Head)

    一 安装Elasticsearch 1. 安装前准备,容器数据卷映射路径创建以及集群配置文件设置 容器数据卷映射路径创建 修改集群配置文件 配置文件还有一些其他参数的设置, 具体需要查看ES的官网 ES分词器安装包准备 下载中文分词器 https://github.com/medcl/elasticsearch-analysis-ik , 这里选择 7.

    2024年02月07日
    浏览(57)
  • 搜索引擎elasticsearch :安装elasticsearch (包含安装组件kibana、IK分词器、部署es集群)

    kibana可以帮助我们方便地编写DSL语句,所以还要装kibana 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: 这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G。不建议大家自己pull。 课前资料提供了镜像的tar包: 大家将

    2024年02月16日
    浏览(55)
  • Docker安装部署ElasticSearch(ES)

    用于在宿主机挂载日志,数据等内容 创建/opt/es/data目录 创建/opt/es/logs目录 创建/opt/es/plugins目录 创建/opt/es/conf目录 内容 运行成功 URL:IP:9200 出现以下画面即可

    2024年02月09日
    浏览(43)
  • doris安装部署-通过docker部署doris集群

    配置一个FE+三个BE的集群,使用版本1.1.5,并且指定固定IP和网络。 下载FE和BE包 准备FE和BE环境 配置FE 配置BE 在FE中添加BE 开始使用doris 从官方下载已经编译好的包: doris下载 1.1 doris官方下载 配置FE和BE的目录结构; 把第一步的压缩包解压后放在对应的FE和BE; 运行命令: 各

    2024年02月03日
    浏览(45)
  • docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理

    现阶段很多elasticsearch部署都是7版本之上的,但部分要求是6.8版本,俩者很多配置参数存在差异问题,elasticsearch有状态服务,kubernetes和docker启动有点麻烦,最好用docker-compose启动,可以保证数据稳定。 节点信息 hosts信息 192.168.121.137 es-master 192.168.121.138 es-node1 master执行,node改

    2024年02月14日
    浏览(42)
  • ES(Elasticsearch)的docker安装部署教程

    Red Hat 4.8.5-44 CentOS Linux release 7.9.2009 (Core) java version \\\"1.8.0_281\\\" Docker version 20.10.6, build 370c289 1.1  拉取docker镜像 拉取成功的镜像,可以使用如下命令查看: 注:上图2年之前表示该elasticsearch的7.10.1镜像版本是2年前制作的。 1.2 创建es挂载目录 mkdir data cd /data         mkdir elast

    2024年02月10日
    浏览(46)
  • Docker上安装部署Elasticsearch(ES)详细教程

     前言  ElasticSearch(简称ES) 是一个支持海量搜索引擎服务,当一个分布式系统需要支持海量搜索服务时都会优先上ES。因此掌握ES技术也是一门进入大厂拿高薪的必修课,笔者一直在追求深入掌握ES技术,一方面希望自己有机会还能进大厂并站稳脚跟。退一步讲就算进不了大

    2024年02月04日
    浏览(58)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包