跳转到主要内容
简而言之使用 OpenTelemetry Collector 的 journald receiver 在 ClickStack 中采集并可视化 systemd journal 中的日志。包含演示数据集和预置仪表板。

与现有系统集成

运行启用了 journald receiver 的 OpenTelemetry Collector,收集系统日志,并通过 OTLP 将其发送到 ClickStack,以监控现有 Linux 系统的 journald 日志。 如果您想先测试此集成,而不修改现有设置,请跳转到演示数据集部分
前置条件
  • 正在运行的 ClickStack 实例
  • 使用 systemd 的 Linux 系统 (Ubuntu 16.04+、CentOS 7+、Debian 8+)
  • 在受监控系统上安装了 Docker 或 Docker Compose
1

获取 ClickStack API key

OpenTelemetry Collector 会将数据发送到 ClickStack 的 OTLP 端点,而该端点需要进行身份验证。
  1. 在你的 ClickStack URL 中打开 HyperDX (例如 http://localhost:8080)
  2. 创建账户,或按需登录
  3. 进入 Team Settings → API Keys
  4. 复制你的 摄取 API key
  1. 将其设置为环境变量:
2

验证 systemd journal 是否正在运行

请确保你的系统使用的是 systemd,并且存在 journal 日志:
如果 journal 仅存储在内存中,请启用持久化存储:
3

创建 OpenTelemetry Collector 配置

为 OpenTelemetry Collector 创建配置文件:
4

使用 Docker Compose 部署

journald receiver 需要 journalctl binary 才能读取 journal 文件。官方 otel/opentelemetry-collector-contrib image 默认不包含 journalctl对于容器化部署,你可以直接在宿主机上安装 collector,或者构建包含 systemd utilities 的自定义 image。详情请参阅故障排查部分
以下示例展示了如何将 OTel collector 与 ClickStack 一起部署:
启动服务:
5

在 HyperDX 中验证日志

配置完成后,登录 HyperDX 并确认日志已开始流入:
  1. 进入搜索视图
  2. 将 source 设置为 Logs
  3. service.name:systemd-logs 进行过滤
  4. 你应该能看到结构化日志条目,其中包含 unitpriorityMESSAGE_HOSTNAME 等字段

演示数据集

对于希望在配置生产系统之前先测试 systemd 日志集成的用户,我们提供了一个预先生成的 systemd 日志样本数据集,其中包含逼真的日志模式。
1

下载样本数据集

下载样本日志文件:
2

创建演示 collector 配置

为演示创建配置文件:
3

使用演示数据运行 ClickStack

使用演示日志启动 ClickStack:
该演示使用 filelog receiver 处理文本日志,而不是使用 journald,从而避免容器中需要 journalctl
4

在 HyperDX 中验证日志

ClickStack 运行后:
  1. 打开 HyperDX 并登录你的账户
  2. 进入搜索视图,并将 source 设置为 Logs
  3. 将时间范围设置为 2025-11-14 00:00:00 - 2025-11-17 00:00:00
时区显示HyperDX 会按浏览器的本地时区显示时间戳。演示数据覆盖 2025-11-15 00:00:00 - 2025-11-16 00:00:00 (UTC)。更宽的时间范围可确保无论你身在何处,都能看到这些演示日志。

仪表盘与可视化

为帮助你快速开始使用 ClickStack 监控 systemd 日志,我们提供了 systemd journal 数据的核心可视化内容。
1

仪表盘配置

2

导入预置仪表盘

  1. 打开 HyperDX 并进入仪表盘页面
  2. 点击右上角省略号菜单中的 导入仪表盘
  1. 上传 systemd-logs-dashboard.json 文件,然后点击 完成导入
3

查看仪表盘

该仪表盘包含以下可视化内容:
  • 日志量随时间变化趋势
  • 按日志数量排名靠前的 systemd 单元
  • SSH 身份验证事件
  • 服务故障
  • 错误率
对于演示数据集,请将时间范围设置为 2025-11-15 00:00:00 - 2025-11-16 00:00:00 (UTC) (可根据你的本地时区调整) 。

故障排查

HyperDX 中没有显示日志

检查日志是否已写入 ClickHouse:
如果没有结果,请查看 collector 日志:

找不到 journalctl 错误

如果你看到 exec: "journalctl": executable file not found in $PATH otel/opentelemetry-collector-contrib 镜像不包含 journalctl。你可以选择:
  1. 在主机上安装 collector
  1. 使用文本导出方式 (如演示所示) ,让 filelog receiver 读取 journald 导出的内容

后续步骤

  • 为关键系统事件设置告警 (如服务故障、身份验证失败、OOM kill)
  • 针对特定用例创建更多仪表盘 (如 SSH 安全监控、服务健康)
  • 按特定 systemd 单元进行过滤,以减少噪声,并将重点放在重要服务上

投入生产环境

本指南使用独立的 OpenTelemetry Collector 读取 systemd 日志,并将其发送到 ClickStack 的 OTLP 端点,这是推荐的生产环境部署模式。 对于包含多台主机的生产环境,请考虑:
  • 在 Kubernetes 中将 collector 部署为 DaemonSet 守护进程集
  • 在每台主机上将 collector 作为 systemd 服务运行
  • 使用 OpenTelemetry Operator 进行自动化部署
有关生产环境的部署模式,请参阅 使用 OpenTelemetry 摄取数据
最后修改于 2026年7月2日