使用 ClickStack 监控 EC2 主机日志
通过在实例上安装 OpenTelemetry Collector,使用 ClickStack 监控 EC2 系统日志。Collector 会自动为日志添加 EC2 元数据(实例 ID、区域、可用区、实例类型)。本文将介绍如何:
- 在 EC2 实例上安装和配置 OpenTelemetry Collector
- 自动使用 EC2 元数据丰富日志
- 通过 OTLP 将日志发送到 ClickStack
- 使用预构建的仪表盘,在云环境上下文中可视化 EC2 主机日志
我们提供了一个包含示例日志和模拟 EC2 元数据的演示数据集,可用于测试。
所需时间:10–15 分钟
与现有 EC2 实例集成
本节介绍如何在 EC2 实例上安装 OpenTelemetry Collector,用于收集系统日志并将其发送到 ClickStack,并自动补充 EC2 元数据。此分布式架构已准备好用于生产环境,并可扩展到多个实例。
如果 ClickStack 运行在与需要监控日志的同一台 EC2 实例上,可以使用与 通用主机日志指南 类似的一体化方案。将 /var/log 挂载到 ClickStack 容器中,并在自定义配置中添加 resourcedetection 处理器,即可自动捕获 EC2 元数据。本文主要关注在生产环境中更常见的分布式架构部署方式。
如果希望在为生产实例进行配置之前先测试 EC2 主机日志集成,可以在 "Demo dataset" 部分使用我们预配置的环境和示例数据进行测试。
前提条件
- 已有正在运行的 ClickStack 实例(可为本地数据中心部署、Cloud 或本地开发环境)
- 已有正在运行的 EC2 实例(Ubuntu、Amazon Linux 或其他 Linux 发行版)
- 从 EC2 实例到 ClickStack 的 OTLP 端点具备网络连通性(HTTP 使用端口 4318,gRPC 使用端口 4317)
- 可访问 EC2 实例元数据服务(默认启用)
验证 EC2 元数据是否可访问
从您的 EC2 实例验证元数据服务是否可访问:
您应该能看到实例 ID、区域和实例类型。如果这些命令失败,请检查:
- 实例元数据服务已启用
- IMDSv2 不会被安全组或网络 ACL 阻断
- 这些命令需要在 EC2 实例上直接运行
EC2 元数据可在实例内通过 http://169.254.169.254 访问。OpenTelemetry resourcedetection 处理器使用此端点自动为日志enrichment云上下文信息。
创建采集器配置
在 /etc/otelcol-contrib/config.yaml 创建 OpenTelemetry Collector 的配置文件:
根据您的 Linux 发行版选择配置:
- 现代 Linux(Ubuntu 24.04+)
- 旧版 Linux(Amazon Linux 2、RHEL、旧版 Ubuntu)
在配置中替换以下内容:
YOUR_CLICKSTACK_HOST: ClickStack 所在的主机名或 IP 地址- 在本地测试时,可以使用 SSH 隧道(参见故障排除部分)。
此配置:
- 从标准路径读取系统日志文件(Ubuntu 为
/var/log/syslog,Amazon Linux/RHEL 为/var/log/messages) - 解析 syslog 格式以提取结构化字段(时间戳、主机名、单元/服务、PID、消息)
- 通过
resourcedetection处理器自动检测并添加 EC2 元数据 - 如有,则可选包含 EC2 标签(Name、Environment、Team)
- 使用 OTLP over HTTP 将日志发送到 ClickStack
resourcedetection 处理器会自动将这些属性添加到每条日志中:
cloud.provider: "aws"cloud.platform: "aws_ec2"cloud.region:AWS 区域(例如 "us-east-1")cloud.availability_zone: 可用区(AZ,例如:"us-east-1a")cloud.account.id: AWS 账户 IDhost.id: EC2 实例 ID(例如:"i-1234567890abcdef0")host.type: 实例类型(例如:"t3.medium")host.name: 实例的主机名
设置 ClickStack API 密钥
将您的 ClickStack API 密钥导出为环境变量:
要使其在重启后持久生效,请将其添加到您的 shell 配置文件中:
运行采集器
启动 OpenTelemetry Collector:
将收集器配置为 systemd 服务运行,使其能够在系统启动时自动启动,并在发生故障时自动重启。详情请参阅 OpenTelemetry Collector 文档。
在 HyperDX 中验证日志
收集器运行后,登录 HyperDX 并验证日志是否正常流入且包含 EC2 元数据:
- 进入搜索视图
- 将 Source 设置为
Logs - 按
source:ec2-host-logs过滤 - 单击某条日志记录以展开详情
- 验证是否能在资源属性中看到 EC2 元数据:
cloud.providercloud.regionhost.id(实例 ID)host.type(实例类型)cloud.availability_zone


