使用 Docker 安装 Elasticsearch

1、创建新的 docker 网络。

docker network create elastic

2、拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.12.2 
2.1 修改镜像名称

docker tag docker.elastic.co/elasticsearch/elasticsearch:8.12.2 elasticsearch:8.12.2

docker rmi docker.elastic.co/elasticsearch/elasticsearch:8.12.2

3、配置es配置文件,文件名为 elasticsearch.yml
# 集群名称
cluster.name: pdes-es-cluster 
# 节点名
node.name: es01
#绑定到哪个网络接口
network.bind_host: 0.0.0.0 
# 容器映射接口
http.port: 9202 
# 外部连接接口
transport.port: 17001
# 安全规则
xpack.security.enrollment.enabled: true
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate 
xpack.security.transport.ssl.client_authentication: required
# 证书配置
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
​
# 集群节点
cluster.initial_master_nodes: es01,es02,es03
# 可以连接到的其他节点的列表
discovery.seed_hosts: ["10.20.40.106:17002","10.20.40.106:17003"]
​
# 内存锁定
#bootstrap.memory_lock: true
# ingest-geoip插件可以对ip进行地理位置分析
ingest.geoip.downloader.enabled: false
​
#允许跨源 REST 请求
http.cors.enabled: true
# 跨源资源共享
http.cors.allow-origin: "*" 
​

3.1 生成ca证书

使用已启动的elastic 来进行生成

  1. 出现提示时,接受默认文件名,即 elastic-stack-ca.p12 。此文件包含 CA 的公有证书和用于对每个节点的证书进行签名的私钥。

  2. 输入 CA 的密码。如果不部署到生产环境,可以选择将密码留空。

docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-certutil ca

或者下载官网压缩包里的elasticsearch-certutil 工具进行生成

3.2 生成证书和密钥

  1. 输入 CA 的密码,如果未在上一步中配置密码,请按 Enter 键。

  2. 为证书创建密码并接受默认文件名。

    输出文件是名为 elastic-certificates.p12 的密钥库。此文件包含节点证书、节点密钥和 CA 证书

docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

3.3 在群集中的每个节点上,将 elastic-certificates.p12 文件复制到配置目录

docker cp elasticsearch:/usr/share/elasticsearch/elastic-certificates.p12  /home/pde/es-cluster/es01/config/
​

3.4添加以下设置以启用节点间通信并提供对节点证书的访问。

由于在群集中的每个节点上使用相同的 elastic-certificates.p12 文件,因此请将验证模式设置为 certificate

xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.client_authentication: required xpack.security.transport.ssl.keystore.path: elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

4、启动容器
4.1 设置权限

chmod 777 -R 要挂载的路径

把配置和数据卷及日志等于做挂载 例: -v /home/pde/es-cluster/es01/config/elasticsearch.yml (本地机器路径):/usr/share/elasticsearch/config/elasticsearch.yml(容器内部路径)

4.1 启动 master 节点
docker run --name es01 --net elastic -v /home/pde/es-cluster/es01/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/pde/es-cluster/es01/data/:/usr/share/elasticsearch/data -v /home/pde/es-cluster/es01/config/elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12 -v /home/pde/es-cluster/es01/logs/:/usr/share/elasticsearch/logs -p 9202:9200 -p 17001:17001 -it -m 1GB elasticsearch:8.13.3
4.2 修改生成elastic密码

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic

4.4 设置 kibana_system 内置用户的密码。

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u kibana_system

4.5 启动其他节点

配置相同的ca证书 相同的集群名称

5.安装kibana

kibana配置文件

# ES服务器主机地址
elasticsearch.hosts: ["http://10.20.40.106:9202"]
# 服务端口
server.port: 5601
# 国际化
#i18n.locale: "zh-CN"
​
# 访问ES服务器的账号 密码
elasticsearch.username: "kibana_system"
# 密码就是上面4.4 生成的密码
elasticsearch.password: "pde888"
# 服务主机名
server.name: pde_kibana
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
monitoring.ui.container.elasticsearch.enabled: true
​
5.1 拉取镜像,kibana镜像要和es对应

docker pull docker.elastic.co/kibana/kibana:8.13.3

5.2 启动kibana容器

docker run --name kib01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.13.3

5.2 在安装 Kibana 的目录中,运行以下命令以创建 Kibana 密钥库并添加安全设置:
  1. 创建 Kibana 密钥库:

    docker exec -it kib01 /usr/share/kibana/bin/bin/kibana-keystore create
  2. kibana_system 用户的密码添加到 Kibana 密钥库:

    docker exec -it kib01 /usr/share/kibana/bin/kibana-keystore add elasticsearch.password

    出现提示时,输入 kibana_system 用户的密码。

    重新启动kibana

    docker stop kib01

    docker start kib01

5.3 访问kibana
6 登录kibana调用api查看节点信息

get _cat/nodes

7 删除容器及网络
7.1 删除网络
docker network rm elastic
7.2 删除容器
docker rm es01
docker rm es02
docker rm kib01
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值