可观测性(Observability)通常分三个信号:Metrics(指标)、Logs(日志)、Traces(链路追踪)。每个信号都有对应的采集工具和存储后端,本文整理常见工具并说明相互关系。

技术栈全景

graph TD
    A["采集 / Agent
Alloy · Promtail · node_exporter
Telegraf · Filebeat · OTel Collector"] A -->|push / pull| B["Prometheus
(Metrics)"] A -->|push / pull| C["Loki
(Logs)"] A -->|push / pull| D["Tempo
(Traces)"] B --> E["Grafana
(展示 / 查询)"] C --> E D --> E

采集工具对比

Metrics 采集

工具 归属 定位 日志能力 Traces 能力
node_exporter Prometheus / CNCF Linux 主机 metrics 暴露 ✗ ✗
Telegraf InfluxData 通用 metrics 采集(300+ 插件) 弱(有 tail/syslog 插件,非主要定位) ✗
Grafana Alloy Grafana Labs 统一采集(metrics + logs + traces) ✅ ✅
  • node_exporter:轻量,只暴露 /metrics 端点供 Prometheus scrape,不主动推送。几乎每个 Linux 节点标配。
  • Telegraf:InfluxDB 生态的核心 agent,插件丰富,适合往 InfluxDB / Prometheus 写数据。如果需要完整日志采集需另加工具(如 Filebeat)。
  • Alloy:Grafana 2024 年推出的统一 agent,一个进程替代 node_exporter + Promtail + OTel Collector,是 Grafana Agent 的继任者。

Logs 采集

工具 归属 定位 写入目标 维护状态
Promtail Grafana Labs 专用日志 agent(Loki 配套) Loki only 维护模式(停止新功能)
Filebeat Elastic 日志采集(ELK 配套) Elasticsearch / Logstash 主动开发
Fluentd / Fluent Bit CNCF 通用日志管道 Elasticsearch、Loki、Kafka 等 主动开发
Grafana Alloy Grafana Labs 统一采集 Loki / Prometheus / Tempo 主动开发
  • Promtail:已进入维护模式,官方建议迁移到 Alloy。详见 Promtail 介绍。
  • Filebeat:Elastic 全家桶(ELK)的配套工具,不属于 Grafana 技术栈。
  • Fluent Bit:比 Fluentd 更轻量,K8s 中常用于节点级日志采集,输出目标灵活(可写 Loki 或 Elasticsearch)。
  • Alloy:同时支持 logs,是 Grafana 技术栈里的推荐选项。

Traces 采集

工具 归属 定位
OpenTelemetry Collector CNCF 标准链路追踪采集,支持 OTLP / Jaeger / Zipkin
Grafana Alloy Grafana Labs 内置 OTel receiver,可替代 OTel Collector
Jaeger Agent CNCF Jaeger 专用采集,逐步被 OTel 替代

存储后端对比

工具 信号类型 归属 查询语言 典型搭配
Prometheus Metrics CNCF PromQL Grafana + Alloy/node_exporter
Loki Logs Grafana Labs LogQL Grafana + Alloy/Promtail
Tempo Traces Grafana Labs TraceQL Grafana + Alloy/OTel Collector
InfluxDB Metrics(时序) InfluxData Flux / InfluxQL Grafana + Telegraf
Elasticsearch Logs(也可做 metrics) Elastic Lucene / EQL Kibana + Filebeat
VictoriaMetrics Metrics VictoriaMetrics PromQL 兼容 可替换 Prometheus,更省内存

展示工具

工具 特点
Grafana 支持所有主流数据源(Prometheus、Loki、Tempo、InfluxDB、Elasticsearch 等),最通用
Kibana Elastic 专用,深度集成 Elasticsearch,日志搜索体验强
InfluxDB UI InfluxDB 内置,适合 InfluxDB 用户

两大技术栈总结

Grafana 技术栈(推荐用于 self-hosted / homelab)

graph TD
    A["Grafana Alloy
(一个 agent 全搞定)"] A --> B[Prometheus] A --> C[Loki] A --> D[Tempo] B --> E[Grafana] C --> E D --> E

Elastic 技术栈(ELK)

graph TD
    A["Filebeat / Logstash"] --> B[Elasticsearch]
    B --> C[Kibana]

选型建议

  • homelab / 个人项目:Grafana 全家桶(Prometheus + Loki + Grafana + Alloy),资源占用合理,开箱即用。
  • 已有 InfluxDB:继续用 Telegraf,不必迁移;如果想要日志需额外引入 Fluent Bit → Loki。
  • 企业 K8s 日志:Fluent Bit(DaemonSet)→ Loki 或 Elasticsearch,视现有技术栈决定。
  • 新项目要全套可观测性:OpenTelemetry(采集 SDK)+ OTel Collector / Alloy → Prometheus + Loki + Tempo + Grafana。