Fleet UI 开发流程
请参阅 Kibana 文档,了解如何设置开发环境、运行 Elasticsearch以及启动 Kibana。
一个常见的开发工作流程是
克隆 Kibana 存储库
git clone https://github.com/[YOUR_USERNAME]/kibana.git kibana cd kibana
安装依赖项
nvm use npm install -g yarn
引导 Kibana
yarn kbn bootstrap
在一个 shell 中启动 Elasticsearch
yarn es snapshot -E xpack.security.authc.api_key.enabled=true
在另一个 shell 中启动 Kibana
yarn start --xpack.fleet.enabled=true --no-base-path
从 https://elastic.ac.cn/downloads/past-releases/#elastic-agent 下载 fleet-server 包
解压 fleet server 压缩包并
cd
到该目录安装 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 指示检索
default policy id
。 Fleet Server 将在+https://users_machine_ip:8220+
中启动更新 Fleet UI 右上角的 Fleet 设置,以设置正确的 Fleet Server 主机(上一步中的 IP)。
之后,用户可以注册任意数量的代理
Kibana fleet 插件中的任何代码更新都应自动被获取,并导致服务器重新启动,或在下次页面刷新时提供给浏览器。
您可以选择在容器中本地运行 Fleet Server,而不是下载 fleet server 包并将其作为本地进程运行。
在本地计算机上的容器中运行 Fleet Server 可能很有用,这样可以释放您的实际“裸机”机器以用于测试 Elastic Agent。 否则,您只能在本地计算机上为 Fleet Server 专用一个 Elastic Agent 实例,这会使测试集成和策略变得困难。
以下内容改编自 Fleet Server README
将以下配置添加到您的
config/kibana.yml
server.host: 0.0.0.0
将以下选项附加到用于启动 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
运行 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 时,您应该能够将其视为在
+http://localhost:8220+
上运行的本地进程。 然后,您可以直接在本地计算机上运行elastic-agent
以进行测试。