docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理

这篇具有很好参考价值的文章主要介绍了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

前提工作

本机hosts解析

master执行,node改下主机名

#hostnamectl set-hostname es-master
#cat /etc/hosts
192.168.121.137 es-master
192.168.121.138 es-node1

增加配置

# cat /etc/sysctl.conf
vm.max_map_count=655360
# sysctl -p

自建的虚拟机

需要关闭selinux 设置为disabled,docker容器启动后关闭防火墙,切勿提前关闭,可能会导致报错,若发生报错,重启docker即可。
需要配置centos的源和epel源,如下链接可以下载。

https://developer.aliyun.com/mirror/
#cat /etc/sysconfig/selinux
SELINUX=disabled

云服务器

检查selinux是否关闭,防火墙根据安全组进行管理

#cat /etc/sysconfig/selinux
SELINUX=disabled

操作

本次操作系统为centos7,docker版本为20.10.12,docker-compose版本为 v2.12.2,可以自由波动,如下是对应关系。
docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理,Docker-compose,Java,elasticsearch,linux,docker

docker安装

俩节点一样操作
离线安装包地址:

https://download.docker.com/linux/static/stable/x86_64/

用国内源加载

# yum install -y yum-utils device-mapper-persistent-data lvm2
# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

卸载旧docker

#yum remove -y docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-selinux \
              docker-engine-selinux \
              docker-engine \
              container*

查看源包含的docker版本,风格自由

#yum list docker-ce --showduplicates | sort -r

安装docker指定版本

#yum -y install docker-ce-20.10.12-3.el7 docker-ce-cli-20.10.12-3.el7

设置docker镜像加速,地址可以去阿里云acr产品控制台获取

#vi /etc/docker/daemon.json

{
  "registry-mirrors": ["https://xxxxxxxxx.mirror.aliyuncs.com"]
}

启动docker,开机自启

#systemctl start docker
#systemctl enable docker
#systemctl status docker

安装docker-compose

俩节点一样操作
离线安装包地址:

https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64

国内下载地址

#curl -Lk https://get.daocloud.io/docker/compose/releases/download/v2.12.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

在线下载

#curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

添加可执行权限

#chmod +x /usr/local/bin/docker-compose

版本测试

#docker-compose --version
输出:Docker Compose version v2.12.2

部署es集群

注意:有规定就创建普通用户,没要求的就用root启动,本次操作用的root,普通用户的话后面的目录自我授权即可

es-master操作

1、创建部署目录

#mkdir /root/es && cd /root/es

2、编写docker-compose.yml文件
JAVA_OPTS可以根据节点资源进行设置,建议先pull下elasticsearch:6.8.23、elasticsearch-head:6-alpine镜像到本地

version: '3'
services:
  es-master:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.23
    container_name: es-master
    environment:
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - /data/elasticsearch/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
      - /data/elasticsearch/data:/usr/share/elasticsearch/data:rw
      - /data/elasticsearch/log:/usr/share/elasticsearch/log:rw
    ports:
      - 9200:9200
      - 9300:9300
    extra_hosts:
      - "es-master:192.168.121.137"
      - "es-node1:192.138.121.138"
  elasticsearch-head:
      image: wallbase/elasticsearch-head:6-alpine
      container_name: elasticsearch-head
      environment:
        TZ: 'Asia/Shanghai'
      ports:
        - '9100:9100'

3、创建es配置数据日志目录和授权

mkdir /data/elasticsearch/{config,data,log} -pv
chmod 777 -R /data/elasticsearch

4、编辑es.yml文件

cd /data/elasticsearch/config
#cat es.yml
cluster.name: elasticsearch-cluster
node.name: es-master
network.bind_host: 0.0.0.0
network.publish_host: 192.168.121.137
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,Content-Type
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["es-master:9300","es-node1:9300"]
discovery.zen.minimum_master_nodes: 1

es-node1操作

1、创建部署目录

#mkdir /root/es && cd /root/es

2、编写docker-compose.yml文件
JAVA_OPTS可以根据节点资源进行设置,建议先pull下elasticsearch:6.8.23到本地

version: '3'
services:
  es-node1:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.23
    container_name: es-node1
    environment:
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - /data/elasticsearch/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
      - /data/elasticsearch/data:/usr/share/elasticsearch/data:rw
      - /data/elasticsearch/log:/usr/share/elasticsearch/log:rw
    ports:
      - 9200:9200
      - 9300:9300
    extra_hosts:
      - "es-master:192.168.121.137"
      - "es-node1:192.138.121.138"

3、创建es配置数据日志目录和授权

mkdir /data/elasticsearch/{config,data,log} -pv
chmod 777 -R /data/elasticsearch

4、编辑es.yml文件

cd /data/elasticsearch/config
#cat es.yml
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 192.168.121.138
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,Content-Type
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["es-master:9300","es-node1:9300"]
discovery.zen.minimum_master_nodes: 1

