加载中

为集成启用 logsdb

本页面向您展示如何使用 @custom 组件模板为集成数据流启用 logsdb 索引模式。如果您的集成是在升级到 Elastic Stack 9.x 之前安装的,则需要手动启用 logsdb 模式。

升级时为什么不会自动为集成启用 logsdb?

虽然 logsdb 显着降低了存储成本,但它可能会略微增加数据摄取开销。在已接近容量的集群上,一次性在许多数据流上启用 logsdb 可能会影响稳定性。因此,8.x 到 9.x 的升级过程不会自动将 logsdb 模式应用于现有的集成数据流。

Logsdb 索引模式会自动应用于 Elastic Stack 9.0+ 中的集成数据流。更多详情,请参阅 logsdb 索引模式的可用性

本页面的步骤适用于 Elastic Cloud Serverless,但通常您不需要在 Serverless 中手动启用 logsdb。

要使用集成数据流,您需要从包清单中获取一些详细信息。在 Elastic 集成仓库 中查找您的集成或查询 Elastic 包注册表,并记下以下内容:

  • 包名称:包清单中的确切名称。例如,MySQL 集成包名为 mysql

  • 日志数据集名称:确保集成具有 typelogs 的数据流。例如,MySQL 集成具有 mysql.errormysql.slowlog。记下每个日志数据集的名称,以便在后续步骤中使用。

  1. 查找日志数据流并检查索引模式

    1. 使用导航菜单或全局搜索栏进入索引管理 (Index Management)

    2. Data Streams (数据流) 选项卡上,搜索集成名称。

    3. 检查集成中每个日志数据流的 Index mode (索引模式) 列。

      如果索引模式显示为 LogsDB,则表示 logsdb 已启用,无需采取任何操作。如果显示为其他模式(例如 StandardTime series),请继续下一步。

  2. 编辑现有的组件模板

    使用 Kibana 查找并编辑集成日志数据集的 @custom 组件模板。

    1. 使用导航菜单或全局搜索栏进入索引管理 (Index Management)

    2. Component Templates (组件模板) 选项卡上,搜索 @custom 以检查集成日志数据集的模板是否已经存在。

    3. 编辑对应于您在 开始之前 中确定的日志数据集的现有 @custom 模板。在 Index settings (索引设置) 步骤中,添加 logsdb 模式。

      {
        "index": {
          "mode": "logsdb"
        }
      }
      		
  3. 创建组件模板

    如果它们尚不存在,请为您在 开始之前 中确定的日志数据集创建 @custom 组件模板。

    1. 使用导航菜单或全局搜索栏进入索引管理 (Index Management)
    2. Component Templates (组件模板) 选项卡上,单击 Create component template (创建组件模板) 并逐步完成向导。
      • Logistics 步骤中,使用 logs-<integration>.<dataset>@custom 模式命名模板(例如,logs-mysql.error@custom)。
      • Index settings (索引设置) 步骤中,添加 logsdb 索引模式。

    对集成中的每个日志数据集重复此操作。

    为单个集成数据集创建 @custom 模板

    组件模板名称必须使用 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 替换为您的集成包名称和版本。

  4. 验证 logsdb 模式

    更改将在 滚动 (rollover) 时应用于现有数据流。数据流会根据您的索引生命周期策略自动滚动,或者您可以 手动触发滚动

    在数据流滚动后,重复 步骤 1 中的检查,以确保索引模式设置为 logsdb。如果不是,请确保数据流在您创建或更新相应模板后已经滚动过。

您还可以为集群中的所有日志数据流启用 logsdb(不仅仅是特定的集成)。为此,请创建或更新 logs@custom 组件模板。有关组件模板和模板组合的详细信息,请参阅 组件模板

重要提示

如果您的集群已经接近容量,则在一次性为许多数据流启用 logsdb 时可能会出现稳定性问题。在编辑 logs@custom 之前,请务必检查集群的资源使用情况。

© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.