使用 ClickStack 监控 MySQL 日志
本指南演示如何通过配置 OpenTelemetry collector 来摄取 MySQL 服务器日志,从而使用 ClickStack 监控 MySQL。你将了解如何:
- 配置 MySQL 输出错误日志和慢查询日志
- 为日志摄取创建自定义 OTel collector 配置
- 使用自定义配置部署 ClickStack
- 使用预构建的仪表板可视化 MySQL 日志洞察(错误、慢查询、连接)
如果你希望在配置生产环境 MySQL 之前先测试集成,可以使用提供的包含示例日志的演示数据集。
预计耗时:10–15 分钟
与现有 MySQL 集成
本节介绍如何通过修改 ClickStack OTel collector 配置,将现有 MySQL 实例的日志发送到 ClickStack。
如果希望在配置自己的现有环境之前先测试 MySQL 日志集成功能,可以在"演示数据集"章节中使用我们预配置的环境和示例数据进行测试。
前提条件
- 正在运行的 ClickStack 实例
- 已有的 MySQL 安装(版本 5.7 或更高)
- 具备访问并修改 MySQL 配置文件的权限
- 为日志文件预留的充足磁盘空间
配置 MySQL 日志
MySQL 支持多种日志类型。为实现使用 OpenTelemetry 的全面监控,建议启用错误日志和慢查询日志。
my.cnf 或 my.ini 配置文件通常位于:
- Linux(apt/yum):
/etc/mysql/my.cnf或/etc/my.cnf - macOS(Homebrew):
/usr/local/etc/my.cnf或/opt/homebrew/etc/my.cnf - Docker:通常通过环境变量或挂载的配置文件来完成配置
在 [mysqld] 部分中添加或修改这些设置:
慢查询日志会捕获执行时间超过 long_query_time 秒的查询。请根据应用程序的性能要求调整此阈值。如果设置得过低,会产生过多的日志。
完成上述更改后,重启 MySQL:
验证日志正在被写入:
创建自定义 OTel collector 配置
ClickStack 允许您通过挂载自定义配置文件并设置环境变量来扩展 OpenTelemetry Collector 的基础配置。自定义配置会与 HyperDX 通过 OpAMP 管理的基础配置进行合并。
创建名为 mysql-logs-monitoring.yaml 的文件,配置如下:
该配置:
- 从 MySQL 的默认位置读取错误日志和慢查询日志
- 支持多行日志条目(慢查询通常会跨多行)
- 可解析这两种日志格式,从中提取结构化字段(level、error_code、query_time、rows_examined)
- 保留日志原始时间戳
- 添加
source: mysql-error和source: mysql-slow属性,以便在 HyperDX 中进行过滤 - 通过专用管道将日志路由到 ClickHouse 导出器
需要两个接收器,因为 MySQL 错误日志和慢查询日志的格式完全不同。time_parser 使用 gotime 布局来处理 MySQL 的 ISO8601 时间戳格式(包含时区偏移)。
配置 ClickStack 加载自定义配置
要在现有 ClickStack 部署中启用自定义采集器配置,请将自定义配置文件挂载至 /etc/otelcol-contrib/custom.config.yaml,并设置环境变量 CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml。
更新您的 ClickStack 部署配置:
确保 ClickStack 采集器具有读取 MySQL 日志文件的相应权限。使用只读挂载(:ro)并遵循最小权限原则。
在 HyperDX 中验证日志
配置完成后,登录 HyperDX 并验证日志是否正常流入:
- 进入搜索视图
- 将 Source 设置为 Logs
- 按
source:mysql-error或source:mysql-slow过滤,以查看特定于 MySQL 的日志 - 你应当会看到结构化的日志记录,其中包含
level、error_code、message(针对错误日志)以及query_time、rows_examined、query(针对慢查询日志)等字段。


演示数据集
对于希望在配置生产系统之前先测试 MySQL 日志集成的用户,我们提供了一个包含预生成 MySQL 日志的示例数据集,这些日志具有逼真的模式。
在 HyperDX 中验证日志
ClickStack 运行后:
- 稍等片刻,让 ClickStack 完成初始化(通常需要 30–60 秒)
- 打开 HyperDX,并登录您的账户(如有需要,先创建一个账户)。
- 在 Search 视图中,将 Source 设置为
Logs - 将时间范围设为 2025-11-13 00:00:00 - 2025-11-16 00:00:00
- 你应该能看到总共 40 条日志(30 条带有
source:mysql-demo-error的错误日志 + 10 条带有source:mysql-demo-slow的慢查询)
如果您没有立即看到全部 40 条日志,请等待约一分钟让采集器完成处理。如果等待后日志仍未显示,请运行 docker restart clickstack-demo 命令,然后再等待一分钟后检查。这是 OpenTelemetry filelog 接收器在使用 start_at: beginning 批量加载已存在文件时的已知问题。生产环境部署使用 start_at: end 配置时会实时处理写入的日志,不会出现此问题。


HyperDX 会以您浏览器的本地时区显示时间戳。演示数据的时间跨度为 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC)。较宽的时间范围可确保您无论身处何地都能看到演示日志。查看日志后,您可以将时间范围缩小至 24 小时,以获得更清晰的可视化效果。
仪表板和可视化
为了帮助你开始使用 ClickStack 监控 MySQL,我们提供了用于 MySQL 日志的关键可视化图表。
导入预构建的仪表板
- 打开 HyperDX 并导航到 Dashboards 部分
- 点击右上角省略号下的 Import Dashboard

- 上传
mysql-logs-dashboard.json文件并点击 Finish Import

查看仪表板
系统会创建一个仪表板,并预先配置好所有可视化图表。

对于演示数据集,将时间范围设置为 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC)(根据你的本地时区进行调整)。导入的仪表板默认不会指定时间范围。
故障排查
自定义配置未生效
确认已设置环境变量:
检查自定义配置文件是否已挂载并可读:
HyperDX 中未显示任何日志
检查实际生效的配置中是否包含 filelog receiver:
检查采集器日志中是否存在错误:
如果使用演示数据集,请确保日志文件是可访问的:
慢查询日志未出现
确认在 MySQL 中已启用慢查询日志:
检查 MySQL 是否正在写入慢查询日志:
生成一条用于测试的慢查询:
日志未正确解析
请确认您的 MySQL 日志格式与预期格式一致。本指南中的正则表达式模式是针对 MySQL 5.7+ 和 8.0+ 默认格式设计的。
检查错误日志中的几行示例:
期望的格式:
如果格式存在较大差异,请在配置中相应调整正则表达式模式。
后续步骤
在完成 MySQL 日志监控配置后:
- 为关键事件(连接失败、超过阈值的慢查询、错误激增)设置告警
- 按查询模式创建自定义仪表板,用于慢查询分析
- 根据实际观测到的查询性能特征调优
long_query_time
进入生产环境
本指南在 ClickStack 内置的 OpenTelemetry Collector 基础上,实现快速上手配置。对于生产环境部署,建议自行运行 OTel Collector,并将数据发送到 ClickStack 的 OTLP 端点。生产环境配置请参阅发送 OpenTelemetry 数据。