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 中,应直接在 Kubernetes 中配置添加、删除和升级 Elastic Agent。允许 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 中,打开Agent 策略选项卡,然后点击创建 Agent 策略。
- 命名您的策略。所有其他字段都是可选的,以后可以修改。默认情况下,每个策略都启用系统集成,该集成收集系统信息和指标。
-
创建 Agent 策略
- 要使用 UI,请点击创建 Agent 策略。
- 要使用 Fleet API,请点击预览 API 请求并运行该请求。
另请参阅无需使用 UI 创建 Agent 策略。
向策略添加集成
编辑Elastic Agent 策略由一个或多个应用于注册到该策略的 Agent 的集成组成。要向一个或多个 Elastic Agent 策略添加新的集成
- 在 Fleet 中,点击Agent 策略。点击您要向其中添加集成的策略的名称。
- 点击添加 <集成>。
- 集成页面显示 Elastic Agent 集成以及其他类型,例如 Beats。向下滚动并选择仅限 Elastic Agent以仅查看与 Elastic Agent 兼容的集成。
- 如果您尚未安装 Elastic Agent,可以选择安装它,或者选择仅添加集成以继续。
- 在添加 <集成>页面上的步骤 1 中,您可以选择特定于集成的配置设置。
-
在页面上的步骤 2 中,您有两个选项
- 如果您想为您的 Elastic Agent 创建一个新策略,请在新主机选项卡上指定新 Agent 策略的名称,并选择是否收集系统日志和指标。收集日志和指标会将系统集成添加到新的 Agent 策略中。
- 如果您已创建 Elastic Agent 策略,请在现有主机选项卡上使用下拉菜单指定一个或多个您想要向其中添加集成的 Agent 策略。
- 点击保存并继续以确认您的设置。
此操作将安装集成并将其添加到您指定的 Elastic Agent 策略中。Fleet 将新的集成策略分发到注册到 Agent 策略的所有 Elastic Agent。
您可以随时更新已安装集成的设置
- 在 Kibana 中,转到集成页面。
- 在集成策略选项卡上,对于您要更新的集成,打开操作菜单并选择编辑集成。
-
在编辑 <集成>页面上,您可以更新任何配置设置,还可以更新已添加集成的 Elastic Agent 策略列表。
如果清除Agent 策略字段,则集成将从已将其添加到其中的任何 Elastic Agent 策略中删除。
要识别任何已“孤立”的集成(即未与任何 Elastic Agent 策略关联),请检查集成策略选项卡上的Agent 策略列。任何已安装但未与 Elastic Agent 策略关联的集成都标记为
无 Agent 策略
。
应用策略
编辑您可以将策略应用于一个或多个 Elastic Agent。要应用策略
- 在 Fleet 中,点击Agent。
-
选择要分配到新策略的 Elastic Agent。
选择一个或多个 Elastic Agent 后,点击操作菜单下的分配到新策略。
无法选择多个 Agent?确认您的订阅级别是否支持在 Fleet 中选择性地重新分配 Agent 策略。有关更多信息,请参阅Elastic Stack 订阅。
- 从下拉列表中选择 Elastic Agent 策略,然后点击分配策略。
Elastic Agent 状态指示器和 Elastic Agent 日志指示正在应用策略。策略更改可能需要几分钟才能完成,然后 Elastic Agent 状态才会更新为“健康”。
编辑或删除集成策略
编辑集成可以轻松地重新配置或删除。要编辑或删除集成策略
- 在 Fleet 中,点击Agent 策略。点击您要编辑或删除的策略的名称。
-
搜索或滚动到特定集成。打开操作菜单并选择编辑集成或删除集成。
编辑或删除集成是永久性的,无法撤消。如果您犯了错误,可以随时重新配置或重新添加集成。
任何保存的更改都会立即分发并应用于注册到给定策略的所有 Elastic Agent。
要更新集成策略中的任何密钥值,请参阅在策略中配置密钥值。
复制策略
编辑策略定义存储在纯文本 YAML 文件中,可以将其下载或复制到另一个策略
- 在 Fleet 中,点击Agent 策略。点击您要复制或下载的策略的名称。
-
要复制策略,请点击操作 → 复制策略。命名新策略,并提供描述。精确的策略定义将复制到新策略。
或者,通过点击操作 → 查看策略来查看和下载策略定义。
编辑或删除策略
编辑您可以根据需要更改高级配置,例如策略的名称、描述、默认命名空间和 Agent 监控状态
- 在 Fleet 中,点击Agent 策略。点击您要编辑或删除的策略的名称。
-
点击设置选项卡,进行更改,然后点击保存更改
或者,点击删除策略以删除策略。不会删除现有数据。必须注销或分配到其他策略中,才能删除策略中分配的任何 Agent。
添加自定义字段
编辑使用此设置添加自定义字段和值集,这些字段和值集将设置为从注册到 Elastic Agent 策略的 Elastic Agent 收集的所有数据。当您想要识别或可视化来自一组 Agent 的所有数据,并可能在后续处理数据时,自定义字段非常有用。
要添加自定义字段
- 在 Fleet 中,点击Agent 策略。选择您要编辑的策略的名称。
- 点击设置选项卡,然后滚动到自定义字段。
- 点击添加字段。
-
指定字段名称和值。
- 点击添加另一个字段以添加更多字段。完成后,点击保存更改。
要编辑自定义字段
- 在 Fleet 中,点击Agent 策略。选择您要编辑的策略的名称。
- 点击设置选项卡,然后滚动到自定义字段。将显示已配置的任何自定义字段。
- 点击编辑图标更新字段,或点击删除图标将其删除。
请注意,对于一小部分输入,不支持添加自定义标签
-
apm
-
cloudbeat
和所有cloudbeat/*
输入 -
cloud-defend
-
fleet-server
-
pf-elastic-collector
、pf-elastic-symbolizer
和pf-host-agent
配置代理监控
编辑使用这些设置从Elastic Agent收集监控日志和指标。所有监控数据都将写入指定的默认命名空间。
- 在 Fleet 中,点击Agent 策略。选择您要编辑的策略的名称。
- 点击设置选项卡,然后滚动到代理监控。
-
从使用该策略的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中,点击设置并查看可用输出的列表。如有必要,点击添加输出以使用所需的设置添加新输出。有关更多信息,请参阅输出设置。
- 点击代理策略。点击要更改的策略的名称,然后点击设置。
-
设置集成的输出和(可选)代理监控的输出以使用不同的输出,例如Logstash。您可能需要向下滚动才能看到这些选项。
无法选择不同的输出?确认您的订阅级别是否支持Fleet中的每个策略输出。
- 保存您的更改。
注册到代理策略中的任何Elastic Agent都将开始将数据发送到指定的输出。
将Fleet Server添加到策略
编辑如果您想将多个代理连接到特定的本地Fleet Server,则可以将该Fleet Server添加到策略中。
保存策略后,分配给该策略的所有代理都配置为使用新的Fleet Server作为控制器。
确保分配给此策略的所有Elastic Agent都能够连接到您添加的Fleet Server。缺乏连接将阻止Elastic Agent与Fleet Server进行检查并接收策略更新,但代理仍将数据转发到集群。
在策略中配置秘密值
编辑创建集成策略时,您通常需要提供敏感信息,例如API密钥或密码。为了帮助确保数据不会被不当访问,集成策略中使用的任何秘密值都与其他策略详细信息分开存储。
此外,在Fleet中保存秘密值后,该值将在Fleet UI和代理策略定义中都隐藏。查看代理策略(操作→查看策略)时,将显示环境变量以代替任何秘密值,例如${SECRET_0}
。
为了使敏感值能够秘密存储在Fleet中,所有已配置的Fleet Server必须为8.10.0或更高版本。
尽管存储在Fleet中的秘密值是隐藏的,但可以更新它们。要更新集成策略中的秘密值
- 在 Fleet 中,点击Agent 策略。选择您要编辑的策略的名称。
- 搜索或滚动到特定的集成。打开操作菜单并选择编辑集成。任何秘密信息都标记为隐藏。
-
点击链接以将秘密值替换为新的秘密值。
- 点击保存集成。策略中的原始秘密值将被覆盖。
设置最大CPU使用率
编辑您可以限制Elastic Agent消耗的CPU数量。此参数限制每个Go进程中可以同时执行Go代码的操作系统线程数。您可以指定一个不小于0
的整数值,这是代表“所有可用CPU”的默认值。
此限制独立应用于代理及其监督的每个底层Go进程。例如,如果Elastic Agent配置为监督两个Beats,并且策略中设置的CPU使用率限制为2
,则总CPU限制为六,其中三个进程(一个Elastic Agent和两个Beats)中的每一个都可以在两个CPU上独立执行。
此设置类似于Beatsmax_procs
设置。有关更多详细信息,请参阅Go运行时文档中的GOMAXPROCS函数。
- 在 Fleet 中,点击Agent 策略。选择您要编辑的策略的名称。
- 点击设置选项卡,然后滚动到高级设置。
- 根据需要设置限制CPU使用率。例如,要将Elastic Agent监督的Go进程限制为每个操作系统线程两个,请将此值设置为
2
。
设置Elastic Agent日志级别
编辑您可以设置使用所选策略的Elastic Agent将发送到已配置输出的最小日志级别。默认设置是info
。
- 在 Fleet 中,点击Agent 策略。选择您要编辑的策略的名称。
- 点击设置选项卡,然后滚动到高级设置。
- 设置代理日志记录级别。
- 保存您的更改。
您还可以为单个代理设置日志级别
- 在Fleet中,点击代理。在主机标题下,选择要编辑的Elastic Agent。
- 在“日志”选项卡上,设置代理日志级别并应用更改。或者,您可以选择重置代理以使用代理策略中指定的日志级别。
更改 Elastic Agent 二进制文件下载位置
编辑Elastic Agent 必须能够访问 Elastic Artifact Registry 以在升级期间下载二进制文件。默认情况下,Elastic Agent 从 https://artifacts.elastic.co/downloads/
的工件注册表下载工件。
对于无法访问互联网的 Elastic Agent,您可以指定代理二进制文件下载设置,然后配置代理以从备用位置下载其工件。有关在受限环境中运行 Elastic Agent 的更多信息,请参阅隔离环境。
要更改二进制文件下载位置
- 在 Fleet 中,点击Agent 策略。选择您要编辑的策略的名称。
- 单击“设置”选项卡并滚动到“代理二进制文件下载”。
- 指定您托管工件存储库的地址,或选择默认值以使用 Fleet 代理二进制文件下载设置中指定的位置。
设置 Elastic Agent 主机名格式
编辑主机名格式设置控制通过 host.name 密钥在 Elastic Agent 生成的事件中提供有关当前主机的信息的格式。
- 在 Fleet 中,点击Agent 策略。选择您要编辑的策略的名称。
- 单击“设置”选项卡并滚动到“主机名格式”。
-
选择以下选项之一
-
主机名:有关当前主机的信息采用非完全限定格式(
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 中,点击Agent 策略。选择您要编辑的策略的名称。
- 单击“设置”选项卡并滚动到“非活动代理注销超时”。
- 以秒为单位指定注销超时时间。
- 保存您的更改。
设置注销超时后,任何非活动代理将在指定时间段后自动注销。注销任务每十分钟运行一次,并且每次最多注销一千个代理。
策略扩展建议
编辑Fleet 的单个实例最多支持 500 个 Elastic Agent 策略。如果配置了更多策略,UI 性能可能会受到影响。