Docker部署Elasticsearch集群并开启安全设置

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

一:准备资料

  • 部署了docker的centos
  • 两或者三台服务器部署elasticsearch
  • ip1、ip2

二:docker安装、Elasticsearch安装

1.1安装docker


[root@ecs-b3bf-0225795 ~]# yum install docker

[root@ecs-b3bf-0225795 ~]# systemctl start docker

1.2ES需要开启文件读取的配置

[root@ecs-b3bf-0225795 ~]# vi /etc/sysctl.conf

#加入这一行配置
vm.max_map_count = 655350

[root@ecs-b3bf-0225795 ~]# sysctl -p

1.3安装Elasticsearch

[root@ecs-b3bf-0225795 ~]# mkdir -p /home/docker/elasticsearch

[root@ecs-b3bf-0225795 ~]# cd /home/docker/elasticsearch/

[root@ecs-b3bf-0225795 elasticsearch]# docker pull docker.io/library/elasticsearch:7.6.2

安装完成后----先别启动
创建好我们后期的所有数据存储、插件、日志、配置目录
[root@ecs-b3bf-0225795 elasticsearch]# mkdir data
[root@ecs-b3bf-0225795 elasticsearch]# mkdir logs
[root@ecs-b3bf-0225795 elasticsearch]# mkdir -p plugins/ik
[root@ecs-b3bf-0225795 elasticsearch]# mkdir config
[root@ecs-b3bf-0225795 elasticsearch]# 
[root@ecs-b3bf-0225795 elasticsearch]# chmod -R 775 data
[root@ecs-b3bf-0225795 elasticsearch]# chmod -R 775 logs
[root@ecs-b3bf-0225795 elasticsearch]# chmod -R 775 plugins
[root@ecs-b3bf-0225795 elasticsearch]# chmod -R 775 config

安装ik分词器

[root@ecs-b3bf-0225795 plugins]# cd plugins/ik
[root@ecs-b3bf-0225795 ik]# wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
[root@ecs-b3bf-0225795 ik]# unzip elasticsearch-analysis-ik-7.6.2.zip
[root@ecs-b3bf-0225795 ik]# 
[root@ecs-b3bf-0225795 ik]# 

将配置文件copy出来,放在到挂在路径


[root@ecs-b3bf-0225795 elasticsearch]# cd /home/docker/elasticsearch/
[root@ecs-b3bf-0225795 elasticsearch]# 
[root@ecs-b3bf-0225795 elasticsearch]# docker run -p 9200:9200 -p 9300:9300 \
--privileged=true --name es7 \
-e ES_JAVA_OPTS="-Xms4096m -Xmx4096m" \
-v /home/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /home/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/docker/elasticsearch/logs:/usr/share/elasticsearch/logs \
-d elasticsearch:7.6.2
[root@ecs-b3bf-0225795 elasticsearch]# 
[root@ecs-b3bf-0225795 elasticsearch]# 
[root@ecs-b3bf-0225795 elasticsearch]# docker cp -a es7:/usr/share/elasticsearch/config/ /home/docker/elasticsearch/
[root@ecs-b3bf-0225795 elasticsearch]# docker kill es7
[root@ecs-b3bf-0225795 elasticsearch]# docker rm es7

将我们es启动系统内的配置文件cp到我们挂载的物理路径

elasticsearch.yml

#集群名称
cluster.name: material-es
#当前该节点的名称
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
#设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,
#如果是docker安装节点的IP将会是配置的IP而不是docker网管ip
network.publish_host: 175.6.3.132
#设置映射端口
http.port: 9200
#内部节点之间沟通端口
transport.tcp.port: 9300
#集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写
#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上
discovery.seed_hosts: ["175.6.3.132:9300","175.6.3.133:9300","175.6.3.134:9300"]
#当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,
#其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,
#如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#在群集完全重新启动后阻止初始恢复,直到启动N个节点
#简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,
gateway.recover_after_nodes: 2
#删除索引是是否需要显示其名称,默认为显示
#action.destructive_requires_name: true
# 是否支持跨域,默认为false
http.cors.enabled: true
# 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。/https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"

替换好新的配置文件

启动命令-每台机器都执行同样的指令
[root@ecs-b3bf-0225795 elasticsearch]# docker run -p 9200:9200 -p 9300:9300 \
--privileged=true --name es7 \
-e ES_JAVA_OPTS="-Xms4096m -Xmx4096m" \
-v /home/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /home/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/docker/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /home/docker/elasticsearch/config:/usr/share/elasticsearch/config \
-d elasticsearch:7.6.2

三:安全设置

