升级由 Fleet 管理的 Elastic Agent

编辑

想要升级独立的 Agent 吗?请参阅 升级独立的 Elastic Agent

通过 Fleet 的升级功能,您可以查看并选择过期的 Agent,并触发选定的 Agent 下载、安装和运行新版本。您可以触发立即升级,或指定升级发生的维护窗口。如果您的 Elastic Stack 订阅级别支持,您可以安排在特定日期和时间进行升级。

在大多数失败情况下,Elastic Agent 可能会在短暂等待后重试升级。重试之间的等待时长为:1 分钟、5 分钟、10 分钟、15 分钟、30 分钟和 1 小时。在此期间,Elastic Agent 在 Fleet UI 中可能显示为“正在重试”。此外,如果检测到 Agent 升级停滞,您可以为单个 Agent重新启动升级过程,或为多个 Agent批量重新启动升级过程。

这种方法简化了保持 Agent 更新的过程。它还为您节省了时间,因为您不需要第三方工具或流程来管理升级。

默认情况下,Elastic Agent 需要 Internet 访问才能从 Fleet 执行二进制升级。但是,您可以托管自己的工件存储库,并配置 Elastic Agent 从该存储库下载二进制文件。有关更多信息,请参阅气隙环境

升级功能不支持升级 DEB/RPM 包或 Docker 镜像。请参阅升级 RPM 和 DEB 系统包以手动升级 DEB 或 RPM 包。

有关 Elastic Agent 升级过程以及 Fleet、Elastic Agent 和 Elasticsearch 之间交互的详细视图,请参阅 elastic-agent GitHub 存储库中的组件之间的通信图。

限制
编辑

请注意升级 Elastic Agent 的以下限制

  • Elastic Agent 不能升级到高于当前安装的最高版本的 Fleet Server 的版本。当您升级一组当前版本相同的 Elastic Agent 时,您应该首先升级充当 Fleet Server 的任何 Agent(任何与 Fleet Server 策略关联的 Agent)。
  • 要可升级,Elastic Agent 必须不在容器内运行。
  • 要在 Linux 环境中可升级,Elastic Agent 必须作为服务运行。Fleet 中提供的 Elastic Agent 的 Linux Tar 安装说明包括将其作为服务运行的命令。无法通过 Fleet 升级 Elastic Agent RPM 和 DEB 系统包。

这些限制适用于您单独升级还是批量升级 Elastic Agent。如果升级不符合条件,Fleet 会在您尝试升级时生成警告消息。

升级 Elastic Agent
编辑

要升级 Elastic Agent,请在 Kibana 中转到 管理 > Fleet > Agent。您可以执行以下与升级相关的操作

用户操作 结果

升级单个 Elastic Agent

将单个 Agent 升级到特定版本。

对多个 Elastic Agent 执行滚动升级

在特定时间段内对多个 Agent 执行滚动升级。

计划升级

计划一个或多个 Agent 在特定时间开始升级。

查看升级状态

查看 Agent 升级的详细状态,包括升级指标和 Agent 日志。

重新启动单个 Agent 的升级

重新启动已停滞的单个 Agent 的升级过程。

重新启动多个 Agent 的升级

对一组 Agent 执行升级过程的批量重新启动。

升级单个 Elastic Agent
编辑
  1. Agent选项卡上,可以升级的 Agent 会用有可用升级指示符标识。

    Indicator on the UI showing that the agent can be upgraded

    您还可以单击有可用升级按钮,以将 Agent 列表过滤为仅当前可以升级的 Agent。

  2. 从 Agent 旁边的操作菜单中,选择升级 Agent

    Menu for upgrading a single Elastic Agent
  3. 在“升级 Agent”窗口中,选择或指定升级版本,然后单击升级 Agent

    在某些情况下,Kibana 可能无法识别最新的可用 Elastic Agent 版本。例如,当 Kibana 版本低于 Elastic Agent 版本时会发生这种情况。您可以通过在升级版本文本字段中输入版本来为 Elastic Agent 指定要升级到的自定义版本。

    Menu for upgrading a single Elastic Agent
对多个 Elastic Agent 执行滚动升级
编辑

您可以执行滚动升级,以避免在更新大量 Elastic Agent 时耗尽网络资源。

  1. Agent选项卡上,选择多个 Agent,然后单击操作
  2. 操作菜单中,选择升级 Agent。
  3. 在“升级 Agent”窗口中,选择一个升级版本。
  4. 选择维护窗口的可用时间。升级会在该维护窗口中均匀分布,以避免耗尽网络资源。

    要强制选定的 Agent 在触发升级时立即升级,请选择立即。对于超过 10 个 Agent 的批处理,请避免使用此设置。

  5. 升级 Agent。
计划升级
编辑
  1. Agent选项卡上,选择一个或多个 Agent,然后单击操作
  2. 操作菜单中,选择计划升级。

    Menu for scheduling Elastic Agent upgrades

    如果计划选项灰显,则您的订阅级别可能无法使用该选项。有关更多信息,请参阅Elastic Stack 订阅

  3. 在“升级”窗口中,选择一个升级版本。
  4. 选择维护窗口。有关更多信息,请参阅对多个 Elastic Agent 执行滚动升级
  5. 设置您希望升级开始的日期和时间。
  6. 单击计划
查看升级状态
编辑

在“Agent”选项卡上,当您触发升级时,正在升级的 Agent 的状态为正在更新,直到升级完成,然后状态将变回正常

版本为 8.12 及更高版本的当前正在升级的 Agent 还会显示详细的升级状态指示器。