es-master、es-node1 docker-compose启动

#pwd
/root/es
#docker-compose up -d

docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理,Docker-compose,Java,elasticsearch,linux,docker

启动es_xpack 认证

es-master操作
1、登录其中一个节点的容器内,生成证书

#docker exec -it es-master bash
# /usr/share/elasticsearch/bin/elasticsearch-certutil ca
# /usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
## 两条命令均一路回车即可,不需要给秘钥再添加密码。

拷贝到宿主机挂载目录

# mv elastic-* /usr/share/elasticsearch/data/
## 复制 /data/elasticsearch/data/ 下证书到 config 目录
# cd /data/elasticsearch/config/
# cp /data/elasticsearch/data/elastic-*  ./
# chmod 644 elastic-*

复制证书文件到其他节点

# scp /data/elasticsearch/config/elastic-* es-node1:/data/elasticsearch/config/

es-master、es-node1一致操作
新增es.yml配置

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.keystore.type: PKCS12
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.type: PKCS12
xpack.security.audit.enabled: true

修改docker-compose.yml文件
volumes下追加一条

- /data/elasticsearch/config/elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12:ro

尝试启动可能会报错
1、Caused by: java.lang.IllegalArgumentException: unknown setting [xck.security.enabled] did you mean any of [xpack.security.enabled, xpack.security.audit.enabled]?
解决:
在es.yml文件内去掉这部分setting

2、Caused by: java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/elastic-certificates.p12
解决:
检查文件是否在,若在,查看下权限,root账号启动的需要将文件同步到容器内,授予权限
docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理,Docker-compose,Java,elasticsearch,linux,docker
3、Caused by: java.security.AccessControlException: access denied (“java.io.FilePermission” “/data/elasticsearch/config/elastic-certificates.p12” “read”)
如上排查一致

设置密码
ES 中内置了几个管理其他集成组件的账号即:apm_system, beats_system, elastic, kibana, logstash_system, remote_monitoring_user,使用之前,首先需要添加一下密码。
我设置的密码跟账号一致

# docker exec -it es-mater bash
# /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

访问es-head

curl http://192.168.121.137:9100/?auth_user=elastic&auth_password=elastic
docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理,Docker-compose,Java,elasticsearch,linux,docker
可能出现的问题是集群不健康,显示未连接
1、可能自建虚拟机的需要停掉容器,重启虚拟机,云服务器的切勿操作,生产耦合业务机器切勿操作
2、经过了加密的都需要在es.yml内增加一个参数

http.cors.allow-headers: Authorization,Content-Type

重新启动
3、访问链接检查是否有误,密码是否有误
4、连接地址最好填准确的ip地址,不用默认的localhost

加密失败
docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理,Docker-compose,Java,elasticsearch,linux,docker
原因:Caused by: java.lang.IllegalStateException: failed to load plugin class [org.elasticsearch.xpack.core.XPackPlugin]
1、可能路劲不对,2、删除es data目录下的数据再启动

xpack离线安装

安装教程

部署kibana

1、es-master操作

#docker pull kibana:6.8.13

docker-compose.yml文件追加一条service,注意对齐

 kibana:
      image: kibana:6.8.13
      restart: always
      container_name: kibana
      volumes:
        - /data/elasticsearch/config/kibana.yml:/usr/share/kibana/config/kibana.yml
      ports:
        - '5601:5601'     #java、集群通信端口
      privileged: true    #环境变量

配置kibana.yml

#cat /data/elasticsearch/config/kibana.yml
server.name: kibana
# kibana的主机地址 0.0.0.0可表示监听所有IP
server.host: "0.0.0.0"
# # kibana访问es的URL
elasticsearch.hosts: [ "http://192.168.121.137:9200","http://192.168.121.138:9200" ]
elasticsearch.username: 'elastic'   #xpack设置的es账号密码也可以用kibana设置的账密,看情况决定
elasticsearch.password: 'elastic'
xpack.monitoring.ui.container.elasticsearch.enabled: false #显示cpu监控指标

2、es-master和es-node1操作
es.yml追加该配置用于监控

xpack.monitoring.collection.enabled: true

重启服务,加载yml配置

#docker-compose restar
##或者
#docker-compose restart 指定service

访问kibana

http://192.168.121.137:5601/

账密

elastic/elastic

docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理,Docker-compose,Java,elasticsearch,linux,docker

问题1、Caused by: java.lang.IllegalStateException: index and alias names need to be unique, but the following duplicates were found [.kibana (alias of [.kibana_1/OBxJe4x1SFauudkY64PgQw])]
解决:
删掉该索引目录,别担心集群化,你es起来后会生成一个一样的索引目录。
docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理,Docker-compose,Java,elasticsearch,linux,docker文章来源地址https://www.toymoban.com/news/detail-633557.html

