Fleet 服务器可扩展性编辑

本页概述了扩展 Elastic Agent 部署所需的资源和 Fleet 服务器配置要求。 若要扩展 Fleet 服务器,您需要修改部署和 Fleet 服务器代理策略中的设置。

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

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

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

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

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

    Fleet Server hosted agent

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

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

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

    Fleet Server configuration

高级 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