配置 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 写入、删除或索引管理权限。
步骤一:进入外部采集来源页面
登录 NineData 控制台。
在左侧导航栏,单击数据库 DevOps > 慢查询分析。
在页面上方页签中,单击外部采集来源。
步骤二:创建 Elasticsearch 外部采集来源
在外部采集来源页签,单击创建外部采集来源。
在右侧抽屉中完成如下配置。
参数 说明 来源类型 选择 Elasticsearch。数据源 选择目标 Elasticsearch 数据源。 采集来源名称 自定义采集来源名称。 采集来源描述 选填,填写采集来源说明。 采集定义配置 保持默认生成的 MySQL配置页签。开启配置 保持开启。 单击确定完成创建。

步骤三:测试采集定义配置
返回外部采集来源列表,找到目标采集来源,单击右侧编辑。
在采集定义配置区域,确认当前页签显示为
MySQL,并且开启配置已开启。在采集慢日志这一行右侧,单击测试。
在测试弹窗的输入信息中,将默认示例参数修改为如下 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。测试成功后,在返回信息中可以看到返回的慢日志数据;同时当前步骤状态会显示为测试通过或测试通过。

单击关闭关闭测试弹窗。
步骤四:确认配置状态
返回编辑抽屉后,确认以下信息:
MySQL页签后方显示测试通过。- 采集慢日志步骤后方显示测试通过。
确认无误后,单击确定保存或退出当前编辑页面。

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