安全性处理:基于上述已经在运行的容器之上,在主机上执行此运行方式即可
获取p12文件 打开安全设置

3.1生成 p12文件

[root@ecs-b3bf-0225795 elasticsearch]# cd /
[root@ecs-b3bf-0225795 ~]# docker run -dit --name=es elasticsearch:7.6.2 /bin/bash
f87b0e87cbe6cc5a1c53e6e343914072369641cef216815ca0d4f18e50a9da5e

[root@ecs-b3bf-0225795 ~]# docker exec -it es /bin/bash
[root@ecs-b3bf-0225795 elasticsearch]# 进入我们临时的es容器内去执行命令
[root@ecs-b3bf-0225795 elasticsearch]# bin/elasticsearch-certutil ca
[root@ecs-b3bf-0225795 elasticsearch]# 一路回车操作
[root@ecs-b3bf-0225795 elasticsearch]# 一路回车操作
[root@ecs-b3bf-0225795 elasticsearch]# bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
[root@ecs-b3bf-0225795 elasticsearch]# 一路回车操作
[root@ecs-b3bf-0225795 elasticsearch]# 一路回车操作
[root@ecs-b3bf-0225795 elasticsearch]# 生成完成后
[root@ecs-b3bf-0225795 elasticsearch]# 
[root@ecs-b3bf-0225795 elasticsearch]# ls
-rw------- 1 root root 3451 Mar  1 17:42 elastic-certificates.p12
...
[root@ecs-b3bf-0225795 elasticsearch]# 退出当前容器
[root@ecs-b3bf-0225795 elasticsearch]# exit; 
exit
[root@ecs-b3bf-0225795 ~]# 复制我们生成的p12到物理路径
[root@ecs-b3bf-0225795 ~]# docker cp -a es:/usr/share/elasticsearch/elastic-certificates.p12 /home/docker/elasticsearch/config/
[root@ecs-b3bf-0225795 ~]# 
[root@ecs-b3bf-0225795 ~]# docker kill es
es
[root@ecs-b3bf-0225795 ~]# docker rm es
es
[root@ecs-b3bf-0225795 ~]# 停止es集群所有节点
[root@ecs-b3bf-0225795 ~]# docker kill es7
[root@ecs-b3bf-0225795 ~]# docker rm es7

elasticsearch.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

将新文件配置文件,elasticsearch.yml 、elastic-certificates.p12  推送到每个节点的目录:

/home/docker/elasticsearch/config

并授权所有用户可读

[root@ecs-b3bf-0225795 ~]# 授权所有用户可读
[root@ecs-b3bf-0225795 ~]# chmod +r /home/docker/elasticsearch/config/elastic-certificates.p12

3.2生成Es的访问密码

切记:集群三个节点之间的9200,9300 一定要都可以互通,自动生成密码:需要记录下来,需要开启9200,9300端口
[root@ecs-b3bf-0225795 ~]# 启动我们的集群
[root@ecs-b3bf-0225795 ~]# docker run -p 9200:9200 -p 9300:9300 \
--privileged=true --name es7 \
-e ES_JAVA_OPTS="-Xms4096m -Xmx4096m" \
-v /home/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /home/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/docker/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /home/docker/elasticsearch/config:/usr/share/elasticsearch/config \
-v /home/docker/elasticsearch/config/elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12 \
-d elasticsearch:7.6.2
[root@ecs-b3bf-0225795 ~]# 
[root@ecs-b3bf-0225795 ~]# 进入当前启动节点es7的容器内
[root@ecs-b3bf-0225795 ~]# docker exec -it es7 /bin/bash
[root@ac0fa780b8db elasticsearch]#
[root@ac0fa780b8db elasticsearch]#
[root@ac0fa780b8db elasticsearch]# ./bin/elasticsearch-setup-passwords auto
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y


Changed password for user apm_system
PASSWORD apm_system = I5kYgua12jyhTWgGE6DoR

Changed password for user kibana
PASSWORD kibana = QehLVOFFTmoVSlK2121n4hU

Changed password for user logstash_system
PASSWORD logstash_system = e0woYM550en2121kSmfCph0
......

Changed password for user elastic
PASSWORD elastic = qRJvpTYcvslk1WhfvRfHE
如果你是单机启动,配置文件内只需要有这些就够了
[root@iZ8vb3lp570ckrtrhp6f42Z config]# cat elasticsearch.yml 
cluster.name: "material-es"
network.host: 0.0.0.0
#当前该节点的名称
node.name: "node-1"

# 打开安全设置
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