演示数据集
对于希望在配置生产实例之前先测试 EC2 主机日志集成的用户,我们提供一个包含模拟 EC2 元数据的样本数据集。
下载示例数据集
下载示例日志文件:
数据集包括:
- 系统启动顺序
- SSH 登录活动(成功和失败的登录尝试)
- 安全事件(暴力破解攻击以及 fail2ban 的响应)
- 计划维护(cron 定时任务、anacron)
- 重启服务(rsyslog)
- 内核日志和防火墙活动
- 正常操作与重要事件的混合
创建测试采集器配置
创建名为 ec2-host-logs-demo.yaml 的文件,包含以下配置:
出于演示目的,我们使用 resource 处理器手动添加 EC2 元数据。在生产环境中使用真实 EC2 实例时,应使用 resourcedetection 处理器,该处理器会自动查询 EC2 元数据 API。
在 HyperDX 中验证日志
收集器运行后:
- 打开 HyperDX,并登录到您的账户(如有需要,请先创建一个账户)。
- 进入搜索视图,将来源设置为
Logs - 将时间范围设置为 2025-11-10 00:00:00 - 2025-11-13 00:00:00
- 按
source:ec2-demo筛选 - 展开某条日志记录,在资源属性中查看 EC2 元数据


HyperDX 以您浏览器的本地时区显示时间戳。演示数据的时间跨度为 2025-11-11 00:00:00 - 2025-11-12 00:00:00 (UTC)。较宽的时间范围可确保您无论身处何地都能查看到演示日志。查看日志后,您可以将时间范围缩小至 24 小时,以获得更清晰的可视化效果。
您应该能看到包含模拟 EC2 上下文的日志,包括:
- 实例 ID:
i-0abc123def456789 - 区域:
us-east-1 - 可用区:
us-east-1a - 实例类型:
t3.medium
仪表盘与可视化
为了帮助你开始使用 ClickStack 监控 EC2 主机日志,我们提供了带有云环境上下文的基础可视化视图。
导入预构建的仪表盘
- 打开 HyperDX 并进入 Dashboards 页面
- 点击右上角省略号下的 Import Dashboard

- 上传
host-logs-dashboard.json文件并点击 Finish Import

查看仪表盘
系统会创建一个仪表盘,其中所有可视化视图都已预先配置:

你可以按 EC2 上下文筛选仪表盘中的可视化视图:
cloud.region:us-east-1- 显示来自特定区域的日志host.type:t3.medium- 按实例类型筛选host.id:i-0abc123def456- 来自特定实例的日志
对于演示数据集,将时间范围设置为 2025-11-11 00:00:00 - 2025-11-12 00:00:00 (UTC)(根据你的本地时区进行调整)。导入的仪表盘默认不会指定时间范围。
故障排除
日志中未出现 EC2 元数据
确认 EC2 元数据服务可访问:
如果这一步失败,请确认:
- 实例元数据服务已启用
- IMDSv2 未被安全组阻止
- 您是在 EC2 实例本机上运行 collector
在 collector 日志中检查元数据相关错误:
HyperDX 中未显示日志
检查 syslog 文件是否存在并正在写入:
检查 Collector 是否能够读取日志文件:
验证到 ClickStack 的网络连接:
检查 Collector 日志中是否存在错误:
日志解析错误
检查你的 syslog 格式:
适用于 Ubuntu 24.04 及更高版本:
适用于 Amazon Linux 2 和 Ubuntu 20.04:
如果你的格式不匹配,请根据你使用的发行版,在创建 collector 配置部分中选择相应的配置标签页。
Collector 作为 systemd 服务未启动
检查服务状态:
查看详细日志:
常见问题:
- 环境中未正确设置 API 密钥
- 配置文件语法错误
- 读取日志文件时的权限问题
后续步骤
在完成 EC2 主机日志监控的设置后:
- 为关键系统事件(服务故障、身份验证失败、磁盘告警)配置告警
- 按 EC2 元数据属性(区域、实例类型、实例 ID)进行过滤,以监控特定资源
- 将 EC2 主机日志与应用日志进行关联,实现全面故障排查
- 创建用于安全监控的自定义仪表盘(SSH 尝试、sudo 使用情况、防火墙拦截)