跳到主要内容

配置慢查询分析的外部采集来源

NineData 支持通过外部采集来源为慢查询分析补充慢日志。目前支持 Elasticsearch 和阿里云来源,适用于慢日志已经汇聚到日志平台,或需要直接从云厂商侧补充慢日志采集的场景。

支持的来源类型

来源类型适用场景说明
Elasticsearch慢日志已统一写入 Elasticsearch适用于日志平台统一汇聚场景。
阿里云慢日志需要从阿里云托管数据库侧采集当前支持阿里云 RDS MySQL、RDS PostgreSQL、PolarDB for MySQL、PolarDB for PostgreSQL。

前提条件

  • 已创建或加入组织,并且该组织已开通数据库 DevOps 专业版数据库 DevOps 企业版,同时请确保您的包年包月订阅未过期。更多信息,请参见管理组织
  • 当前账号已切换到目标组织。更多信息,请参见切换到组织
  • 当前账号具有慢查询分析的访问权限。
  • 如果使用 Elasticsearch 来源:
    • 已将 Elasticsearch 数据源录入到 NineData。
    • 目标 Elasticsearch 中已写入符合 NineData 外部采集脚本要求的慢日志数据。
  • 如果使用阿里云来源:
    • 已在 NineData 中配置阿里云云厂商访问凭证。更多信息,请参见配置云厂商访问凭证
    • 已录入目标阿里云数据源,建议优先通过阿里云入口创建或绑定对应实例。
    • 已确认实例所在地域以及实例 ID 信息,避免测试时因 RegionIdDBInstanceIdDBClusterId 缺失导致失败。

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

  1. 登录 NineData 控制台

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

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

    slow_query_external_tab_20260312

来源一:Elasticsearch

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

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

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

    参数说明
    来源类型选择 Elasticsearch
    数据源选择目标 Elasticsearch 数据源。本次测试选择的是 外部慢日志来源(ID:ds-dg658uv2j0bt)。
    采集来源名称自定义采集来源名称。
    采集来源描述选填,填写采集来源说明。
    采集定义配置保持默认生成的 MySQL 配置页签。
    开启配置保持开启。
  3. 单击确定完成创建。

    slow_query_external_create_20260312

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

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

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

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

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

    {
    "DATASOURCE_ID": "ds-dg658uv2j0bt",
    "DB_ID": "",
    "DB_TYPE": "",
    "POSITION": {
    "index": "",
    "lastTaskEndTime": "",
    "sort": ""
    }
    }

    如果您是第一次接触该功能,建议直接使用上面的最简测试配置。该配置的目标不是立刻做精细过滤,而是先验证:

    • NineData 能否正常连接目标 Elasticsearch 数据源
    • Elasticsearch 中是否存在可被脚本识别的慢日志数据
    • 当前采集脚本是否能够正确返回 datahasNextposition 等结果

    每个配置项为什么要这么填?

    配置项是否必填本次测试值值从哪里获取为什么这样配
    DATASOURCE_IDds-dg658uv2j0bt从目标数据源详情页 URL 获取。
    例如本次测试的数据源详情地址为 /configuration/datasource/detail/ds-dg658uv2j0bt,路径最后一段就是数据源 ID。
    这是最关键的参数。脚本需要通过它绑定实际的 Elasticsearch 连接。如果留空,测试会直接返回“慢日志存储数据源未找到”。
    DB_ID空字符串通常由慢日志写入 Elasticsearch 的上游系统提供。如果您不确定是否有该字段,可以先留空。脚本只有在该值非空时,才会把它作为 dbId 过滤条件加到 Elasticsearch 查询中。首次测试时留空,可以避免因为过滤条件过严导致查不到数据。
    DB_TYPE空字符串通常由慢日志写入 Elasticsearch 的上游系统提供。如果您不确定是否有该字段,可以先留空。脚本只有在该值非空时,才会把它作为 dbType 过滤条件加到 Elasticsearch 查询中。首次测试时留空,更适合先验证链路是否通。
    POSITION.index空字符串首次测试可留空;若后续需要断点续测,可从上一次测试或采集结果中的 position.index 获取。表示当前处理到的 Elasticsearch 索引名。首次测试的目标是验证功能可用,因此不需要指定断点索引。
    POSITION.lastTaskEndTime空字符串首次测试可留空;若后续需要增量验证,可从上一次返回结果中的 position.lastTaskEndTime 获取。表示上次处理到的时间断点。留空时,脚本按“首次采集”逻辑执行,不会因为断点条件错误而漏掉结果。
    POSITION.sort空字符串首次测试可留空;若后续返回结果中带有该字段,再按返回值回填。该字段属于断点信息的一部分。首次测试无需手工构造。

    推荐的填写策略

    为了让不同角色的人员都能顺利完成配置,建议按如下方式理解和填写:

    • 数据库管理员 / 运维人员:如果您的目标是先确认 Elasticsearch 接入链路无误,请仅填写 DATASOURCE_ID,其余项保持空字符串。
    • 日志平台维护人员 / 中间件开发人员:如果您清楚 Elasticsearch 文档中确实存在 dbIddbType 字段,并且需要只验证某个业务库或某类数据,可再补充 DB_IDDB_TYPE
    • 需要做断点续测的人员:先跑一遍最简测试配置,成功后从返回信息中复制返回的 position,作为下一次测试的 POSITION 值继续使用。

    什么时候需要调整这些值?

    您可以按下表判断是否需要修改默认测试参数:

    场景建议做法
    只是验证功能是否可用仅填写 DATASOURCE_ID,其他保持空。
    测试结果提示“慢日志存储数据源未找到”检查 DATASOURCE_ID 是否填写了正确的数据源 ID。
    测试结果为空,但您确认 Elasticsearch 中有数据先保持 DB_IDDB_TYPE 为空重试;如果仍为空,再检查外部日志写入格式是否符合脚本预期。
    只想验证某个业务库的数据在确认 ES 文档中存在 dbId 字段后,再填写 DB_ID
    只想验证某种数据库类型的数据在确认 ES 文档中存在 dbType 字段后,再填写 DB_TYPE
    想模拟后续任务的断点续跑复用上一次返回结果中的 position

    本次实测结论

    本次测试中,以下配置可以直接通过:

    • DATASOURCE_ID:填写 ds-dg658uv2j0bt
    • DB_ID:留空
    • DB_TYPE:留空
    • POSITION:保留空对象结构

    也就是说,对于大多数首次接入的用户,只要先把 DATASOURCE_ID 填对,就可以完成测试验证。

  5. 测试成功后,在返回信息中可以看到返回的慢日志数据;同时当前步骤状态会显示为测试通过测试通过

    slow_query_external_test_pass_20260312

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

