【ELK】ES单节点升级为集群模式--太细了!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 准备工作
    • [1. 查看现状【单节点】](#1. 查看现状【单节点】)
    • [2. 原节点改集群模式](#2. 原节点改集群模式)
    • [3. 改es配置文件,增加集群相关配置项](#3. 改es配置文件,增加集群相关配置项)
    • [4. *改docker映射的端口*](#4. 改docker映射的端口)
  • 启动新节点
    • [==5. docker-compose起一个新节点==](#==5. docker-compose起一个新节点==)
  • 验证
    • [6. 验证](#6. 验证)

前言

前面我们已经解决了ES使用过程中的安全问题,那么,

随着ES的继续使用,单节点难免会出现单点故障,毕竟是个单节点;

那么这篇文章,我们就来解决一下这个问题

没看过上集的兄弟可以先看看上集

【ELK】ES节点开启https【亲测可用】

【ELK】保姆级教程docker部署Elasticsearch+Kibana,必成


开始操作

准备工作

1. 查看现状【单节点】

docker ps

kibana:可以看出是单节点

2. 原节点改集群模式

vim dockers-compose.yml

shell 复制代码
    ······
   environment:
      # 删除这个单节点环境变量,es就会升级为集群模式
      # - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
      - ELASTIC_PASSWORD=Qianyue@2024#
      - "TZ=Asia/Shanghai"
    ······

3. 改es配置文件,增加集群相关配置项

vim elasticsearch.yml

shell 复制代码
node.name: es01
network.host: 0.0.0.0

http.cors.enabled: true
http.cors.allow-origin: "*"

# -------------- 集群相关配置 -------------------
# 集群名
cluster.name: es-cluster

# 本节点在集群中的IP(经测试docker部署需要加这个配置,不然无法发现)
network.publish_host: 192.168.56.57

# 集群通信端口(docker部署需要加这个配置,不然无法发现,docker映射端口也得改成这个)
transport.port: 19300

# 设置集群角色:数据节点+主节资格+远程连接资格
node.roles: [ data, master, remote_cluster_client ]

# 集群发现
discovery.seed_hosts:
  - 192.168.56.56:19300

# 引导集群初始化
cluster.initial_master_nodes:
  - es01
  - es02

# -------------- 集群相关配置 END -------------------

#--------------- 安全相关配置 -------------------
# 开启账号密码
xpack.security.enabled: true

# 开启浏览器https
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12

# 开启集群间加密通信
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: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

#--------------- 安全相关配置 END -------------------

4. 改docker映射的端口

vim dockers-compose.yml

shell 复制代码
······
    ports:
      - "19200:9200"
      # 节点上配置了集群通信端口,要映射出来
      - "19300:19300"
······

这个时候就可以重启了,重启后登录到kibana看下

没有问题,kibana可以正常开起来,进控制台查一下ES的状态

复制代码
GET /_cat/health?v&format=json

es正常运行

启动新节点

5. docker-compose起一个新节点

准备工作做完了,可以起一个新节点了!

  • docker-compose.yml

    shell 复制代码
    version: "3"
    services:
      elasticsearch: 
        restart: always
        image: elasticsearch:8.14.3
        container_name: es02
        hostname: es02
        privileged: true
        ulimits:
          memlock:
            soft: -1
            hard: -1
        environment:
          - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
          - ELASTIC_PASSWORD=Qianyue@2024#
        ports:
          - "19200:9200"
          - "19300:19300"
        volumes:
          - "./es/es02/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml" 
          - "./es/es02/config/certs:/usr/share/elasticsearch/config/certs" 
          - "./es/plugins:/usr/share/elasticsearch/plugins:rw"
          - "./es/es02/data:/usr/share/elasticsearch/data:rw"
          - "./es/es02/logs:/usr/share/elasticsearch/logs:rw"
  • elasticsearch.yml

    节点名,集群IP,通信端口填写相应的信息

    shell 复制代码
    node.name: es02
    network.host: 0.0.0.0
    
    # 开启跨域
    http.cors.enabled: true
    # 表示支持所有域名
    http.cors.allow-origin: "*"
    
    # -------------- 集群相关配置 -------------------
    
    # 集群名
    cluster.name: es-cluster
    
    # 集群中的IP
    network.publish_host: 192.168.56.56
    # 集群通信端口
    transport.port: 19300
    
    # 设置集群角色:数据节点+主节资格+远程连接资格
    node.roles: [ data, master, remote_cluster_client ]
    
    # 集群发现
    discovery.seed_hosts:
      - 192.168.56.57:19300
    
    # 引导集群初始化
    cluster.initial_master_nodes:
      - es01
      - es02
    
    # -------------- 集群相关配置 END -------------------
    
    
    #--------------- 安全相关配置 -------------------
    
    # 开启账号密码
    xpack.security.enabled: true
    
    # 开启浏览器https
    #xpack.security.http.ssl:
    #  enabled: true
    #  keystore.path: certs/http.p12
    
    # 开启集群间加密通信
    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: certs/elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
    
    #--------------- 安全相关配置 END -------------------

docker-compose up -d 启动节点

验证

6. 验证

ES通过发现机制形成集群,前文我们已经在yml文件中配置好了各种发现参数,那么新节点启动后,就会自动与原节点形成集群:
docker ps

节点正常启动,登kibana看一下节点数量

加入成功

相关推荐
做cv的小昊14 小时前
【TJU】信息检索与分析课程笔记和练习(6)英文数据库检索—web of science
大数据·数据库·笔记·学习·全文检索
五度易链-区域产业数字化管理平台14 小时前
基于产业大数据的产业园区精准招商解决方案:五度易链的全流程技术赋能逻辑
大数据
方渐鸿14 小时前
【2026】记录一次大数据请求时页面整体优化过程
大数据
天远云服15 小时前
Go语言高并发实战:集成天远手机号码归属地核验API打造高性能风控中台
大数据·开发语言·后端·golang
管理快车道15 小时前
连锁零售利润增长:我的实践复盘
大数据·人工智能·零售
Elastic 中国社区官方博客15 小时前
使用 LangGraph 和 Elasticsearch 构建人机交互 Agents
大数据·人工智能·elasticsearch·搜索引擎·langchain·全文检索·人机交互
智慧化智能化数字化方案16 小时前
数据资产管理进阶——解读数据资产管理体系建设【附全文阅读】
大数据·人工智能·数据资产管理·数据资产管理体系建设·数据要素入表
城数派16 小时前
2001-2024年全球500米分辨率逐年土地覆盖类型栅格数据
大数据·人工智能·数据分析
Hubianji_0916 小时前
[SPIE] 2026年计算机网络、通信工程与智能系统国际学术会议 (ISCCN 2026)
大数据·人工智能·计算机网络·国际会议·论文投稿·国际期刊
触想工业平板电脑一体机16 小时前
【触想智能】工业视觉设备与工控一体机进行配套需要注意的五大事项
android·大数据·运维·电脑·智能电视