You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用Fleet需开启Kibana安全,添加Fleet Server失败求助

问题根源分析

你的报错核心是Fleet依赖Elasticsearch和Kibana的安全功能正常运行,但当前配置存在多处冲突和错误:

  • Elasticsearch禁用了安全功能(xpack.security.enabled=false),但Fleet需要通过安全组件生成service token完成认证。
  • Kibana虽然开启了安全功能,但设置了xpack.security.authc.providers=[],导致没有可用的认证方式,安全功能实际未生效。
  • Fleet Server镜像版本(8.6.0)与ES/Kibana(8.13.2)不兼容,Elastic栈要求所有组件版本严格一致。
  • Fleet Server配置中Elasticsearch端口写错(9201应为9200),且SSL配置与ES实际状态不匹配。
修复步骤

1. 启用Elasticsearch安全功能

Fleet必须依赖ES的安全组件,需开启xpack.security.enabled=true,测试环境可额外添加xpack.security.http.ssl.enabled=false关闭HTTP SSL。

2. 修复Kibana安全认证配置

删除xpack.security.authc.providers=[],保留默认用户名密码认证方式,同时修正ES连接地址为http://elasticsearch:9200(对应ES的HTTP模式)。

3. 统一Fleet Server版本

将Fleet Server镜像版本改为8.13.2,与ES/Kibana保持一致。

4. 修正Fleet Server的ES连接和SSL配置

  • 将FLEET_SERVER_ELASTICSEARCH_HOST改为http://elasticsearch:9200
  • 设置FLEET_SERVER_INSECURE_HTTP=true(对应ES的HTTP模式)
  • 开启KIBANA_FLEET_SETUP=true,让Fleet Server自动完成Kibana侧初始化
修正后的完整Docker Compose配置
version: '3'

services:
    elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:8.13.2
        container_name: elasticsearch
        environment:
            - discovery.type=single-node
            - ELASTIC_PASSWORD=test
            - xpack.security.enabled=true
            - xpack.security.http.ssl.enabled=false # 测试环境关闭HTTP SSL
        ports:
            - "9200:9200"

    kibana:
        image: docker.elastic.co/kibana/kibana:8.13.2
        container_name: kibana
        ports:
            - "5601:5601"
        depends_on:
            - elasticsearch
        environment:
            - ELASTICSEARCH_URL=http://elasticsearch:9200 # 对应ES的HTTP地址
            - SERVERNAME=kibana
            - ELASTICSEARCH_USERNAME=kibana_system
            - ELASTICSEARCH_PASSWORD=test
            - XPACK_REPORTING_KIBANASERVER_HOSTNAME=localhost
            - SERVER_SSL_ENABLED=false
            - xpack.security.enabled=true # 保留安全功能开启

    apm-server:
        image: docker.elastic.co/apm/apm-server:8.13.2
        container_name: apm-server
        ports:
            - "8200:8200"
        depends_on:
            - elasticsearch
            - kibana
        environment:
            - OUTPUT_ELASTICSEARCH_ENABLED=true
            - OUTPUT_ELASTICSEARCH_HOSTS=["elasticsearch:9200"]
            - ELASTICSEARCH_HOSTS="http://elasticsearch:9200"

    fleet-server:
        image: docker.elastic.co/beats/elastic-agent:8.13.2 # 统一版本
        container_name: fleet-server
        restart: "always"
        ports:
            - "9243:9243"
        depends_on:
            - elasticsearch
            - kibana
        environment:
            FLEET_SERVER_ENABLE: true
            FLEET_SERVER_ELASTICSEARCH_HOST: "http://elasticsearch:9200" # 修正地址和端口
            FLEET_SERVER_PORT: 9243
            FLEET_SERVER_INSECURE_HTTP: true # 对应ES的HTTP模式
            KIBANA_HOST: "http://kibana:5601"
            KIBANA_FLEET_SETUP: true # 开启自动初始化
            ELASTICSEARCH_PASSWORD: test # 添加ES密码用于初始化
后续操作
  1. 清理原有容器和数据卷(测试环境):
docker-compose down -v
  1. 重新启动服务:
docker-compose up -d
  1. 等待Kibana启动完成后,访问http://localhost:5601,用用户名elastic、密码test登录,再尝试添加Fleet Server即可。

内容的提问来源于stack exchange,提问作者user24155091

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 19:47:44