步骤四:确认配置状态

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

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

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

slow_query_external_edit_pass_20260312

Elasticsearch 实测结果

本次于 2026 年 3 月 12 日使用 Elasticsearch 数据源 ds-dg658uv2j0bt 执行测试后:

  • NineData 成功连接 Elasticsearch 数据源。
  • NineData 成功读取外部慢日志数据。
  • 返回信息中返回了多条慢日志记录。
  • 返回结果中包含 datahasNextposition 等字段。

这表明 Elasticsearch 作为外部采集来源的来源类型已支持正常使用。

来源二:阿里云

阿里云来源适用范围

阿里云来源适用于直接从阿里云托管数据库侧补充慢日志采集的场景,当前支持如下实例类型:

  • RDS MySQL
  • RDS PostgreSQL
  • PolarDB for MySQL
  • PolarDB for PostgreSQL

步骤二:创建阿里云外部采集来源

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

  2. 在右侧抽屉中完成基本配置:

    参数说明
    来源类型选择阿里云。
    关联数据源选择目标阿里云实例对应的数据源。建议优先选择通过阿里云入口创建的数据源。
    采集来源名称自定义采集来源名称。
    采集来源描述选填,填写采集来源说明。
  3. 创建完成后,系统会生成授权采集慢日志两个步骤,后续需要分别完成测试。

步骤三:完成阿里云授权配置

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

  2. 授权步骤中,优先确认以下内容:

    检查项说明
    云厂商访问凭证需选择已配置的阿里云访问凭证。若缺失,页面会提示“云访问凭证不存在”或“访问凭证类型不支持”。
    RegionId必填。请填写实例所在阿里云地域,例如 cn-hangzhou。缺失时页面会提示“缺少RegionId参数”或“需要参数:RegionId”。
    实例 ID请根据实例类型填写对应参数。RDS 实例通常使用 DBInstanceId,PolarDB 集群通常使用 DBClusterId;部分场景页面会直接要求补齐 instance_id
    提示

    如果页面没有自动带出地域或实例标识,请直接以阿里云控制台中的实际参数为准进行补齐。

  3. 如果编辑页或测试弹窗提示“阿里云RDS客户端连接失败,若绑定的数据源不是通过云厂商入口创建,慢日志采集默认采用RDS连接”,请优先检查:

    • 当前绑定的数据源是否通过阿里云入口创建。
    • 访问凭证是否具备访问目标实例的权限。
    • 当前实例 ID 与地域是否填写正确。

步骤四:测试阿里云慢日志采集

  1. 采集慢日志步骤右侧,单击测试

  2. 按页面提示完成测试,并重点确认以下结果:

    • 授权步骤状态正常。
    • 采集慢日志步骤可以正常发起测试。
    • 测试成功后,步骤状态显示为测试通过测试通过
  3. 如果测试失败,可优先按下表排查:

    报错或现象排查建议
    云访问凭证不存在先在 NineData 中创建阿里云云厂商访问凭证。
    缺少 RegionId补齐实例所在地域。
    需要实例 ID:DBInstanceId / DBClusterId / instance_id按实例类型补齐对应的实例标识。
    阿里云连接验证失败检查访问凭证、地域、实例 ID 是否匹配。
    阿里云 RDS 客户端连接失败优先检查数据源是否通过云厂商入口创建;若不是,确认系统是否按 RDS 连接方式访问且参数填写正确。

阿里云来源补充说明

  • 阿里云来源的采集链路至少包含授权采集慢日志两个步骤,建议先完成授权校验,再执行采集测试。
  • 如果您同时维护多种阿里云实例,建议按实例类型记录好地域和实例 ID,避免不同实例之间参数混用。
  • 若目标实例已经通过阿里云入口录入 NineData,通常更容易自动带出或校验地域与实例信息。