升级
编辑升级
编辑本节提供升级 Beats 数据发送器的常规建议。
如果您正在升级堆栈中的其他产品,请阅读 Elastic Stack 安装和升级指南。
在次要版本之间升级
编辑一般来说,您可以通过简单地安装新版本并重新启动 Beat 进程来在次要版本之间升级(例如,从 8.x 升级到 8.y,其中 x < y)。Beats 通常保持配置设置和导出字段向后兼容。请查看 发行说明 以了解潜在的例外情况。
不支持在非连续的主版本之间升级(例如,从 6.x 升级到 8.x)。
从 7.x 升级到 8.x
编辑如果您正在升级堆栈中的其他产品,请阅读 Elastic Stack 安装和升级指南。
我们建议您在升级 Beats 之前将 Elasticsearch 和 Kibana 完全升级到 8.0 版本。Beats 版本必须低于或等于 Elasticsearch 版本。Beats 无法向旧版本的 Elasticsearch 发送数据。
如果您在 Kibana 中使用 Uptime 应用程序,请确保将 heartbeat-8*
和 synthetics-*
添加到 Uptime 索引 中的 设置页面。第一个索引由较新版本的 Beat 使用,而后者由 Fleet 使用。
如果您使用的是 Beats 7.0 到 7.16,请先将 Elastic Stack 和 Beats 升级到 7.17 版本,然后才能进行 8.0 升级。
不支持在非连续的主版本之间升级(例如,从 6.x 升级到 8.x)。
请在继续操作之前阅读所有升级步骤。这些步骤是在第一次运行软件之前必需的。
升级到 Beats 7.17 然后再升级到 8.0
编辑升级过程假设您已安装 Beats 7.17。如果您使用的是之前的 7.x 版本的 Beats,请先升级到 7.17 版本。如果您使用的是 Elastic Stack 中的其他产品,请将 Beats 升级作为 Elastic Stack 升级过程 的一部分。
升级到 7.17 后,转到 Kibana 中的 索引管理 并验证 7.17 索引模板是否已加载到 Elasticsearch 中。
如果未加载 7.17 索引模板,请立即加载。
如果您在 7.17 版本之前创建了自定义仪表板,则必须先将其升级到 7.17 才能继续操作。否则,仪表板将停止工作,因为 Kibana 不再提供 7.x 中仪表板使用的 API。
将 Beats 二进制文件升级到 8.0
编辑升级前
- 使用适合您系统的相应命令停止现有的 Beats 进程。
-
通过将
data
和config
目录复制到另一个位置来备份它们。这些目录的位置取决于安装方法。要查看当前路径,请从终端启动 Beat,启动时会打印
data
和config
路径。
使用 Debian 或 RPM 包进行升级
- 使用
rpm
或dpkg
安装新包。所有文件都安装在操作系统适用的位置,并且不会覆盖 Beats 配置文件。
使用 zip 或压缩的 tarball 进行升级
- 将 zip 或 tarball 解压缩到一个新目录。如果您不使用外部
config
和data
目录,这一点至关重要。 -
在 Beats 配置文件中设置以下选项
- 将
path.config
设置为指向您的外部config
目录。如果您不使用外部config
目录,请将旧配置复制到新安装。 - 将
path.data
设置为指向您的外部数据目录。如果您不使用外部data
目录,请将旧数据目录复制到新安装。 - 将
path.logs
设置为指向您要存储日志的位置。如果您未指定此设置,则日志将存储在您解压缩存档的目录中。
- 将
在重新启动 Beats 进程之前,完成以下各节中描述的升级任务。
迁移配置文件
编辑Beats 8.0 带有几个与向后不兼容的配置更改。升级之前,请查看 8.0 文档。还要查看 Beats 8.0.0 版本 中的完整重大更改列表。
在可能的情况下,我们保留了旧的配置选项,但已弃用它们。但是,并非总是可以弃用,因此,如果您使用了重大更改下描述的任何设置,请确保您了解我们提供的替代方案。
加载 8.0 Elasticsearch 索引模板
编辑从 8.0 版本开始,默认的 Elasticsearch 索引模板配置数据流而不是传统的 Elasticsearch 索引。数据流针对存储仅追加的时间序列数据进行了优化。它们非常适合日志、事件、指标和其他持续生成的数据。但是,与传统的 Elasticsearch 索引不同,数据流仅支持创建操作;它们不支持更新和删除操作。
要使用数据流,请在将任何数据导入 Elasticsearch 之前 加载默认索引模板。
beatname setup --index-management
beatname setup --index-management
./beatname setup --index-management
./beatname setup --index-management
docker run --rm --net="host" docker.elastic.co/beats/beatname:8.16.0 setup --index-management
以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标并选择 以管理员身份运行)。
从 PowerShell 提示符中,更改到您安装 Beat 的目录,然后运行
PS > .\beatname.exe setup --index-management
如果您不收集时间序列数据,您可以继续使用 Beats 将数据发送到别名和索引。要执行此操作,请创建一个自定义索引模板并手动加载它。要了解有关创建索引模板的更多信息,请参阅 索引模板。
加载 8.0 仪表板
编辑我们建议您在升级 Kibana 和 Beats 后加载 8.0 Kibana 仪表板。这样,您可以利用 8.0 中添加的改进。要加载仪表板,请运行
beatname setup --dashboards
beatname setup --dashboards
./beatname setup --dashboards
./beatname setup --dashboards
docker run --rm --net="host" docker.elastic.co/beats/beatname:8.16.0 setup --dashboards
以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标并选择 以管理员身份运行)。
从 PowerShell 提示符中,更改到您安装 Beat 的目录,然后运行
PS > .\beatname.exe setup --dashboards
迁移自定义仪表板和可视化
编辑所有 Elastic Beats 都使用符合 ECS 的字段名称发送事件。如果您有任何使用旧字段的自定义 Kibana 仪表板或可视化,请立即调整它们以使用 ECS 字段名称。
要了解有关 ECS 的更多信息,请参阅 ECS 概述。
如果您在 7.x 中启用了兼容性层(即,如果您设置了 migration.6_to_7.enabled: true
),请确保您的自定义仪表板不再依赖于该设置创建的旧别名。旧别名不再受支持。它们可能会继续工作,但会在将来的版本中未经通知即被删除。
启动升级后的 Beats
编辑完成迁移后,启动升级后的 Beat。使用适合您系统的命令。
检查控制台和日志中的错误。
在 Kibana 中,转到 发现 并验证事件是否正在流入 Elasticsearch。
排查 Beats 升级问题
编辑本节描述您在升级到 Beats 8.x 时可能遇到的常见问题。
您可以通过在升级 Beats 之前阅读 从 7.x 升级到 8.x 来避免其中的一些问题。
Beats 无法向数据流发送更新或删除请求
编辑数据流专为很少(如果有的话)更新现有数据的用例而设计。您无法直接向数据流发送现有文档的更新或删除请求。
如有必要,您可以通过直接向文档的后台索引提交请求来更新或删除文档。要了解如何操作,请参阅有关 使用数据流 的文档。
缺少时间戳字段
编辑Beats 需要时间戳字段才能将数据发送到数据流。如果 Beats 添加的时间戳字段意外地被处理器删除,Beats 将无法索引事件。要解决此问题,请修改您的处理器配置以避免删除时间戳字段。
索引中缺少字段或字段过多
编辑您可能在加载所需的索引模板之前运行了 Beat。要清理并重新开始
-
删除运行 Beat 时创建的索引。例如
DELETE metricbeat-8.16.0-2019.04.02*
使用通配符删除索引时要小心。确保模式仅匹配您要删除的索引。此处显示的示例删除了 2019.04.02 日索引到 metricbeat-8.16.0 索引中的所有数据。
-
删除先前加载的索引模板。例如
DELETE /_index_template/metricbeat-8.16.0
- 加载正确的索引模板。请参阅 加载 8.0 Elasticsearch 索引模板。
- 重新启动 Beats。