基于 JumpServer 容器化部署 ES 集群 1 确保 JumpServer 容器环境正常docker ps2 编写文件进入 JumpServer 的 /opt/jumpserver-xxx/compose 目录备份 es.yml 文件并编辑 es.yml文件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_net3 启动 ES 容器# 调整 vm.max_map_count 太小 echo vm.max_map_count262144 | sudo tee -a /etc/sysctl.conf sysctl -p # 启动 es 容器 docker compose -f es.yml up -d # 查看容器运行状态 docker ps | grep jms_es4 检查 ES 容器状态# 检查节点状态 curl -X GET http://localhost:9200/_cat/nodes?vpretty # 检查集群健康 curl -X GET http://localhost:9200/_cluster/health?pretty # 检查索引 curl -X GET http://localhost:9200/_cat/indices?vprettylocalhost:9200是 ES01 节点其他端口9201、9202也可以分别查询。命令会显示每个节点的名称、角色、内存、CPU、主节点状态等。statusgreen→ 集群健康所有主分片和副本分片正常。statusyellow→ 主分片正常但副本分片未分配通常是单节点集群才会出现。statusred→ 出现数据丢失或节点未启动需要检查日志。可以看到所有索引状态是否为open。如果有closed或red状态需要进一步排查。5 将 ES 各个节点添加至 JumpServer 命令存储1.依次点击 系统设置 -- 存储设置 -- 命令存储 -- 创建2.设置为默认存储3.依次点击 系统设置 -- 组件设置 -- 组件列表 -- 全选 -- 更多操作 -- 命令存储 -- ES3 -- 确认6 验证 ES 节点是否正常存储命令1.去 web cli 命令行输入命令验证 es 存储2.依次点击 审计台 -- 会话命令 -- 命令存储 -- ES3