使用 ClickStack 监控 Redis 日志
本指南演示如何通过配置 OpenTelemetry collector 来摄取 Redis 服务器日志,从而使用 ClickStack 监控 Redis。你将了解如何:
- 配置 OTel collector 以解析 Redis 日志格式
- 使用自定义配置部署 ClickStack
- 使用预构建的仪表盘可视化 Redis 指标(连接数、命令数、内存、错误)
如果你希望在为生产环境 Redis 配置之前先验证集成效果,可以使用提供的包含示例日志的演示数据集。
预计耗时:5–10 分钟
与现有 Redis 集成
本节介绍如何通过修改 ClickStack OTel collector 配置,将现有的 Redis 实例配置为向 ClickStack 发送日志。 如果希望在配置自己的现有环境之前先测试 Redis 集成,可以在“演示数据集”一节中使用我们预配置的环境和示例数据进行测试。
前置条件
- 正在运行的 ClickStack 实例
- 已安装的 Redis(3.0 或更高版本)
- 可访问 Redis 日志文件
验证 Redis 日志配置
首先,检查您的 Redis 日志配置。连接到 Redis 并检查日志文件位置:
Redis 常见日志位置:
- Linux(apt/yum):
/var/log/redis/redis-server.log - macOS(Homebrew):
/usr/local/var/log/redis.log - Docker:通常会将日志输出到 stdout,但也可以配置为写入
/data/redis.log
如果 Redis 正在将日志输出到 stdout,请通过更新 redis.conf 将其配置为写入文件:
更改配置后,重新启动 Redis:
创建自定义 OTel collector 配置
ClickStack 允许您通过挂载自定义配置文件并设置环境变量来扩展 OpenTelemetry Collector 的基础配置。自定义配置会与 HyperDX 通过 OpAMP 管理的基础配置进行合并。
创建一个名为 redis-monitoring.yaml 的文件,其中包含以下配置:
此配置:
- 从默认位置读取 Redis 日志
- 使用正则表达式解析 Redis 日志格式,以提取结构化字段(
pid、role、timestamp、log_level、message) - 添加
source: redis属性,以便在 HyperDX 中进行筛选 - 通过专用管道将日志转发到 ClickHouse exporter
- 你只需要在自定义配置中定义新的
receivers和pipelines - 处理器(
memory_limiter、transform、batch)和导出器(clickhouse)已经在基础 ClickStack 配置中定义好,只需按名称引用即可。 time_parser运算符从 Redis 日志中提取时间戳,以保留日志的原始时间- 此配置使用
start_at: beginning,在 collector 启动时读取所有已有日志,使你可以立即看到日志。对于生产环境部署,如果希望在 collector 重启时避免重新摄取已有日志,请改为使用start_at: end。
配置 ClickStack 加载自定义配置
要在现有的 ClickStack 部署中启用自定义采集器配置,您必须:
- 将自定义配置文件挂载到
/etc/otelcol-contrib/custom.config.yaml - 设置环境变量
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - 挂载 Redis 日志目录,以便采集器可以读取这些日志
选项 1:Docker Compose
更新您的 ClickStack 部署配置:
选项 2:Docker Run(一体化镜像)
如果您使用 Docker 的一体化镜像,请运行:
确保 ClickStack 采集器具有读取 Redis 日志文件的相应权限。在生产环境中,使用只读挂载(:ro)并遵循最小权限原则。
演示数据集
对于希望在配置生产系统之前先测试 Redis 集成的用户,我们提供了一个预生成的 Redis 日志演示数据集,日志模式接近真实生产场景。
使用演示配置运行 ClickStack
使用演示日志和配置运行 ClickStack:
这会将日志文件直接挂载到容器中。这仅用于基于静态演示数据的测试。
在 HyperDX 中验证日志
当 ClickStack 运行后:
- 打开 HyperDX 并登录到您的账户(如果还没有账户,可能需要先创建一个)
- 进入 Search 视图,并将 source 设置为
Logs - 将时间范围设置为 2025-10-26 10:00:00 - 2025-10-29 10:00:00
HyperDX 会使用浏览器的本地时区显示时间戳。演示数据的时间跨度为 2025-10-27 10:00:00 - 2025-10-28 10:00:00 (UTC)。这里使用较宽的时间范围,以确保无论您处于哪个时区,都能看到演示日志。看到日志后,您可以将范围缩小到 24 小时,以获得更清晰的可视化效果。


仪表盘和可视化
为了帮助你开始使用 ClickStack 监控 Redis,我们提供了用于 Redis 日志的关键可视化图表。
导入预构建仪表盘
- 打开 HyperDX,并导航到 Dashboards 部分。
- 点击右上角省略号菜单中的 "Import Dashboard"。

- 上传 redis-logs-dashboard.json 文件并点击完成导入。

仪表盘将会被创建,并包含所有预先配置好的可视化图表
对于演示数据集,将时间范围设置为 2025-10-27 10:00:00 - 2025-10-28 10:00:00 (UTC)(可根据本地时区进行调整)。导入的仪表盘默认不会指定时间范围。

故障排查
自定义配置未生效
检查环境变量是否已正确设置:
检查自定义配置文件是否已挂载:
查看自定义配置内容:
检查有效配置中是否包含你的 filelog 接收器:
HyperDX 中没有日志显示
确保 Redis 正在将日志写入文件:
确认 Redis 是否正在输出日志:
验证 Collector 是否能够读取日志:
检查 Collector 日志是否有错误:
如果使用 docker-compose,请检查共享卷:
日志解析不正确
检查 Redis 日志格式是否符合预期模式:
如果你的 Redis 日志格式不同,则可能需要调整 regex_parser 算子的正则表达式模式。标准格式为:
pid:role timestamp level message- 示例:
12345:M 28 Oct 2024 14:23:45.123 * Server started
后续步骤
如果你想进一步探索,可以尝试以下与仪表板相关的操作: