为集成启用 logsdb
本页面向您展示如何使用 @custom 组件模板为集成数据流启用 logsdb 索引模式。如果您的集成是在升级到 Elastic Stack 9.x 之前安装的,则需要手动启用 logsdb 模式。
虽然 logsdb 显着降低了存储成本,但它可能会略微增加数据摄取开销。在已接近容量的集群上,一次性在许多数据流上启用 logsdb 可能会影响稳定性。因此,8.x 到 9.x 的升级过程不会自动将 logsdb 模式应用于现有的集成数据流。
Logsdb 索引模式会自动应用于 Elastic Stack 9.0+ 中的新集成数据流。更多详情,请参阅 logsdb 索引模式的可用性。
本页面的步骤适用于 Elastic Cloud Serverless,但通常您不需要在 Serverless 中手动启用 logsdb。
要使用集成数据流,您需要从包清单中获取一些详细信息。在 Elastic 集成仓库 中查找您的集成或查询 Elastic 包注册表,并记下以下内容:
包名称:包清单中的确切名称。例如,MySQL 集成包名为
mysql。日志数据集名称:确保集成具有
type为logs的数据流。例如,MySQL 集成具有mysql.error和mysql.slowlog。记下每个日志数据集的名称,以便在后续步骤中使用。Elastic 包注册表查询 (curl)您可以使用此
curl命令确认 Elastic 包注册表 中的集成日志数据流。将mysql/1.28.1替换为您的集成包名称和版本。curl -sL epr.elastic.co/package/mysql/1.28.1 | jq '.data_streams[] | select(.type == "logs") | {dataset, type}'{ "dataset": "mysql.error", "type": "logs" } { "dataset": "mysql.slowlog", "type": "logs" }
-
查找日志数据流并检查索引模式
使用导航菜单或全局搜索栏进入索引管理 (Index Management)。
在 Data Streams (数据流) 选项卡上,搜索集成名称。
检查集成中每个日志数据流的 Index mode (索引模式) 列。
如果索引模式显示为 LogsDB,则表示 logsdb 已启用,无需采取任何操作。如果显示为其他模式(例如 Standard 或 Time series),请继续下一步。
-
编辑现有的组件模板
使用 Kibana 查找并编辑集成日志数据集的
@custom组件模板。 -
创建组件模板
如果它们尚不存在,请为您在 开始之前 中确定的日志数据集创建
@custom组件模板。- 使用导航菜单或全局搜索栏进入索引管理 (Index Management)。
- 在 Component Templates (组件模板) 选项卡上,单击 Create component template (创建组件模板) 并逐步完成向导。
- 在 Logistics 步骤中,使用
logs-<integration>.<dataset>@custom模式命名模板(例如,logs-mysql.error@custom)。 - 在 Index settings (索引设置) 步骤中,添加 logsdb 索引模式。
- 在 Logistics 步骤中,使用
对集成中的每个日志数据集重复此操作。
为单个集成数据集创建
@custom模板- 在 Elastic Stack 部署中,使用 component template API。
- 在 Elastic Cloud Serverless 中,使用 component template API。
组件模板名称必须使用
logs-<integration>.<dataset>@custom模式。示例
PUT _component_template/logs-mysql.error@custom{ "template": { "settings": { "index.mode": "logsdb" } } }对集成中的每个日志数据集重复此操作。
警告此
curl命令使用PUT,它会覆盖任何现有的组件模板。在使用此命令之前,请确认您的集成不存在@custom模板。在一次性为许多数据流启用 logsdb 之前,请务必考虑集群的资源使用情况。在已接近容量的集群上,此操作可能会影响稳定性。
要一次性为集成中的所有日志数据流创建
@custom组件模板,请在终端窗口中运行此命令。curl -sL epr.elastic.co/package/mysql/1.28.1 | jq -r '.data_streams[] | select(.type == "logs") | .dataset' | xargs -I% curl -s -XPUT \ -H'Authorization: ApiKey <API_KEY>' -H'Content-Type: application/json' \ '<ES_URL>/_component_template/logs-%@custom' \ -d'{"template": {"settings": {"index.mode": "logsdb"}}}'将
<API_KEY>替换为您的 API 密钥,将<ES_URL>替换为您的 Elasticsearch 端点,并将mysql/1.28.1替换为您的集成包名称和版本。 -
验证 logsdb 模式
更改将在 滚动 (rollover) 时应用于现有数据流。数据流会根据您的索引生命周期策略自动滚动,或者您可以 手动触发滚动。
在数据流滚动后,重复 步骤 1 中的检查,以确保索引模式设置为 logsdb。如果不是,请确保数据流在您创建或更新相应模板后已经滚动过。
您还可以为集群中的所有日志数据流启用 logsdb(不仅仅是特定的集成)。为此,请创建或更新 logs@custom 组件模板。有关组件模板和模板组合的详细信息,请参阅 组件模板。
如果您的集群已经接近容量,则在一次性为许多数据流启用 logsdb 时可能会出现稳定性问题。在编辑 logs@custom 之前,请务必检查集群的资源使用情况。
- 查看有关 Logs data streams (日志数据流)、Templates (模板) 和 Default logs index template (默认日志索引模板) 的文档。
- 配置日志数据流
- Elastic Security 规则的高级数据源配置