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 部署。

缓存
num_counters
哈希表的大小。最佳实践是将其设置为最大连接数的 10 倍。
max_cost
缓存的总大小。
server.timeouts
checkin_timestamp
Fleet Server 更新每个代理的“上次活动”字段的频率。默认为 30 秒。在大规模部署中,增加此设置可能会提高性能。如果此设置高于 2 分钟,则大多数代理将在 Fleet UI 中显示为“离线”。对于典型的设置,建议将此值设置为小于 2 分钟
checkin_long_poll
Fleet Server 允许来自代理的长轮询请求超时的时长。默认为 5 分钟。在大规模部署中,增加此设置可能会提高性能。
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
推出 artifact 的频率。默认的 100 毫秒允许每秒推出 10 个 artifact。
artifact_limit.burst
突发允许的事务数,控制出站缓冲区上的超额订阅。
artifact_limit.max_body_byte_size
artifact API 请求正文的最大字节大小。
ack_limit.max
可以同时调用 ack API 的最大代理数。它允许用户避免因 Ack API 调用而导致 Fleet Server 过载。
ack_limit.interval
发送确认 (ACK) 的频率。默认值 10 毫秒允许每秒发送 100 个 ACK。
ack_limit.burst
在回退到 interval 中定义的速率之前,要容纳的 ACK 突发数(默认为 20)。
ack_limit.max_body_byte_size
ack API 请求正文的最大字节大小。
enroll_limit.max
可以同时调用 enroll API 的最大代理数。此设置允许用户避免因 Enrollment API 调用而导致 Fleet Server 过载。
enroll_limit.interval
处理注册请求的间隔。注册既消耗 CPU 又消耗 RAM,因此需要限制注册请求的数量以保证整体系统健康。默认值 100 毫秒允许每秒注册 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 的要求可以用 2 个不同区域中的 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 Agent

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

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

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