简而言之使用 OTel
filelog receiver 在 ClickStack 中采集并可视化 Redis 服务器日志。包含演示数据集和预构建仪表盘。与现有 Redis 集成
前置条件
- 正在运行的 ClickStack 实例
- 已安装 Redis (3.0 或更高版本)
- 可访问 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.conf 将其配置为写入文件:创建自定义 OTel collector 配置
ClickStack 支持通过挂载自定义配置文件并设置环境变量来扩展基础 OpenTelemetry Collector 配置。自定义配置会与 HyperDX 通过 OpAMP 管理的基础配置合并。创建一个名为redis-monitoring.yaml 的文件,内容如下:- 从 Redis 日志的标准位置读取日志
- 使用正则表达式解析 Redis 的日志格式,提取结构化字段 (
pid、role、timestamp、log_level、message) - 添加
source: redis属性,便于在 HyperDX 中进行过滤 - 通过专用管道将日志路由到 ClickHouse 导出器
- 你只需在自定义配置中定义新的 receiver 和管道
- 处理器 (
memory_limiter、transform、batch) 和导出器 (clickhouse) 已在基础 ClickStack 配置中定义——你只需按名称引用它们 time_parseroperator 会从 Redis 日志中提取时间戳,以保留原始日志时间- 此配置使用
start_at: beginning,因此 collector 启动时会读取所有现有日志,让你能立即看到日志。对于希望避免 collector 重启时重复摄取日志的生产部署,请改为start_at: end。
配置 ClickStack 以加载自定义配置
要在现有的 ClickStack 部署中启用自定义 collector 配置,你必须:- 将自定义配置文件挂载到
/etc/otelcol-contrib/custom.config.yaml - 设置环境变量
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - 挂载 Redis 的日志目录,以便 collector 读取这些日志
选项 1:Docker Compose
更新 ClickStack 部署配置:选项 2:Docker Run (一体化镜像)
如果你使用 Docker 的一体化镜像,请运行:确保 ClickStack collector 具备读取 Redis 日志文件所需的适当权限。在生产环境中,请使用只读挂载 (
:ro) ,并遵循最小权限原则。在 HyperDX 中验证日志
配置完成后,登录 HyperDX,确认日志已开始流入:演示数据集
使用演示配置运行 ClickStack
使用演示日志和配置运行 ClickStack:这会将日志文件直接挂载到容器中。这么做是为了使用静态演示数据进行测试。
在 HyperDX 中验证日志
ClickStack 运行后:- 打开 HyperDX 并登录你的账户 (你可能需要先创建账户)
- 进入搜索视图,并将 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 小时,以获得更清晰的可视化效果。
仪表盘与可视化
仪表盘配置
导入预构建仪表盘
- 打开 HyperDX,进入“仪表盘”部分。
- 点击右上角省略号菜单中的“Import Dashboard”。
- 上传 redis-logs-dashboard.json 文件,然后点击 Finish Import。
系统将创建一个已预先配置好所有可视化的仪表盘
对于演示数据集,请将时间范围设置为 2025-10-27 10:00:00 - 2025-10-28 10:00:00 (UTC) (根据你的本地时区进行调整) 。默认情况下,导入的仪表盘不会预先指定时间范围。
故障排查
自定义配置未生效
HyperDX 中没有显示日志
日志未正确解析
regex_parser 操作符中的正则表达式模式。标准格式如下:
pid:role timestamp level message- 示例:
12345:M 28 Oct 2024 14:23:45.123 * Server started