Fleet Server 可扩展性
编辑Fleet Server 可扩展性
编辑此页面总结了扩展 Elastic Agent 部署所需的资源和 Fleet Server 配置要求。要扩展 Fleet Server,您需要修改部署中的设置和 Fleet Server 代理策略。
有关大规模使用 Fleet Server 的具体建议,请参阅扩展建议部分。
首先修改 Elastic Cloud 中的 Fleet 部署设置
- 登录 Elastic Cloud 并转到您的部署。
- 在部署 > 部署名称下,单击编辑。
-
在集成服务器下
- 修改服务器可用的计算资源以适应更大规模的 Elastic Agent。
- 修改可用区以满足容错要求。
有关推荐设置,请参阅扩展建议 (Elastic Cloud)。
接下来,通过编辑代理策略来修改 Fleet Server 配置
- 在 Fleet 中,打开代理策略选项卡。单击Elastic Cloud 代理策略的名称以编辑策略。
-
打开 Fleet Server 集成旁边的操作菜单,然后单击编辑集成。
-
在 Fleet Server 下,修改最大连接数和其他高级设置,如扩展建议 (Elastic Cloud)中所述。
高级 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