【docker搭建es8集群+kibana】


前言

本文主要介绍使用docker搭建es8集群,并使用kibana对es集群进行远程操作,未开启安全认证。其中大部分流程与创建单体es类似,部分细节不同。搭建es单机和kibana可查看docker部署es8+kibana,es集群开启安全认证可查看docker开启es集群安全认证


一、准备工作

1.服务器(虚拟机)配置

准备三台CentOS7的服务器(虚拟机),ip分别为192.168.100.125,192.168.100.39,192.168.100.2
提前开放三台服务器的9200、9300端口,需要配置kibana的服务器额外开放5601端口。只需要配置一个kibana即可连接es集群。

# 查看端口是否开放
firewall-cmd --query-port=9200/tcp
# 防火墙开放es需求端口
firewall-cmd --add-port=9200/tcp --add-port=9300/tcp --permanent
# 防火墙开放kibana需求端口
firewall-cmd --add-port=5601/tcp --permanent
# 防火墙重载端口
firewall-cmd --reload

2.安装docker

为三台服务器都安装配置docker

3.创建es网卡

三台服务器都需要创建es网卡,以便es集群和kibana连接

docker network create es-net

二、安装elasticsearch

1.es官网选择版本

选择docker下载方式
在这里插入图片描述
docker pull es指令
注意es的镜像名称是docker.elastic.co/elasticsearch/elasticsearch:8.14.1
不是elasticsearch:8.14.1
在这里插入图片描述

2.docker拉取es镜像

docker pull docker.elastic.co/elasticserach/elasticsearch:8.14.1

3.创建挂载目录

# 切换到本地docker容器目录
cd /usr/local/docker
# 创建elasticsearch目录
mkdir elasticsearch
# 进入es目录
cd elasticsearch
# 创建data和plugins挂载目录
mkdir data plugins
# 添加文件夹权限
chmod 777 data
chmod 777 plugins

4.启动es集群

4.1 参数挂载启动

注意每台服务器需要修改的参数
node.name —— es集群节点名称,每台服务器不同
network.publist_host —— 服务器ip

docker run -d \
  --privileged=true \
  --name=es8 \ 
  -p 9200:9200 \
  -p 9300:9300 \
  # es集群节点名称,每台服务器不同
  -e node.name=node-1 \ 
  # 服务器ip
  -e network.publish_host=192.168.100.125 \ 
  -e network.host=0.0.0.0 \ 
  # es集群连接ip和端口9300
  -e discovery.seed_hosts=192.168.100.125:9300,192.168.100.39:9300,192.168.100.2:9300 \
  # es集群节点
  -e cluster.initial_master_nodes=node-1,node-2,node-3 \
  # es集群名称,三台服务器要统一
  -e cluster.name=es-cluster \
  -e xpack.security.enabled=false \
  -e TZ=Asia/Shanghai \
  docker.elastic.co/elasticsearch/elasticsearch:8.14.1

4.2 配置文件挂载启动

编写elasticsearch.yml

# 进入elasticsearch文件目录
cd /usr/local/docker/elasticsearch
# 创建config文件夹
mkdir config
# 进入config文件加
cd config
# 编写elasticsearch.yml
vim elasticsearch.yml

elasticsearch.yml

# 集群名称
cluster.name: es-cluster
# 节点名称
node.name: node-1
# 网络地址
network.host: 0.0.0.0
network.publish_host: 192.168.100.125
# 集群节点配置
discovery.seed_hosts: ["192.168.100.125:9300","192.168.100.39:9300","192.168.100.2:9300"]
# 主节点候选
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

# 客户端端口
http.port: 9200
# 集群节点端口
transport.port: 9300

# 是否开启安全认证
xpack.security.enabled: false
xpack.security.enrollment.enabled: true

# 是否开启ssl
xpack.security.http.ssl:
  enabled: false
  #keystore.path: /usr/share/elasticsearch/config/certs/http.p12
  #truststore.path: /usr/share/elasticsearch/config/certs/http.p12

# 是否开启访问安全认证
xpack.security.transport.ssl:
  enabled: false
  #verification_mode: certificate
  #keystore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12
  #truststore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12

# 跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
http.host: 0.0.0.0

启动es

docker run -d \
  --privileged=true \
  --name es \ 
  --network es-net \
  -p 9200:9200 \
  -p 9300:9300 \
  -v /usr/local/docker/elasticsearch/data:/usr/share/elasticsearch/data \
  -v /usr/local/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
  -v /usr/local/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  docker.elastic.co/elasticsearch/elasticsearch:8.14.1

三、安装kibana

1.拉取kibana镜像

docker pull kibana指令
注意kibana的镜像名称是docker.elastic.co/kibana/kibana:8.14.1
不是kibana:8.14.1
在这里插入图片描述
拉取es镜像

docker pull docker.elastic.co/elasticserach/elasticsearch:8.14.1

2.创建挂载目录

# 切换到本地docker容器目录
cd /usr/local/docker
# 创建kibana目录
mkdir kibana
# 进入目录
cd kibana
# 创建data挂载目录
mkdir data
# 添加文件夹权限
chmod 777 data

3.创建kibana.yml配置文件

# 切换到kibana目录
cd /usr/local/docker/kibana
# 创建config文件夹
mkdir config
# 创建编写kibana.yml
vim kibana.yml

server.host: "0.0.0.0"
# 连接es集群配置多个地址,单机一个地址
elasticsearch.hosts: ["http://192.168.100.125:9200","http://192.168.100.39:9200","http://192.168.100.2:9200"]
# 设置kibana中文
i18n.locale: "zh-CN"

4.启动kibana

docker run -d \
--name kibana \
--network es-net \
-p 5601:5601 \
-v /usr/local/docker/kibana/data:/usr/share/kibana/data \
-v /usr/local/docker/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
docker.elastic.co/kibana/kibana:8.14.1

四、查看es集群节点

es启动较慢,确认docker中es实例未停止时,可多等待会。

1.查看es信息

在这里插入图片描述

2.访问kibana客户端

在这里插入图片描述

3.查看es集群节点

在这里插入图片描述
在这里插入图片描述


### 如何在Elasticsearch 8.x版本中配置Kibana安全令牌 为了使Kibana能够与Elasticsearch集群通信,在Elasticsearch 8.x版本中,需要创建一个用于注册Kibana实例的安全令牌。该过程涉及几个关键步骤。 #### 创建TLS证书和密钥 为确保通信安全,需先为传输层和HTTP层生成TLS证书和密钥。这些TLS配置设置会被写入`elasticsearch.yml`文件[^2]。 #### 设置elastic用户的初始密码 接着应为内置的`elastic`超级用户设定强密码,这一步骤对于保护整个集群至关重要。 #### 生成Kibana注册令牌 通过执行特定命令来获取一个有效期为30分钟的一次性注册令牌。此令牌将在启动Kibana时使用,它会自动完成以下工作: - 应用必要的安全设置至Elasticsearch集群; - 使用内建的服务账户让KibanaElasticsearch认证自己; - 将相应的安全配置保存到`kibana.yml`文件中。 具体来说,可以通过下面的方式生成并查看这个临时使用的注册令牌: ```bash bin/kibana-registration-token-cli.bat create ``` 如果是在Docker环境中部署,则可能还需要考虑如何针对容器化环境调整上述流程。例如,当利用官方镜像安装Elasticsearch 8.x 和 Kibana 8.x时,可能会涉及到额外的操作以适应容器化的特性[^3]。 另外值得注意的是,自ES 8.x起,默认情况下已经开启了安全性功能(`xpack.security.enabled: true`),这意味着即使不手动干预也存在一定的安全保障措施[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值