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 tar 包并 cd 到该目录
  8. 安装 fleet-server(另请参见替代方案)

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

    默认策略 ID 可在安装任何 fleet server 之前通过 Kibana 中的 Fleet UI 指示获取。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 README 调整的内容

  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 值,请确保包含它。YOUR-IP 应对应于 Docker 网络用于表示主机的 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/elastic-agent/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 容器运行后,您应该能够在通过 UI 配置 Fleet 时将其视为在 +https://127.0.0.1:8220+ 上运行的本地进程。然后,您可以直接在本地机器上运行 elastic-agent 进行测试。