日志平台回答“刚才发生了什么”。本文只比较日志的采集、传输、存储、检索和告警,不把指标、Tracing、APM 和网站探活混在同一套选型里。
工具定位
| 方案 | 主要定位 | 适合场景 | 主要代价 |
|---|---|---|---|
| Elastic Stack(ELK) | 搜索型日志平台 | 全文检索、字段聚合和成熟日志分析 | 组件、索引、分片和存储运维较重 |
| OpenSearch | 开源搜索与日志分析 | 希望自托管并保留搜索生态 | 兼容性、插件和集群运维需要评估 |
| Grafana Loki | 标签索引日志后端 | 已使用 Grafana、Prometheus 和 Kubernetes | 复杂全文检索不是强项 |
| OpenObserve | 一体化日志与可观测性平台 | 希望用较少组件统一日志、指标和链路 | 查询、权限、保留策略和升级需验证 |
| Graylog | 日志管理与检索平台 | 需要成熟的日志流、解析和告警界面 | 后端、授权和容量规划需单独评估 |
| Splunk | 企业级日志与安全分析 | 大型组织、安全运营和合规检索 | 成本与治理复杂 |
| Fluent Bit | 节点级采集器 | 容器、主机和边缘节点日志采集 | 不负责长期存储和查询 |
| Vector | 高性能采集与转换 | 需要丰富转换、路由和背压能力 | 仍要另选日志后端 |
| OpenTelemetry Collector | 厂商中立采集与转发 | 统一接收日志、指标和 Tracing | 复杂管道需要治理 |
| Grafana Alloy | Grafana 生态采集器 | Prometheus、Loki、Tempo 和 OTel 组合 | 生态绑定更强 |
| Elastic Agent | Elastic 统一 Agent | 已使用 Elastic Stack 或 Fleet | 对 Elastic 生态依赖更深 |
采集器、日志后端和查询界面是不同层级。Fluent Bit、Vector、OpenTelemetry Collector、Grafana Alloy 和 Elastic Agent 不应直接与 Elasticsearch、Loki 或 OpenObserve 按“谁功能更多”比较。
ELK 与 OpenSearch:搜索优先
Elastic Stack 通常由 Elasticsearch、Logstash、Kibana 和 Beats / Elastic Agent 组成,适合全文检索、复杂字段聚合、日志关联和成熟的分析界面。Logstash 适合复杂转换,简单容器日志转发可以只用 Fluent Bit 或 Elastic Agent。
OpenSearch 提供搜索、分析和 Dashboards 能力,可与 Fluent Bit、Data Prepper 等组件组合。两者选型应比较查询语法、索引生命周期、权限、插件、托管服务和迁移成本,而不是只比较“是否开源”。
Loki:低成本标签索引
Loki 以标签索引为核心,通常搭配 Grafana、Prometheus、Tempo 和 Alloy 使用。它适合 Kubernetes、云原生和已经采用 Grafana 生态的团队,成本和组件可替换性较好。
如果业务依赖任意字段的复杂全文检索、日志审计或大规模聚合,应把 Loki 与 OpenSearch、Elastic Stack 或 OpenObserve 做实际查询压测。
OpenObserve、Graylog 与 Splunk:平台路线
OpenObserve 把日志、指标、Tracing、看板和告警放在同一套平台,也支持通过 OpenTelemetry、Fluent Bit、Vector 和 Prometheus 接入。它适合希望减少 Elasticsearch 组件数量、同时保留自托管和对象存储选择的团队。
Graylog 更聚焦日志流、解析、检索、告警和运维界面;Splunk 更偏大型组织的企业日志、安全分析和合规场景。二者都应提前估算数据量、留存、权限、索引和授权成本。
采集器怎么选
- 节点和容器资源敏感:优先 Fluent Bit。
- 需要丰富转换、路由和可靠缓冲:比较 Vector 与 Logstash。
- 想用一个厂商中立管道接收多种 telemetry:OpenTelemetry Collector。
- 已经全面使用 Grafana:Grafana Alloy。
- 已经使用 Elastic Fleet:Elastic Agent。
采集链路至少要定义解析失败、重试、背压、磁盘缓冲、丢弃策略和敏感字段脱敏,不能只验证“日志能不能收到”。
怎么选
| 需求 | 优先考虑 |
|---|---|
| 复杂全文检索和字段聚合 | Elastic Stack 或 OpenSearch |
| Kubernetes + Grafana 生态 | Loki + Grafana Alloy |
| 希望少维护几套日志与可观测性组件 | OpenObserve |
| 需要日志流、解析、告警和运维界面 | Graylog |
| 大型企业安全分析和合规检索 | Splunk |
| 只缺少节点和容器日志采集 | Fluent Bit |
| 需要高性能转换和多目标路由 | Vector |
| 需要厂商中立的统一采集层 | OpenTelemetry Collector |
上线前检查
- 使用结构化日志,包含时间、服务、环境、级别和 request ID;
- trace ID 能与请求、数据库和下游调用关联;
- 密码、Token、支付信息和用户输入默认脱敏;
- 设置采样、索引生命周期、留存周期和磁盘告警;
- 告警只针对可行动的问题,普通错误日志不要全部升级成通知。
指标、Tracing、主机和容器监控见指标、链路与基础设施监控对比;异常堆栈和发布回归见错误监控方案对比。