Fleet Server 可扩展性

编辑

此页面总结了扩展 Elastic Agent 部署所需的资源和 Fleet Server 配置要求。要扩展 Fleet Server,您需要修改部署中的设置和 Fleet Server 代理策略。

有关大规模使用 Fleet Server 的具体建议,请参阅扩展建议部分。

首先修改 Elastic Cloud 中的 Fleet 部署设置

  1. 登录 Elastic Cloud 并转到您的部署。
  2. 部署 > 部署名称下,单击编辑
  3. 在集成服务器下

    • 修改服务器可用的计算资源以适应更大规模的 Elastic Agent。
    • 修改可用区以满足容错要求。

    有关推荐设置,请参阅扩展建议 (Elastic Cloud)

    Fleet Server hosted agent

接下来,通过编辑代理策略来修改 Fleet Server 配置

  1. 在 Fleet 中,打开代理策略选项卡。单击Elastic Cloud 代理策略的名称以编辑策略。
  2. 打开 Fleet Server 集成旁边的操作菜单,然后单击编辑集成

    Elastic Cloud policy
  3. 在 Fleet Server 下,修改最大连接数和其他高级设置,如扩展建议 (Elastic Cloud)中所述。

    Fleet Server configuration

高级 Fleet Server 选项

编辑

以下高级设置可用于微调您的 Fleet Server 部署。

缓存
计数器数量
哈希表的大小。最佳实践是将其设置为最大连接数的 10 倍。
最大成本
缓存的总大小。
server.timeouts
checkin_timestamp
Fleet Server 更新每个代理的“上次活动”字段的频率。默认为30s。在大规模部署中,增加此设置可以提高性能。如果此设置高于2m,则大多数代理将在 Fleet UI 中显示为“脱机”。对于典型的设置,建议您将此值设置为小于2m
checkin_long_poll
Fleet Server 在超时之前允许代理进行长时间轮询请求的时间长度。默认为5m。在大规模部署中,增加此设置可以提高性能。
server.limits
policy_throttle
向代理推出新策略的频率。

已弃用:改用action_limit设置。

action_limit.interval
Fleet Server 向代理调度挂起操作的速度。
action_limit.burst
在回退到interval定义的速率限制之前,可以调度的一批操作。
checkin_limit.max
可以同时调用 checkin API 的代理的最大数量。
checkin_limit.interval
代理可以向 Fleet Server 检查的频率。
checkin_limit.burst
在回退到interval定义的速率之前允许的一批检查。
checkin_limit.max_body_byte_size
checkin API 请求正文的最大大小(以字节为单位)。
artifact_limit.max
可以同时调用 artifact API 的代理的最大数量。它允许用户避免 artifact API 调用过载 Fleet Server。
artifact_limit.interval
工件推出的频率。默认值为100ms,允许每秒推出 10 个工件。
artifact_limit.burst
允许突发的事务数量,控制出站缓冲区的超额认购。
artifact_limit.max_body_byte_size
artficact API 请求正文的最大大小(以字节为单位)。
ack_limit.max
可以同时调用 ack API 的代理的最大数量。它允许用户避免 Ack API 调用过载 Fleet Server。
ack_limit.interval
发送确认 (ACK) 的频率。默认值为10ms,允许每秒发送 100 个 ACK。
ack_limit.burst
容纳的 ACK 突发数量(默认为 20),然后回退到interval中定义的速率。
ack_limit.max_body_byte_size
ack API 请求正文的最大大小(以字节为单位)。
enroll_limit.max
可以同时调用 enroll API 的代理的最大数量。此设置允许用户避免注册 API 调用过载 Fleet Server。
enroll_limit.interval
处理注册请求的间隔。注册既需要 CPU 也需要 RAM,因此为了系统的整体健康,需要限制注册请求的数量。默认值为100ms,允许每秒注册 10 个。
enroll_limit.burst
在回退到interval定义的速率之前接受的注册突发数量。
enroll_limit.max_body_byte_size
enroll API 请求正文的最大大小(以字节为单位)。
status_limit.max
可以同时调用 status API 的代理的最大数量。此设置允许用户避免 status API 调用过载 Fleet Server。
status_limit.interval
代理可以向 Fleet Server 提交状态请求的频率。
status_limit.burst
在回退到 interval 定义的速率之前可以容纳的状态请求突发数量。
status_limit.max_body_byte_size
status API 请求正文的最大大小(以字节为单位)。
upload_start_limit.max
可以同时调用 uploadStart API 的代理的最大数量。此设置允许用户避免 uploadStart API 调用过载 Fleet Server。
upload_start_limit.interval
代理可以向 Fleet Server 提交文件开始上传请求的频率。
upload_start_limit.burst
在回退到 interval 定义的速率之前可以容纳的文件开始上传请求突发数量。
upload_start_limit.max_body_byte_size
uploadStart API 请求正文的最大大小(以字节为单位)。
upload_end_limit.max
可以同时调用 uploadEnd API 的代理的最大数量。此设置允许用户避免 uploadEnd API 调用过载 Fleet Server。
upload_end_limit.interval
代理可以向 Fleet Server 提交文件结束上传请求的频率。
upload_end_limit.burst
在回退到 interval 定义的速率之前可以容纳的文件结束上传请求突发数量。
upload_end_limit.max_body_byte_size
uploadEnd API 请求正文的最大大小(以字节为单位)。
upload_chunk_limit.max
可以同时调用 uploadChunk API 的代理的最大数量。此设置允许用户避免 uploadChunk API 调用过载 Fleet Server。
upload_chunk_limit.interval
代理可以向 Fleet Server 提交文件块上传请求的频率。
upload_chunk_limit.burst
在回退到 interval 定义的速率之前可以容纳的文件块上传请求突发数量。
upload_chunk_limit.max_body_byte_size
uploadChunk API 请求正文的最大大小(以字节为单位)。

