简而言之使用 OTel
filelog 接收器在 ClickStack 中采集并可视化主机系统日志 (syslog、auth、kernel) 。包含演示数据集和预置仪表板。与现有主机集成
前置条件
- 正在运行的 ClickStack 实例
- 包含 syslog 文件的系统
- 具备修改 ClickStack 配置文件的权限
1
验证 syslog 文件是否存在
首先,确认系统正在写入 syslog 文件:- Ubuntu/Debian:
/var/log/syslog - RHEL/CentOS/Fedora:
/var/log/messages - macOS:
/var/log/system.log
2
创建自定义 OTel collector 配置
ClickStack 支持通过挂载自定义配置文件并设置环境变量来扩展基础 OpenTelemetry Collector 配置。创建一个名为host-logs-monitoring.yaml 的文件,并填入适用于您系统的配置:- 现代 Linux(Ubuntu 24.04+)
- 传统 Linux(Ubuntu 20.04、RHEL、CentOS)
- macOS
所有配置:
- 从标准路径读取 syslog 文件
- 解析 syslog 格式,提取结构化字段 (时间戳、主机名、单元/服务、PID、消息)
- 保留原始日志时间戳
- 添加
source: host-logs属性,以便在 HyperDX 中筛选 - 通过专用管道将日志发送到 ClickHouse exporter
- 你只需在自定义配置中定义新的 receiver 和管道
- 处理器 (
memory_limiter、transform、batch) 和 exporter (clickhouse) 已在 ClickStack 基础配置中定义,你只需按名称引用它们 - regex parser 会从 syslog 格式中提取 systemd 单元名称、PID 及其他元数据
- 此配置使用
start_at: end,以避免在 collector 重启后重复摄取日志。测试时,可改为start_at: beginning,以便立即查看历史日志。
3
配置 ClickStack 以加载自定义配置
要在现有的 ClickStack 部署中启用自定义 collector 配置,您必须:- 将自定义配置文件挂载到
/etc/otelcol-contrib/custom.config.yaml - 设置环境变量
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - 挂载 syslog 目录,以便 collector 能够读取其中的内容
选项 1:Docker Compose
更新 ClickStack 的部署配置:选项 2:Docker Run (All-in-One 镜像)
如果你使用 docker run 运行 All-in-One 镜像:确保 ClickStack collector 具有读取 syslog 文件所需的适当权限。在生产环境中,应使用只读挂载 (
:ro) ,并遵循最小权限原则。4
在 HyperDX 中验证日志
配置完成后,登录 HyperDX 并确认日志已开始流入:- 进入搜索视图
- 将 source 设置为 Logs
- 使用
source:host-logs作为过滤条件,以查看主机日志 - 你应该会看到结构化的日志条目,其中包含
unit、hostname、pid、message等字段
演示数据集
1
下载样本数据集
下载样本日志文件:- 系统启动序列
- SSH 登录活动 (成功和失败的尝试)
- 安全事件 (暴力破解攻击及 fail2ban 响应)
- 计划维护 (cron 作业、anacron)
- 服务重启 (rsyslog)
- 内核消息和防火墙活动
- 正常操作与重要事件混合出现
2
3
仪表盘与可视化
1
仪表盘配置
2
导入预构建仪表盘
- 打开 HyperDX 并进入仪表盘部分
- 点击右上角省略号菜单中的 Import Dashboard
- 上传
host-logs-dashboard.json文件,然后点击 Finish Import
3
查看仪表盘
该仪表盘创建后将自动预配置好所有可视化:关键可视化包括:- 按严重级别划分的日志量时间趋势
- 产生日志最多的 systemd 单元
- SSH 登录活动 (成功与失败)
- 防火墙活动 (已拦截与已放行)
- 安全事件 (登录失败、封禁、拦截)
- 服务重启活动
对于演示数据集,请将时间范围设置为 2025-11-11 00:00:00 - 2025-11-12 00:00:00 (UTC) (根据你的本地时区进行调整) 。默认情况下,导入的仪表盘不会预设时间范围。
故障排查
自定义配置未加载
HyperDX 中没有显示日志
日志解析不正确
后续步骤
- 为关键系统事件 (服务故障、身份验证失败、磁盘警告) 设置告警
- 按特定单元筛选,以监控特定服务
- 关联主机日志与应用程序日志,以便进行更全面的故障排查
- 为安全监控 (SSH 尝试、sudo 使用情况、防火墙拦截) 创建自定义仪表盘