跳到主要内容

配置 Elasticsearch 外部采集来源

当慢日志已经统一写入 Elasticsearch 时,您可以创建 Elasticsearch 外部采集来源,由 NineData 从目标 Elasticsearch 数据源读取慢日志并写入慢查询分析。

前提条件

  • 已创建或加入组织,并且该组织已开通数据库 DevOps 专业版数据库 DevOps 企业版,同时请确保您的包年包月订阅未过期。更多信息,请参见管理组织
  • 当前账号已切换到目标组织。更多信息,请参见切换到组织
  • 已将 Elasticsearch 数据源录入到 NineData。
  • 目标 Elasticsearch 中已写入符合 NineData 外部采集脚本要求的慢日志数据。
  • Elasticsearch 数据源账号具备目标慢日志索引或数据流的读取权限。
  • 已获取 Elasticsearch 数据源 ID。您可以从数据源详情页 URL 中获取,例如 /configuration/datasource/detail/ds-xxxxxxxxxxxx 的最后一段即为数据源 ID。

权限要求

如果目标 Elasticsearch 开启了安全认证,请为 NineData 使用的数据源账号授予目标慢日志索引或数据流的如下索引权限。

权限用途
read读取慢日志文档并执行查询。
view_index_metadata读取索引、映射、字段能力等元数据。

如果通过别名或通配符访问慢日志索引,请确认别名或通配符覆盖的所有索引都在授权范围内。NineData 读取慢日志不需要 Elasticsearch 写入、删除或索引管理权限。

步骤一:进入外部采集来源页面

  1. 登录 NineData 控制台

  2. 在左侧导航栏,单击数据库 DevOps > 慢查询分析

  3. 在页面上方页签中,单击外部采集来源

步骤二:创建 Elasticsearch 外部采集来源

  1. 外部采集来源页签,单击创建外部采集来源

  2. 在右侧抽屉中完成如下配置。

    参数说明
    来源类型选择 Elasticsearch
    数据源选择目标 Elasticsearch 数据源。
    采集来源名称自定义采集来源名称。
    采集来源描述选填,填写采集来源说明。
    采集定义配置保持默认生成的 MySQL 配置页签。
    开启配置保持开启。
  3. 单击确定完成创建。

    slow_query_external_create_20260312

步骤三:测试采集定义配置

  1. 返回外部采集来源列表,找到目标采集来源,单击右侧编辑

  2. 采集定义配置区域,确认当前页签显示为 MySQL,并且开启配置已开启。

  3. 采集慢日志这一行右侧,单击测试

  4. 在测试弹窗的输入信息中,将默认示例参数修改为如下 JSON,然后单击开始测试

    {
    "DATASOURCE_ID": "ds-xxxxxxxxxxxx",
    "DB_ID": "",
    "DB_TYPE": "",
    "POSITION": {
    "index": "",
    "lastTaskEndTime": "",
    "sort": ""
    }
    }
    配置项是否必填说明
    DATASOURCE_ID填写目标 Elasticsearch 数据源 ID。
    DB_ID如果需要按业务库过滤,并且 Elasticsearch 文档中存在 dbId 字段,可填写该值;首次测试建议留空。
    DB_TYPE如果需要按数据库类型过滤,并且 Elasticsearch 文档中存在 dbType 字段,可填写该值;首次测试建议留空。
    POSITION断点信息。首次测试时可保持空字符串;断点续测时可复用上一次返回结果中的 position
  5. 测试成功后,在返回信息中可以看到返回的慢日志数据;同时当前步骤状态会显示为测试通过测试通过

    slow_query_external_test_pass_20260312

  6. 单击关闭关闭测试弹窗。

步骤四:确认配置状态

返回编辑抽屉后,确认以下信息:

  • MySQL 页签后方显示测试通过
  • 采集慢日志步骤后方显示测试通过

确认无误后,单击确定保存或退出当前编辑页面。

slow_query_external_edit_pass_20260312

常见问题

现象排查建议
提示慢日志存储数据源未找到检查 DATASOURCE_ID 是否填写了正确的数据源 ID。
测试成功但返回数据为空先保持 DB_IDDB_TYPE 为空重试;如果仍为空,再检查外部日志写入格式是否符合脚本预期。
需要断点续测从上一次返回结果中复制 position,作为下一次测试的 POSITION 值继续使用。