在代理策略中启用自定义设置编辑

在某些情况下,启用 Fleet 中不可用的自定义设置并覆盖 Elastic Agent 的默认行为可能很有用。例如,限制代理消耗的 CPU 量、配置代理下载超时以及覆盖用于监控的默认端口。

请谨慎使用这些自定义设置,因为它们仅适用于特殊情况。我们不会测试传递给 Elastic Agent 组件的所有可能的设置组合,因此某些自定义配置可能会导致故障。

限制 CPU 使用率编辑

如果需要限制 CPU 消耗量,可以使用 agent.limits.go_max_procs 配置选项。此参数限制了每个 Go 进程中可以同时执行 Go 代码的操作系统线程数。agent.limits.go_max_procs 选项接受一个不小于 0 的整数值,该值是表示“所有可用 CPU”的默认值。

agent.limits.go_max_procs 限制独立应用于代理及其监管的每个底层 Go 进程。例如,如果在策略中将 Elastic Agent 配置为使用 agent.limits.go_max_procs: 2 监管两个 Beats,则总 CPU 限制为 6,其中三个进程(一个 Elastic Agent 和两个 Beats)中的每一个都可以在两个 CPU 上独立执行。

此设置类似于 Beats max_procs 设置。有关更多详细信息,请参阅 Go 运行时文档中的 GOMAXPROCS 函数。

要启用 agent.limits.go_max_procs,请从 Kibana 开发工具控制台运行 Fleet API 请求以覆盖当前的 Elastic Agent 策略并添加 go_max_procs 参数。例如,要将 Elastic Agent 监管的 Go 进程限制为每个操作系统线程两个,请运行

PUT kbn:/api/fleet/agent_policies/<policy-id>
{
  "name": "<policy-name>",
  "namespace": "default",
  "overrides": {
    "agent": {
      "limits": {
        "go_max_procs": 2
      }
    }
  }
}
配置代理下载超时编辑

您可以配置 Elastic Agent 等待升级包下载完成的时间。这在网络连接缓慢或断断续续的情况下很有用。

PUT kbn:/api/fleet/agent_policies/<policy-id>
{
  "name": "Test policy",
  "namespace": "default",
  "overrides": {
    "agent": {
      "download": {
        "timeout": "120s"
      }
    }
  }
}
覆盖默认监控端口编辑

您可以覆盖 Elastic Agent 用于发送监控数据的默认端口。如果您在部署代理的机器上运行了应用程序,并且该应用程序正在使用相同的端口,则能够调整此设置非常有用。

PUT kbn:/api/fleet/agent_policies/<policy-id>
{
  "name": "Agent policy 1",
  "namespace": "default",
  "overrides": {
    "agent.monitoring.http.port": 6792
  }
}