【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看一下节点数量

加入成功

相关推荐
达芬奇科普31 分钟前
俄罗斯全面禁止汽油出口对俄、欧、中能源市场的多维影响分析
大数据·人工智能
RE-19012 小时前
《深入浅出统计学》学习笔记(二)
大数据·数学·概率论·统计学·数理统计·知识笔记·深入浅出
yumgpkpm5 小时前
CMP(类ClouderaCDP7.3(404次编译) )完全支持华为鲲鹏Aarch64(ARM)使用 AI 优化库存水平、配送路线的具体案例及说明
大数据·人工智能·hive·hadoop·机器学习·zookeeper·cloudera
临风赏月6 小时前
Hudi、Iceberg、Delta Lake、Paimon四种数据湖的建表核心语法
大数据
极客数模8 小时前
【浅析赛题,一等奖水平】思路模型数据相关资料!2025 年“大湾区杯”粤港澳金融数学建模竞赛B 题 稳定币的综合评价与发展分析~
大数据·算法·数学建模·金融·数据挖掘·图论·1024程序员节
临风赏月8 小时前
Hudi、Iceberg、Delta Lake、Paimon 建表语法与场景示例
大数据
luoganttcc9 小时前
加快高水平科技自立自强,引领发展新质生产力 <十五五 规划节选>
大数据·人工智能·科技
TDengine (老段)10 小时前
益和热力性能优化实践:从 SQL Server 到 TDengine 时序数据库,写入快 20 秒、查询提速 5 倍
大数据·数据库·物联网·性能优化·时序数据库·tdengine·1024程序员节
秋已杰爱10 小时前
技术准备十五:Elasticsearch
大数据·elasticsearch·搜索引擎
青云交11 小时前
Java 大视界 -- Java 大数据在智能家居能源消耗模式分析与节能策略制定中的应用
java·大数据·智能家居·数据采集·能源消耗模式分析·节能策略制定·节能效果评估