Elastic Agent 策略
编辑Elastic Agent 策略
编辑策略是输入和设置的集合,用于定义 Elastic Agent 要收集的数据。每个 Elastic Agent 只能注册到一个策略。
在 Elastic Agent 策略中,有一组单独的集成策略。这些集成策略定义了每种输入类型的设置。集成中的可用设置取决于所使用的集成版本。
Fleet 以两种方式使用 Elastic Agent 策略
- 策略以纯文本 YAML 文件存储,并发送到每个 Elastic Agent 以配置其输入。
- 策略在 Fleet UI 中提供了 Elastic Agent 配置的可视化表示。
策略的优势
编辑Elastic Agent 策略具有许多优势,可让您:
- 应用针对特定主机组的输入逻辑分组。
- 通过在推出更改之前快速测试更改来保持大规模部署的灵活性。
- 提供一种分组和管理更大范围基础设施的方法。
例如,按操作系统类型创建策略可能是有意义的:Windows、macOS 和 Linux 主机。或者,按主机的使用功能分组来组织策略:IT 电子邮件服务器、Linux 服务器、用户工作站等。或者,按用户类别:工程部门、营销部门等。
策略类型
编辑在大多数用例中,Fleet 提供对 Elastic Agent 的完整集中管理。但是,某些用例(如在 Kubernetes 中运行或在 Elastic Cloud 上使用我们托管的 Elasticsearch 服务)需要 Fleet 之外的 Elastic Agent 基础设施管理。考虑到这一点,有两种类型的 Elastic Agent 策略
- 常规策略:默认用例,其中 Fleet 提供对 Elastic Agent 的完全集中管理。用户可以通过添加、删除或升级 Elastic Agent 来管理 Elastic Agent 基础设施。用户还可以通过更新 Elastic Agent 策略来管理 Elastic Agent 配置。
-
托管策略:一种策略,其中其他内容提供对 Elastic Agent 的集中管理。例如,在 Kubernetes 中,添加、删除和升级 Elastic Agent 应直接在 Kubernetes 中配置。允许 Fleet 用户管理 Elastic Agent 将与任何 Kubernetes 配置冲突。
当在 Elastic Cloud 上使用我们托管的 Elasticsearch 服务时,也适用托管策略。Elastic Cloud 负责托管 Elastic Agent 并将其分配给策略。创建和管理 Elastic 部署的平台操作员可以通过 Elastic Cloud 控制台添加、升级和删除 Elastic Agent。
托管策略在 Fleet UI 中显示锁定图标,并且操作受到限制。下表说明了 Fleet 用户可用于不同策略类型的操作
Fleet 用户操作 | 常规策略 | 托管策略 |
---|---|---|
另请参阅 Elastic Agent 策略的推荐缩放选项。
创建策略
编辑要管理您的 Elastic Agent 及其收集的数据,请创建一个新策略
在 Fleet 中,打开代理策略标签,然后单击创建代理策略。
- 命名您的策略。所有其他字段都是可选的,并且可以稍后修改。默认情况下,每个策略都启用系统集成,该集成收集系统信息和指标。
-
创建代理策略
- 要使用 UI,请单击创建代理策略。
- 要使用 Fleet API,请单击预览 API 请求并运行该请求。
另请参阅不使用 UI 创建代理策略。
向策略添加集成
编辑Elastic Agent 策略由一个或多个集成组成,这些集成应用于注册到该策略的代理。添加集成时,为该集成创建的策略可以与多个 Elastic Agent 策略共享。这减少了您需要主动管理的集成策略的数量。
要向一个或多个 Elastic Agent 策略添加新集成
- 在 Fleet 中,单击代理策略。单击要添加集成的策略的名称。
- 单击添加 <集成>。
- “集成”页面显示 Elastic Agent 集成以及其他类型,例如 Beats。向下滚动并选择仅限 Elastic Agent以仅查看可与 Elastic Agent 配合使用的集成。
- 您可以选择安装 Elastic Agent(如果您尚未安装),或者选择仅添加集成继续。
- 在添加 <集成>页面上的步骤 1 中,您可以选择特定于集成的配置设置。
-
在页面上的步骤 2 中,您有两个选项
- 如果您想为 Elastic Agent 创建新策略,请在新主机选项卡上指定新代理策略的名称,并选择是否收集系统日志和指标。收集日志和指标会将系统集成添加到新代理策略。
- 如果您已经创建了 Elastic Agent 策略,请在现有主机选项卡上,使用下拉菜单指定要将集成添加到其中的一个或多个代理策略。
- 单击保存并继续以确认您的设置。
此操作会安装集成并将其添加到您指定的 Elastic Agent 策略中。Fleet 将新的集成策略分发给注册到该代理策略的所有 Elastic Agent。
您可以随时更新已安装集成的设置
- 在 Kibana 中,转到集成页面。
- 在集成策略选项卡上,对于要更新的集成,打开操作菜单,然后选择编辑集成。
-
在编辑 <集成>页面上,您可以更新任何配置设置,还可以更新将集成添加到的 Elastic Agent 策略列表。
如果您清除代理策略字段,则该集成将从已添加到的任何 Elastic Agent 策略中删除。
要识别任何已“孤立”的集成(即,未与任何 Elastic Agent 策略关联),请检查集成策略选项卡上的代理策略列。任何已安装但未与 Elastic Agent 策略关联的集成都标记为
无代理策略
。
应用策略
编辑您可以将策略应用于一个或多个 Elastic Agent。要应用策略
- 在 Fleet 中,单击代理。
-
选择要分配给新策略的 Elastic Agent。
选择一个或多个 Elastic Agent 后,单击“操作”菜单下的分配给新策略。
无法选择多个代理?确认您的订阅级别支持在 Fleet 中选择性地重新分配代理策略。有关详细信息,请参阅Elastic Stack 订阅。
- 从下拉列表中选择 Elastic Agent 策略,然后单击分配策略。
Elastic Agent 状态指示器和 Elastic Agent 日志表明正在应用策略。策略更改可能需要几分钟才能完成,然后 Elastic Agent 状态才会更新为“运行状况良好”。
编辑或删除集成策略
编辑可以轻松地重新配置或删除集成。要编辑或删除集成策略
- 在 Fleet 中,单击代理策略。单击要编辑或删除的策略的名称。
-
搜索或滚动到特定的集成。打开操作菜单,然后选择编辑集成或删除集成。
编辑或删除集成是永久性的,无法撤消。如果您犯了错误,可以随时重新配置或重新添加集成。
任何已保存的更改都会立即分发并应用于注册到给定策略的所有 Elastic Agent。
要更新集成策略中的任何机密值,请参阅配置策略中的机密值。
复制策略
编辑策略定义存储在纯文本 YAML 文件中,可以下载或复制到另一个策略
- 在 Fleet 中,单击代理策略。单击要复制或下载的策略的名称。
-
要复制策略,请单击操作 → 复制策略。命名新策略,并提供描述。确切的策略定义将复制到新策略。
或者,通过单击操作 → 查看策略来查看和下载策略定义。
编辑或删除策略
编辑您可以根据需要更改高级配置,例如策略的名称、描述、默认命名空间和代理监控状态
- 在 Fleet 中,单击代理策略。单击要编辑或删除的策略的名称。
-
单击设置选项卡,进行更改,然后单击保存更改
或者,单击删除策略以删除该策略。不会删除现有数据。分配给策略的任何代理必须取消注册或分配给其他策略,然后才能删除策略。
添加自定义字段
编辑使用此设置可将自定义字段和值集添加到从注册到 Elastic Agent 策略的 Elastic Agent 收集的所有数据。当您想要识别或可视化来自一组代理的所有数据,并可能在下游操作数据时,自定义字段非常有用。
要添加自定义字段
- 在 Fleet 中,单击代理策略。选择要编辑的策略的名称。
- 单击设置选项卡,然后滚动到自定义字段。
- 单击添加字段。
-
指定字段名称和值。
- 单击添加另一个字段以添加其他字段。完成后,单击保存更改。
要编辑自定义字段
- 在 Fleet 中,单击代理策略。选择要编辑的策略的名称。
- 点击Settings标签,滚动到自定义字段。将显示任何已配置的自定义字段。
- 点击编辑图标以更新字段,或点击删除图标以删除字段。
请注意,对于一小部分输入,不支持添加自定义标签
-
apm
-
cloudbeat
和所有cloudbeat/*
输入 -
cloud-defend
-
fleet-server
-
pf-elastic-collector
、pf-elastic-symbolizer
和pf-host-agent
配置代理监控
编辑使用这些设置从 Elastic Agent 收集监控日志和指标。所有监控数据都将写入指定的默认命名空间。
- 在 Fleet 中,单击代理策略。选择要编辑的策略的名称。
- 点击Settings标签,滚动到代理监控。
-
选择从使用该策略的 Elastic Agent 收集代理日志、代理指标还是两者都收集。
启用此设置后,会自动创建一个 Elastic Agent 集成。
- 展开高级监控选项部分以访问高级设置。
- 保存您的更改,以使更新后的监控设置生效。
高级代理监控设置
编辑HTTP 监控端点
启用此设置会公开一个 /liveness
API 端点,您可以使用该端点根据以下 HTTP 代码监控 Elastic Agent 的运行状况
-
200
:Elastic Agent 运行状况良好。只要 Elastic Agent 响应正常并且可以处理配置更改,该端点就会返回200
OK 状态。 -
500
:组件或单元处于失败状态。 -
503
:代理协调器无响应。
您可以将 failon
参数传递给 /liveness
端点,以确定哪个组件状态会导致 500
状态。例如,如果组件处于降级状态,则 curl 'localhost:6792/liveness?failon=degraded'
将返回 500
。
failon
的可能值如下
-
degraded
:如果组件处于降级状态或失败状态,或者如果代理协调器无响应,则返回错误。 -
failed
:如果单元处于失败状态,或者如果代理协调器无响应,则返回错误。 -
heartbeat
:仅当代理协调器无响应时才返回错误。
如果未提供 failon
参数,则默认的 failon
行为为 heartbeat
。
HTTP 监控端点也可以与 Kubernetes 结合使用,例如,重新启动容器。
启用此设置后,您需要提供可以访问该端点的主机 URL 和端口。建议使用默认的 localhost
。
启用 HTTP 监控端点后,您还可以选择在 /debug/pprof
启用性能分析。这将控制 Elastic Agent 是否将 /debug/pprof/
端点与监控端点一起公开。
默认情况下,/debug/pprof/
中提供的堆配置文件包含在Elastic Agent 诊断中。如果包含 --cpu-profile
选项,则也会包含 CPU 配置文件。有关 /debug/pprof/
公开的配置文件的完整详细信息,请参阅 pprof 包文档。
默认情况下,在 /debug/pprof
处禁用性能分析。这些端点生成的数据对于调试非常有用,但存在安全风险。如果可以通过网络访问监控端点,建议禁用此选项。
诊断速率限制
您可以为来自 Fleet 的诊断请求的操作处理程序设置速率限制。该设置仅影响 Fleet 管理的 Elastic Agent。默认情况下,请求限制为间隔 1m
和突发值 1
。此设置不影响通过 CLI 收集的诊断信息。
诊断文件上传
此设置配置用于处理来自 Fleet 的诊断请求的文件上传客户端的重试。该设置仅影响 Fleet 管理的 Elastic Agent。默认情况下,最多允许 10
次重试,初始持续时间为 1s
,回退持续时间为 1m
。客户端可能会使用指数退避来重试失败的请求。
更改策略的输出
编辑假设您的Elastic Stack 订阅级别支持按策略输出,您可以更改策略的输出,以将数据发送到其他输出。
- 在 Fleet 中,点击Settings并查看可用输出的列表。如有必要,点击Add output以添加具有所需设置的新输出。有关详细信息,请参阅输出设置。
- 点击Agent policies。点击要更改的策略的名称,然后点击Settings。
-
设置Output for integrations和(可选)Output for agent monitoring以使用不同的输出,例如,Logstash。您可能需要向下滚动才能看到这些选项。
无法选择其他输出?请确认您的订阅级别是否支持 Fleet 中的按策略输出。
- 保存更改。
任何注册到代理策略中的 Elastic Agent 都将开始将数据发送到指定的输出。
将 Fleet Server 添加到策略
编辑如果希望将多个代理连接到特定的本地 Fleet Server,可以将该 Fleet Server 添加到策略。
保存策略后,分配给该策略的所有代理都将配置为使用新的 Fleet Server 作为控制器。
确保分配给此策略的 Elastic Agent 都可以连接到您添加的 Fleet Server。如果无法连接,Elastic Agent 将无法与 Fleet Server 签入并接收策略更新,但代理仍会将数据转发到集群。
在策略中配置机密值
编辑创建集成策略时,您通常需要提供敏感信息,例如 API 密钥或密码。为了帮助确保数据不会被不当访问,集成策略中使用的任何机密值都将与其他策略详细信息分开存储。
此外,在 Fleet 中保存机密值后,该值在 Fleet UI 和代理策略定义中都会隐藏。当您查看代理策略(Actions → View policy)时,将显示环境变量,而不是任何机密值,例如 ${SECRET_0}
。
为了使机密值在 Fleet 中秘密存储,所有配置的 Fleet Server 的版本都必须为 8.10.0 或更高版本。
尽管存储在 Fleet 中的机密值是隐藏的,但它们可以更新。要更新集成策略中的机密值
- 在 Fleet 中,单击代理策略。选择要编辑的策略的名称。
- 搜索或滚动到特定集成。打开Actions菜单,然后选择Edit integration。任何机密信息都标记为已隐藏。
-
点击该链接以使用新值替换机密值。
- 点击Save integration。策略中将覆盖原始机密值。
设置最大 CPU 使用率
编辑您可以限制 Elastic Agent 消耗的 CPU 量。此参数限制每个 Go 进程中可以同时执行 Go 代码的操作系统线程数。您可以指定不小于 0
的整数值,它是代表“所有可用 CPU”的默认值。
此限制独立应用于代理和它监督的每个基础 Go 进程。例如,如果 Elastic Agent 配置为监督两个 Beats,并且在策略中设置了 CPU 使用率限制为 2
,则 CPU 总限制为六,其中三个进程(一个 Elastic Agent 和两个 Beats)中的每个进程都可以在两个 CPU 上独立执行。
此设置类似于 Beats max_procs
设置。有关详细信息,请参阅 Go 运行时文档中的 GOMAXPROCS 函数。
- 在 Fleet 中,单击代理策略。选择要编辑的策略的名称。
- 点击Settings标签,滚动到Advanced settings。
- 根据需要设置Limit CPU usage。例如,要将 Elastic Agent 监督的 Go 进程限制为每个进程两个操作系统线程,请将此值设置为
2
。
设置 Elastic Agent 日志级别
编辑您可以设置使用选定策略的 Elastic Agent 将发送到已配置输出的最低日志级别。默认设置为 info
。
- 在 Fleet 中,单击代理策略。选择要编辑的策略的名称。
- 点击Settings标签,滚动到Advanced settings。
- 设置Agent logging level。
- 保存更改。
您还可以设置单个代理的日志级别
- 在 Fleet 中,点击Agents。在Host标题下,选择要编辑的 Elastic Agent。
- 在Logs选项卡上,设置Agent logging level并应用您的更改。或者,您可以选择重置代理以使用代理策略中指定的日志级别。
更改 Elastic Agent 二进制文件下载位置
编辑Elastic Agent 必须能够访问 Elastic Artifact Registry,以便在升级期间下载二进制文件。默认情况下,Elastic Agent 从 https://artifacts.elastic.co/downloads/
的制品库下载文件。
对于无法访问互联网的 Elastic Agent,您可以指定代理二进制文件下载设置,然后配置代理从备用位置下载其制品。有关在受限环境中运行 Elastic Agent 的更多信息,请参阅气隙环境。
要更改二进制文件下载位置
- 在 Fleet 中,单击代理策略。选择要编辑的策略的名称。
- 单击设置选项卡,然后滚动到代理二进制文件下载。
- 指定您托管制品库的地址,或选择默认值以使用 Fleet 代理二进制文件下载设置中指定的位置。
设置 Elastic Agent 主机名格式
编辑主机名格式设置控制通过 host.name 键在 Elastic Agent 生成的事件中提供的有关当前主机的信息的格式。
- 在 Fleet 中,单击代理策略。选择要编辑的策略的名称。
- 单击设置选项卡,然后滚动到主机名格式。
-
选择以下选项之一
-
主机名:有关当前主机的信息采用非完全限定格式(
somehost
,而不是somehost.example.com
)。这是默认的报告格式。 -
完全限定域名 (FQDN):有关当前主机的信息采用 FQDN 格式(
somehost.example.com
,而不是somehost
)。这有助于您区分具有相似名称的不同域上的主机。完全限定的主机名允许在 Kibana 中查看时更容易识别每个主机,例如。
-
主机名:有关当前主机的信息采用非完全限定格式(
- 保存更改。
APM 目前不支持 FQDN 报告。
要使 FQDN 报告按预期工作,当前主机的主机名必须满足以下任一条件:
- 在 DNS 中定义了 CNAME 条目。
- 其对应的 IP 地址之一成功响应反向 DNS 查找。
如果未满足任何一个先决条件,则 host.name
将继续以非完全限定格式报告当前主机的主机名。
设置非活动代理的取消注册超时
编辑您可以配置一个时间长度,在此时间之后,任何非活动的 Elastic Agent 都会自动取消注册,并且其 API 密钥将失效。当您在 Docker 或 Kubernetes 等临时环境中运行代理,并且希望防止非活动的代理占用未使用的 API 密钥时,此设置很有用。
要为非活动代理配置取消注册超时
- 在 Fleet 中,单击代理策略。选择要编辑的策略的名称。
- 单击设置选项卡,然后滚动到非活动代理取消注册超时。
- 以秒为单位指定取消注册超时时间。
- 保存更改。
设置取消注册超时后,任何非活动的代理都会在指定的超时时间后自动取消注册。取消注册任务每十分钟运行一次,并且一次最多取消注册一千个代理。
策略扩展建议
编辑Fleet 的单个实例最多支持 500 个 Elastic Agent 策略。如果配置了更多策略,则 UI 性能可能会受到影响。