Fleet 服务器可扩展性
编辑Fleet 服务器可扩展性编辑
本页概述了扩展 Elastic Agent 部署所需的资源和 Fleet 服务器配置要求。 若要扩展 Fleet 服务器,您需要修改部署和 Fleet 服务器代理策略中的设置。
有关大规模使用 Fleet 服务器的具体建议,请参阅扩展建议部分。
首先修改 Elastic Cloud 中的 Fleet 部署设置
- 登录 Elastic Cloud 并转到您的部署。
- 在部署 > 部署名称下,单击编辑。
-
在 Integrations 服务器下
- 修改服务器可用的计算资源,以适应更大规模的 Elastic Agent
- 修改可用区以满足容错要求
有关建议的设置,请参阅扩展建议(Elastic Cloud)。
接下来,通过编辑代理策略来修改 Fleet 服务器配置
- 在 Fleet 中,打开代理策略选项卡。 单击Elastic Cloud 代理策略的名称以编辑策略。
-
打开 Fleet Server 集成旁边的操作菜单,然后单击编辑集成。
-
在 Fleet Server 下,修改最大连接数和其他高级设置,如扩展建议(Elastic Cloud)中所述。
高级 Fleet 服务器选项编辑
以下高级设置可用于微调 Fleet 服务器部署。
-
缓存
-
-
num_counters
- 哈希表的大小。 最佳实践是将其设置为最大连接数的 10 倍。
-
max_cost
- 缓存的总大小。
-
-
server.timeouts
-
-
checkin_timestamp
- Fleet 服务器更新每个代理的“上次活动”字段的频率。 默认为
30 秒
。 在大规模部署中,增加此设置可能会提高性能。 如果此设置高于2 分钟
,则大多数代理将在 Fleet UI 中显示为“离线”。 对于典型设置,建议您将此值设置为小于2 分钟
。 -
checkin_long_poll
- Fleet 服务器在超时之前允许代理发出长轮询请求的时间。 默认为
5 分钟
。 在大规模部署中,增加此设置可能会提高性能。
-
-
server.limits
-
-
policy_throttle
- 新策略向代理推出的频率。
-
已弃用:请改用action_limit
设置。
-
action_limit.interval
- Fleet 服务器将挂起的操作分派给代理的速度。
-
action_limit.burst
- 在回退到
interval
定义的速率限制之前可以分派的突发操作。 -
checkin_limit.max
- 可以同时调用签入 API 的最大代理数量。
-
checkin_limit.interval
- 代理签入 Fleet 服务器的速度。
-
checkin_limit.burst
- 在回退到
interval
定义的速率之前允许的签入突发次数。 -
checkin_limit.max_body_byte_size
- 签入 API 请求正文的最大大小(以字节为单位)。
-
artifact_limit.max
- 可以同时调用工件 API 的最大代理数量。 它允许用户避免工件 API 调用使 Fleet 服务器过载。
-
artifact_limit.interval
- 工件推出的频率。 默认值
100 毫秒
允许每秒推出 10 个工件。 -
artifact_limit.burst
- 允许突发的交易数量,控制出站缓冲区的超额订阅。
-
artifact_limit.max_body_byte_size
- 工件 API 请求正文的最大大小(以字节为单位)。
-
ack_limit.max
- 可以同时调用 ack API 的最大代理数量。 它允许用户避免 Ack API 调用使 Fleet 服务器过载。
-
ack_limit.interval
- 发送确认 (ACK) 的频率。 默认值
10 毫秒
允许每秒发送 100 个 ACK。 -
ack_limit.burst
- 在回退到
interval
中定义的速率之前要容纳的 ACK 突发次数(默认为 20 次)。 -
ack_limit.max_body_byte_size
- ack API 请求正文的最大大小(以字节为单位)。
-
enroll_limit.max
- 可以同时调用注册 API 的最大代理数量。 此设置允许用户避免注册 API 调用使 Fleet 服务器过载。
-
enroll_limit.interval
- 处理注册请求之间的间隔。 注册是 CPU 和 RAM 密集型操作,因此需要限制注册请求的数量以确保系统整体健康。 默认值
100 毫秒
允许每秒 10 次注册。 -
enroll_limit.burst
- 在回退到
interval
定义的速率之前要接受的注册突发次数。 -
enroll_limit.max_body_byte_size
- 注册 API 请求正文的最大大小(以字节为单位)。
-
status_limit.max
- 可以同时调用状态 API 的最大代理数量。 此设置允许用户避免状态 API 调用使 Fleet 服务器过载。
-
status_limit.interval
- 代理向 Fleet 服务器提交状态请求的频率。
-
status_limit.burst
- 在回退到间隔定义的速率之前要容纳的状态请求突发次数。
-
status_limit.max_body_byte_size
- 状态 API 请求正文的最大大小(以字节为单位)。
-
upload_start_limit.max
- 可以同时调用 uploadStart API 的最大代理数量。 此设置允许用户避免 uploadStart API 调用使 Fleet 服务器过载。
-
upload_start_limit.interval
- 代理向 Fleet 服务器提交文件开始上传请求的频率。
-
upload_start_limit.burst
- 在回退到间隔定义的速率之前要容纳的文件开始上传请求突发次数。
-
upload_start_limit.max_body_byte_size
- uploadStart API 请求正文的最大大小(以字节为单位)。
-
upload_end_limit.max
- 可以同时调用 uploadEnd API 的最大代理数量。 此设置允许用户避免 uploadEnd API 调用使 Fleet 服务器过载。
-
upload_end_limit.interval
- 代理向 Fleet 服务器提交文件结束上传请求的频率。
-
upload_end_limit.burst
- 在回退到间隔定义的速率之前要容纳的文件结束上传请求突发次数。
-
upload_end_limit.max_body_byte_size
- uploadEnd API 请求正文的最大大小(以字节为单位)。
-
upload_chunk_limit.max
- 可以同时调用 uploadChunk API 的最大代理数量。 此设置允许用户避免 uploadChunk API 调用使 Fleet 服务器过载。
-
upload_chunk_limit.interval
- 代理向 Fleet 服务器提交文件块上传请求的频率。
-
upload_chunk_limit.burst
- 在回退到间隔定义的速率之前要容纳的文件块上传请求突发次数。
-
upload_chunk_limit.max_body_byte_size
- uploadChunk API 请求正文的最大大小(以字节为单位)。
扩展建议(Elastic Cloud)编辑
下表根据部署所需的代理数量提供了最低资源要求和扩展指南。 应该注意的是,这些计算资源可以分布在多个可用区(例如:32GB RAM 的要求可以通过在 2 个不同区域中使用 16GB RAM 来满足)。
按代理数量划分的资源要求编辑
代理数量 |
Fleet 服务器内存 |
Fleet 服务器 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 管理大量(10,000 个或更多)Elastic Agent 时,每个代理的签入都会触发 Elasticsearch 身份验证请求。 为了帮助降低缓存逐出的可能性并加快 Elastic Agent 策略更改和操作的传播速度,我们建议将 Elasticsearch 配置中的API 密钥缓存大小设置为最大代理数量的 2 倍。
例如,如果有 25,000 个正在运行的 Elastic Agent,您可以将缓存值设置为50000
xpack.security.authc.api_key.cache.max_keys: 50000