到了这里,关于docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • ElasticSearch第一讲 Docker-compose 单机部署Elasticsearch kibana esHead与配置认证证书设置密码

    ElasticSearch第一讲 Docker-compose 单机部署Elasticsearch kibana esHead与配置认证证书设置密码

    docker安装 docker-compose安装配置,如果还有没安装docker的可以参考我的docker/docker-compose安装配置 本次讲解的是安装ES 7.13.3 现在目前官网给出的最新ES版本已经是8.x了,ElasticSearch官网:https://www.elastic.co/guide/index.html 好了长话短说,我们直接上docker配置文件,对于一些配置文件和数

    2024年02月03日
    浏览(14)
  • (实战)docker-compose部署分布式日志方案EFK(Elasticsearch+Fluentd+Kibana)

    (实战)docker-compose部署分布式日志方案EFK(Elasticsearch+Fluentd+Kibana)

    目录 背景 技术架构 部署安装 环境准备 配置Logback并模拟产生日志 制作fluentd镜像 运行docker-compose 效果展示         在现代的软件开发和运维领域,监控和日志管理是至关重要的任务。随着应用程序规模的扩大和分布式系统的普及,有效地跟踪和分析日志数据成为了挑战

    2024年02月03日
    浏览(12)
  • docker-compose deploy elasticsearch tls

    参考: https://www.elastic.co/guide/en/elastic-stack-get-started/7.9/get-started-docker.html https://www.elastic.co/guide/en/elasticsearch/reference/7.17/configuring-tls-docker.html#_run_the_example

    2024年02月16日
    浏览(7)
  • 【docker系列】docker-compose安装elasticsearch和kibana

    【docker系列】docker-compose安装elasticsearch和kibana

    大家好,我是walker 一个从文科自学转行的程序员~ 爱好编程,偶尔写写编程文章和生活 欢迎关注公众号【 I am Walker 】,回复“电子书”,就可以获得200多本编程相关电子书哈~ 我的gitee:https://gitee.com/shen-chuhao/walker.git 里面很多技术案例! (1)、 [root@localhost docker]# mkdir es (

    2023年04月08日
    浏览(7)
  • Centos安装指定docker版本和docker-compose

    Centos安装指定docker版本和docker-compose

    目录 一. 直接安装Docker最新镜像源 1. 卸载旧版本的Docker: 2. 安装依赖包: 3. 添加Docker源: 4. 安装Docker: 5. 启动Docker服务: 6. 验证Docker是否安装成功: 二、指定Docker版本安装  1. 查看yum源支持的docker版本  2. 安装指定版本Docker (以19.03.9-3.el7为例) 3. 查看docker版本 三、卸

    2024年02月15日
    浏览(36)
  • docker-compose的部署

    docker-compose的部署

    目录 一、compose的概述 1.1 yaml的概述 1.2 yaml的数据结构 1.2.1 docker composeyml文件的常用手段 1.3 docker compose 1.4 yml文件编写  二、部署compose 2.1 下载docker-compose安装包  2.2 部署docker-compose 2.3 部署docker-compose 2.4 开启验证  三、compose编排安装tomcat容器 总结 compose是docker官网开发的,

    2024年02月01日
    浏览(16)
  • docker-compose部署mysql

    docker-compose 虽然docker部署环境比自己下载安装包要方便不少,但是docker的命令还有挂载目录在每次启动容器的时候都去找命令对使用者是很不友好的,而且有时候要启动多个容器的时候显然一个个的启动是很麻烦的。所以如果可以事先将\\\"启动脚本\\\"写好的话,之后就算虚拟机

    2024年02月02日
    浏览(15)
  • ES-部署(docker-compose)

    参考资料 http://www.baiyp.ren/elasticsearch-集群部署.html 说明 一个服务器,三个es服务节点,一个kibana容器,一个elasticsearch-head服务节点。 es版本为7.17.5。 服务器地址:192.168.127.142。 elasticsearch 不建议使用docker,容器部署不适合有状态服务。这里是为了学习方便。 安装流程 安装

    2024年02月08日
    浏览(16)
  • docker-compose部署redis

    docker-compose部署redis

    docker-compose是什么? Docker Compose是一个用于 定义和运行多个容器Docker应用程序的工具 。它允许您定义一组容器,这些容器组成一个完整的应用程序,且这些容器之间可以互相通信。通过Docker Compose,您可以使用一个单独的文件来定义应用程序的 服务、网络、卷等元素,并且可

    2024年02月12日
    浏览(16)
  • Docker-Compose编排与部署

    Docker-Compose编排与部署

    目录 Docker Compose Compose的优点 编排和部署 Compose原理 Compose应用案例 安装docker-ce 阿里云镜像加速器 安装docker-compose docker-compose用法 Yaml简介 验证LNMP环境          Docker Compose 的前身是 Fig,它是一个 定义及运行多个 Docker 容器的工具 。可以使用 YAML 文件来配置应用程序的服

    2024年02月14日
    浏览(17)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包