简而言之使用 OTel
filelog 接收器在 ClickStack 中收集并可视化 MongoDB 服务器日志 (4.4+ JSON 格式) 。包含演示数据集和预置仪表盘。与现有 MongoDB 集成
前置条件
- 正在运行的 ClickStack 实例
- 现有的自管理 MongoDB 安装 (4.4 或更高版本)
- 具有访问 MongoDB 日志文件的权限
1
验证 MongoDB 日志配置
MongoDB 4.4+ 默认输出结构化的 JSON 日志。请检查日志文件的位置:- Linux (apt/yum):
/var/log/mongodb/mongod.log - macOS (Homebrew):
/usr/local/var/log/mongodb/mongo.log - Docker: 通常会输出到 stdout,但也可以配置为写入
/var/log/mongodb/mongod.log
mongod.conf,将其配置为写入文件:2
为 MongoDB 创建自定义 OTel collector 配置
ClickStack 支持通过挂载自定义配置文件并设置环境变量来扩展基础 OpenTelemetry Collector 配置。自定义配置会与由 HyperDX 通过 OpAMP 管理的基础配置合并。创建一个名为mongodb-monitoring.yaml 的文件,内容如下:- 你只需在自定义配置中定义新的接收器和管道。处理器 (
memory_limiter、transform、batch) 和导出器 (clickhouse) 已在 ClickStack 的基础配置中定义好——你只需按名称引用即可。 - 此配置使用
start_at: beginning,以便在收集器启动时读取所有现有日志。对于生产环境中的部署,请改为start_at: end,以避免收集器重启时重新摄取日志。
3
配置 ClickStack 以加载自定义配置
要在现有的 ClickStack 部署中启用自定义 collector 配置,您需要:- 将自定义配置文件挂载到
/etc/otelcol-contrib/custom.config.yaml - 设置环境变量
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - 挂载 MongoDB 的日志目录,以便 collector 读取其中的日志
- Docker Compose
- Docker Run (一体化镜像)
更新 ClickStack 部署配置:
请确保 ClickStack collector 具有读取 MongoDB 日志文件的相应权限。在生产环境中,请使用只读挂载 (
:ro) ,并遵循最小权限原则。4
在 HyperDX 中验证日志
配置完成后,登录 HyperDX,确认日志已开始流入:演示数据集
1
2
仪表盘和可视化
1
仪表盘配置
2
导入预建仪表盘
- 打开 HyperDX,进入 Dashboards 部分。
- 点击右上角省略号菜单中的“Import Dashboard”。
- 上传 mongodb-logs-dashboard.json 文件,然后点击完成导入。
3
仪表盘创建后将预先配置好所有可视化项
对于演示数据集,将时间范围设置为 2026-03-09 00:00:00 - 2026-03-10 00:00:00 (UTC)。故障排查
HyperDX 中未显示任何日志
日志解析不正确
json_parser operator 替换为 regex_parser,或者将 MongoDB 升级到 4.4 及以上版本。