启动时需要加个参数,告知非集群启动
[root@ecs-b3bf-0225795 ~]# docker run -p 9200:9200 -p 9300:9300 \
--privileged=true --name es7 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms4096m -Xmx4096m" \
-v /home/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /home/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/docker/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /home/docker/elasticsearch/config:/usr/share/elasticsearch/config \
-v /home/docker/elasticsearch/config/elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12 \
-d elasticsearch:7.6.2

我们需要的是:elastic 这个用户

备注:生成的账户与密码会互传到子节点,子节点不需要去执行此操作

Docker部署Elasticsearch集群并开启安全设置

Docker部署Elasticsearch集群并开启安全设置

 有效参考资料:

《CentOS ES7.6集群搭建》

《CentOS ES7.6.2 Docker安装部署》

《CentOS ES7.6集群搭建Elasticsearch安全策略-开启密码账号访问CentOS ES7.6集群搭建》文章来源地址https://www.toymoban.com/news/detail-493525.html

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

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

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

相关文章

  • Docker Elasticsearch集群部署

    (1)Centos7 (2)Docker 23.0.1 (3)Elasticsearch 7.16.3 名称 ip地址 内存 节点一 192.16.109.113 16G 节点二 192.16.109.114 16G 节点三 192.16.109.115 16G 在三个服务器节点上执行如下操作: 准备映射目录 切换到/home目录中,创建elasticsearch目录,切换到elasticsearch目录中。 临时启动elasticsearch 复制

    2024年02月08日
    浏览(46)
  • Docker部署Elasticsearch集群

    2024年02月16日
    浏览(34)
  • 关闭 Elasticsearch 集群的安全性设置

    关闭 Elasticsearch 集群的安全性设置,特别是如果您正在使用 X-Pack,涉及到修改 Elasticsearch 的配置。以下是一般步骤,但请注意,这可能会使您的 Elasticsearch 集群面临安全风险,因此建议仅在开发或测试环境中执行此操作。 关闭 X-Pack 安全性 编辑配置文件 : 打开 Elasticsearch 的

    2024年02月02日
    浏览(36)
  • docker部署Elasticsearch7.17集群和kibana

    环境准备: 3台centos7.9的服务器 vim /etc/sysctl.conf添加:vm.max_map_count=262144 sysctl -w vm.max_map_count=262144 即时生效 cat /proc/sys/vm/max_map_count 查看 #创建es配置目录 mkdir /home/es/config -p #创建es数据目录 mkdir /home/es/data #创建es插件目录 mkdir /home/es/plugins #授权目录 chmod -R 777 /home/es 在/home/e

    2024年02月10日
    浏览(52)
  • Linux开启Docker远程访问并设置安全访问(证书密钥),附一份小白一键设置脚本哦!

    前言 喜欢折腾慢慢看,不喜欢折腾直接跳到小简下文的一键脚本那里,两分钟搞好。 我的博客:https://blog.ideaopen.cn 我的公众号:小简聊开发 开启远程访问 编辑 docker.service 文件 找到 Service 节点,修改 ExecStart 属性,增加 -H tcp://0.0.0.0:2375 这样相当于对外开放的是 2375 端口,

    2024年02月02日
    浏览(50)
  • elasticsearch-5.6.15集群部署,如何部署x-pack并添加安全认证

    目录 一、环境 1、JDK、映射、域名、三墙 2、三台服务器创建用户、并为用户授权 二、配置elasticsearch-5.6.15实例 1、官网获取elasticsearch-5.6.15.tar.gz,拉取到三台服务器 2、elas环境准备 3、修改elasticsearch.yml配置 4、修改软、硬件线程数 5、修改最大连接  6、修改jvm内存 7、所有节

    2024年01月22日
    浏览(38)
  • 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日
    浏览(50)
  • 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日
    浏览(46)
  • Logstash如何连接开启了SSL的Elasticsearch集群?

    我们知道Elasticsearch从7开始开放了大量X-Pack的基础安全功能,默认情况下启动的时候就会配置开启安全功能,启用SSL,连接Elasticsearch需要采用HTTPS。 这种情况下Logstash应该如何连接上Elasticsearch呢?本文从头开始演示从logstash搭建到配置连接Elasticsearch,配置SSL。Elasticsearch和Lo

    2023年04月22日
    浏览(56)
  • Elasticsearch集群和账号密码设置

    ubuntu 20.04 elasticsearch 8.0 服务器IP:192.168.1.63 目录elastic-master是主节点,目录elastic-node2 是从节点 系统需要新建一个用户来专门启动es,因为es不能使用root用户启动 一台服务器上装多个es来配置集群(多台也是一样的配置) 下载地址 解压刚刚下载的es,解压后我就暂时放在elast

    2024年02月02日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包