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