扩展建议 (Elastic Cloud)

编辑

下表根据部署所需的代理数量,提供了最低资源要求和扩展指南。需要注意的是,这些计算资源可以分布在多个可用区(例如:32GB RAM 的要求可以用两个不同区域的 16GB RAM 来满足)。

按代理数量划分的资源需求
编辑

代理数量

Fleet Server 内存

Fleet Server vCPU

Elasticsearch 热层

2,000

2GB

最多 8 个 vCPU

32GB RAM | 8 个 vCPU

5,000

4GB

最多 8 个 vCPU

32GB RAM | 8 个 vCPU

10,000

8GB

最多 8 个 vCPU

128GB RAM | 32 个 vCPU

15,000

8GB

最多 8 个 vCPU

256GB RAM | 64 个 vCPU

25,000

8GB

最多 8 个 vCPU

256GB RAM | 64 个 vCPU

50,000

8GB

最多 8 个 vCPU

384GB RAM | 96 个 vCPU

75,000

8GB

最多 8 个 vCPU

384GB RAM | 96 个 vCPU

100,000

16GB

16 个 vCPU

512GB RAM | 128 个 vCPU

定期执行一系列规模性能测试,以验证上述要求以及 Fleet 管理 Elastic Agent 广告规模的能力。这些测试会经过一系列验收标准。标准模拟典型的平台运营商工作流程。测试用例执行代理安装、版本升级、策略修改以及添加/删除集成、标签和策略。当 Elastic Agent 在任何这些操作后达到健康状态时,验收标准即通过。

扩展建议

编辑

Elastic Agent 策略

单个 Fleet 实例最多支持 500 个 Elastic Agent 策略。如果配置了更多策略,则 UI 性能可能会受到影响。

Elastic Agents

当您使用 Fleet 管理大量(10k 或更多)Elastic Agent 时,每个代理的检查都会触发一个 Elasticsearch 身份验证请求。为了帮助减少缓存驱逐的可能性,并加快 Elastic Agent 策略更改和操作的传播速度,我们建议在您的 Elasticsearch 配置中将API 密钥缓存大小设置为代理最大数量的 2 倍。

例如,对于 25,000 个正在运行的 Elastic Agent,您可以将缓存值设置为50000

xpack.security.authc.api_key.cache.max_keys: 50000