Fleet UI 开发流程编辑

请参阅 Kibana 文档了解 如何设置您的开发环境运行 Elasticsearch 以及 启动 Kibana.

一种常见的开发工作流程是

  1. 克隆 Kibana 仓库

    git clone https://github.com/[YOUR_USERNAME]/kibana.git kibana
    cd kibana
  2. 安装依赖项

    nvm use
    npm install -g yarn
  3. 引导 Kibana

    yarn kbn bootstrap
  4. 在一个 shell 中启动 Elasticsearch

    yarn es snapshot -E xpack.security.authc.api_key.enabled=true
  5. 在另一个 shell 中启动 Kibana

    yarn start --xpack.fleet.enabled=true --no-base-path
  6. https://elastic.ac.cn/downloads/past-releases/#elastic-agent 下载 fleet-server 软件包
  7. 解压缩 fleet server 压缩包并 cd 到该目录
  8. 安装 fleet-server(另请参阅替代解决方案)

    sudo ./elastic-agent install  -f \
    --fleet-server-es=http://elastic:changeme@localhost:9200 \
    --fleet-server-policy=<default policy id>

    在安装任何 fleet server 之前,可以通过 Kibana 中的 Fleet UI 指示获取 默认策略 ID。Fleet Server 将在 +https://users_machine_ip:8220+ 中启动

  9. 在 Fleet UI 右上角更新 Fleet 设置以设置正确的 Fleet Server 主机(上一步中的 IP)。
  10. 之后,用户可以随意注册代理。
  11. Kibana fleet 插件中的任何代码更新都应自动被拾取,并导致服务器重新启动,或在下次页面刷新时提供给浏览器。

Fleet Server 的替代解决方案编辑

您可以选择在容器中本地运行 Fleet Server,而不是下载 fleet server 软件包并将其作为本地进程运行。

在本地机器上的容器中运行 Fleet Server 可能很有用,这样可以释放您的实际“裸机”机器来运行 Elastic Agent 以进行测试。否则,您只能在本地机器上运行一个专用于 Fleet Server 的 Elastic Agent 实例,这会使测试集成和策略变得困难。

以下是 Fleet Server 自述文件 的改编内容

  1. 将以下配置添加到您的 config/kibana.yml

    server.host: 0.0.0.0
  2. 将以下选项附加到用于启动 Elasticsearch 的命令中

    -E http.host=0.0.0.0

    此命令应如下所示

    yarn es snapshot --license trial -E xpack.security.authc.api_key.enabled=true -E path.data=/tmp/es-data -E http.host=0.0.0.0
  3. 运行 Fleet Server Docker 容器。确保在您的本地 Kibana 实例使用 BASE-PATH 时包含 BASE-PATH 值。YOUR-IP 应对应于 Docker 网络用来表示主机 IP 地址的 IP 地址。对于 Windows 和 Mac 机器,这应该是 192.168.65.2。如果您不确定此 IP 应是什么,请运行以下命令以查找它

    docker run -it --rm alpine nslookup host.docker.internal

    要运行 Fleet Server Docker 容器,请执行以下操作

    docker run -e KIBANA_HOST=http://{YOUR-IP}:5601/{BASE-PATH} -e KIBANA_USERNAME=elastic -e KIBANA_PASSWORD=changeme -e ELASTICSEARCH_HOST=http://{YOUR-IP}:9200 -e ELASTICSEARCH_USERNAME=elastic -e ELASTICSEARCH_PASSWORD=changeme -e KIBANA_FLEET_SETUP=1 -e FLEET_SERVER_ENABLE=1 -e FLEET_SERVER_INSECURE_HTTP=1 -p 8220:8220 docker.elastic.co/beats/elastic-agent:{VERSION}

    确保您提供 -p 8220:8220 端口映射,以将 Fleet Server 容器的端口 8220 映射到您本地机器的端口 8220,以便 Fleet 与 Fleet Server 通信。

    对于最新版本,请使用 8.0.0-SNAPSHOT。否则,您可以在 https://www.docker.elastic.co/r/beats/elastic-agent 上查看可用版本。

    Fleet Server 容器运行后,您就可以像在本地机器上运行 +https://127.0.0.1:8220+ 上运行的本地进程一样对待它,在通过 UI 配置 Fleet 时。然后,您可以在本地机器上直接运行 elastic-agent 以进行测试。