基于 JumpServer 容器化部署 ES 集群

1 确保 JumpServer 容器环境正常

bash 复制代码
docker ps

2 编写文件

进入 JumpServer 的 /opt/jumpserver-xxx/compose 目录,备份 es.yml 文件并编辑 es.yml文件

bash 复制代码
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.25
    container_name: jms_es01
    hostname: es01
    restart: always
    ports:
      - 9200:9200
    volumes:
      - ${VOLUME_DIR}/elasticsearch/es01/data:/usr/share/elasticsearch/data
      - ${VOLUME_DIR}/elasticsearch/es01/logs:/usr/share/elasticsearch/logs
    environment:
      TZ: ${TZ:-Asia/Shanghai}
      cluster.name: jms-es-cluster
      node.name: es01
      node.roles: master,data,ingest
      discovery.seed_hosts: es01,es02,es03
      cluster.initial_master_nodes: es01,es02,es03
      network.host: 0.0.0.0
      bootstrap.memory_lock: "false"
      xpack.security.enabled: "false"
      TAKE_FILE_OWNERSHIP: "true"
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: '-1'
        hard: '-1'
    healthcheck:
      test: "curl -sL http://localhost:9200 > /dev/null"
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 60s
    networks:
      - net

  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.25
    container_name: jms_es02
    hostname: es02
    restart: always
    ports:
      - 9201:9200
    volumes:
      - ${VOLUME_DIR}/elasticsearch/es02/data:/usr/share/elasticsearch/data
      - ${VOLUME_DIR}/elasticsearch/es02/logs:/usr/share/elasticsearch/logs
    environment:
      TZ: ${TZ:-Asia/Shanghai}
      cluster.name: jms-es-cluster
      node.name: es02
      node.roles: master,data,ingest
      discovery.seed_hosts: es01,es02,es03
      cluster.initial_master_nodes: es01,es02,es03
      network.host: 0.0.0.0
      bootstrap.memory_lock: "false"
      xpack.security.enabled: "false"
      TAKE_FILE_OWNERSHIP: "true"
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: '-1'
        hard: '-1'
    healthcheck:
      test: "curl -sL http://localhost:9200 > /dev/null"
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 60s
    networks:
      - net

  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.25
    container_name: jms_es03
    hostname: es03
    restart: always
    ports:
      - 9202:9200
    volumes:
      - ${VOLUME_DIR}/elasticsearch/es03/data:/usr/share/elasticsearch/data
      - ${VOLUME_DIR}/elasticsearch/es03/logs:/usr/share/elasticsearch/logs
    environment:
      TZ: ${TZ:-Asia/Shanghai}
      cluster.name: jms-es-cluster
      node.name: es03
      node.roles: master,data,ingest
      discovery.seed_hosts: es01,es02,es03
      cluster.initial_master_nodes: es01,es02,es03
      network.host: 0.0.0.0
      bootstrap.memory_lock: "false"
      xpack.security.enabled: "false"
      TAKE_FILE_OWNERSHIP: "true"
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: '-1'
        hard: '-1'
    healthcheck:
      test: "curl -sL http://localhost:9200 > /dev/null"
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 60s
    networks:
      - net

networks:
  net:
    external: true
    name: jms_net

3 启动 ES 容器

bash 复制代码
# 调整 vm.max_map_count 太小
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sysctl -p
# 启动 es 容器
docker compose -f es.yml up -d
# 查看容器运行状态
docker ps | grep jms_es

4 检查 ES 容器状态

bash 复制代码
# 检查节点状态
curl -X GET "http://localhost:9200/_cat/nodes?v&pretty"
# 检查集群健康
curl -X GET "http://localhost:9200/_cluster/health?pretty"
# 检查索引
curl -X GET "http://localhost:9200/_cat/indices?v&pretty"
  • localhost:9200 是 ES01 节点,其他端口(9201、9202)也可以分别查询。
  • 命令会显示每个节点的名称、角色、内存、CPU、主节点状态等。
  • status = green → 集群健康,所有主分片和副本分片正常。
  • status = yellow → 主分片正常,但副本分片未分配(通常是单节点集群才会出现)。
  • status = red → 出现数据丢失或节点未启动,需要检查日志。
  • 可以看到所有索引状态是否为 open
  • 如果有 closedred 状态,需要进一步排查。

5 将 ES 各个节点添加至 JumpServer 命令存储

1.依次点击 系统设置 -- 存储设置 -- 命令存储 -- 创建

2.设置为默认存储

3.依次点击 系统设置 -- 组件设置 -- 组件列表 -- 全选 -- 更多操作 -- 命令存储 -- ES3 -- 确认

6 验证 ES 节点是否正常存储命令

1.去 web cli 命令行输入命令验证 es 存储

2.依次点击 审计台 -- 会话命令 -- 命令存储 -- ES3

相关推荐
小羊没烦恼!2 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
一隅论数智2 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
LaughingZhu2 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
尧炎科技2 天前
防潮抗变形,就选纯品梅花全桉多层板
大数据
程序员大阳2 天前
副队长大数据教程(5)--集群情况下虚拟机网络配置
大数据·集群·nat·网路
自由能燃气设备2 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远2 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
嘉立创FPC苗工2 天前
FPC与机器人的双向赋能,解锁智能装备进化新势能
大数据·人工智能·制造·fpc·电路板
AI职业加油站2 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
龙亘川2 天前
一网统管AI平台民生业务实践:基于城市数字底座赋能公积金业务服务升级
大数据·安全·智慧城市·开源软件·数据可视化·政务