Detailed state of an upgrading agent

下表按它们可能发生的顺序说明了升级状态。

表 6. Elastic Agent 升级状态

状态 描述

已请求升级

Elastic Agent 已收到来自 Fleet 的升级通知。

已计划升级

Elastic Agent 已收到来自 Fleet 的升级通知,升级将在指示的时间开始。

正在下载升级

Elastic Agent 正在下载包含新版本工件的归档文件。

正在提取升级

Elastic Agent 正在从下载的归档文件中提取新版本工件。

正在替换升级

Elastic Agent 当前正在将之前的、升级前的 Agent 工件替换为新的工件。

正在重新启动升级

Elastic Agent 已被新版本替换,现在正在重新启动以应用更新。

正在监视升级

新升级的 Elastic Agent 已启动,并且正在监视错误。

升级已回滚

升级不成功。Elastic Agent 正在回滚到之前的、升级前的版本。

升级失败

在新升级的 Elastic Agent 中检测到错误,并且尝试将升级回滚到先前版本失败。

在例行情况下,Elastic Agent 升级会快速发生。您通常不会看到 Agent 经历每个升级状态。详细的升级状态可能是一个非常有用的工具,特别是当您需要诊断可能在升级过程中卡住或只是看起来卡住的 Agent 的状态时。

在升级状态指示器旁边,您可以将光标悬停在信息图标上,以获取有关升级的更多详细信息。

Granular upgrade details shown as hover text (agent has requested an upgrade)
Granular upgrade details shown as hover text (agent is restarting to apply the update)

请注意,当您从低于 8.12 的版本升级 Agent 时,不提供升级详细信息。

An earlier release agent showing only the updating state without additional details

升级多个 Agent 时,您可以通过查看有关升级的统计信息和指标来微调维护窗口

  1. Agent选项卡上,单击主机名以查看 Agent 详细信息。如果您没有看到主机名,请尝试刷新页面。
  2. 单击查看更多 Agent 指标以打开[Elastic Agent] Agent 指标仪表板。

如果升级似乎已停滞,您可以重新启动它

如果升级失败,您可以查看 Agent 日志以查找原因

  1. 在 Fleet 中,在“主机”列中,单击代理的名称。
  2. 打开 日志 选项卡。
  3. 搜索失败。

    Agent logs showing upgrade failure
重启单个代理的升级
编辑

Elastic Agent 升级过程有时可能会停滞。发生这种情况的原因有很多,例如,网络连接问题或延迟关闭。

当检测到 Elastic Agent 升级卡住时,UI 上会出现警告指示器。发生这种情况时,您可以从主 Fleet 页面上的 代理 选项卡或任何单个代理的详细信息页面重启升级。

请注意,重启尝试之间需要 10 分钟的冷却时间。启动重启操作后,您需要等待冷却时间完成才能启动另一次重启。

从主 Fleet 页面重启

  1. 在状态为 正在更新 的代理旁边的 操作 菜单中,选择 重启升级
  2. 重启升级 窗口中,选择一个升级版本,然后单击 升级代理

从代理详细信息页面重启

  1. 在 Fleet 中,在 主机 列中,单击代理的名称。在 代理详细信息 选项卡上,如果检测到代理在升级期间停滞,则会显示警告通知。
  2. 单击 重启升级
  3. 重启升级 窗口中,选择一个升级版本,然后单击 升级代理
重启多个代理的升级
编辑

当检测到多个代理的升级过程停滞时,您可以批量重启升级过程。与重启单个代理的升级一样,重启之间强制执行 10 分钟的冷却时间。

  1. 代理 选项卡上,选择任意一组指示为卡住的代理,然后单击 操作
  2. 操作 菜单中,选择 重启升级 <数字> 个代理
  3. 重启升级…​ 窗口中,选择一个升级版本。
  4. 选择维护窗口的可用时间。升级会在该维护窗口中均匀分布,以避免耗尽网络资源。

    要强制选定的 Agent 在触发升级时立即升级,请选择立即。对于超过 10 个 Agent 的批处理,请避免使用此设置。

  5. 重启升级。
升级 RPM 和 DEB 系统软件包
编辑

如果您使用 DEB(适用于基于 Debian 的 Linux 发行版)或 RPM(适用于基于 RedHat 的 Linux 发行版)安装包安装和注册了 Elastic Agent,则升级无法由 Fleet 管理。相反,您可以按照以下步骤执行升级。

有关安装步骤,请参阅安装 Fleet 管理的 Elastic Agent

升级 DEB Elastic Agent 安装
编辑
  1. 下载要升级到的版本的 Elastic Agent Debian 安装包

    curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.17.0-amd64.deb
  2. 将 Elastic Agent 升级到目标版本

    sudo dpkg -i elastic-agent-8.17.0-amd64.deb
  3. 在 Fleet 中确认代理已升级到目标版本。请注意,代理旁边 操作 菜单中的 升级代理 选项将被禁用,因为此软件包类型不支持 [fleet] 管理的升级。
升级 RPM Elastic Agent 安装
编辑
  1. 下载要升级到的版本的 Elastic Agent RPM 安装包

    curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.17.0-x86_64.rpm
  2. 将 Elastic Agent 升级到目标版本

    sudo rpm -U elastic-agent-8.17.0-x86_64.rpm
  3. 在 Fleet 中确认代理已升级到目标版本。请注意,代理旁边 操作 菜单中的 升级代理 选项将被禁用,因为此软件包类型不支持 [fleet] 管理的升级。