如何使用 Prometheus + Grafana + Loki 构建一个现代化的云原生监控系统。这套组合被誉为监控领域的“瑞士军刀”,功能强大且生态极佳。
一、核心组件概念介绍
在搭建之前,深刻理解每个组件的角色和职责至关重要。
1. Prometheus(指标监控与时序数据库)
- 角色:系统的“核心计量器”和“数据收集器”。
- 核心概念:
- 拉取模型(Pull):Prometheus 主动从配置好的目标(
targets
,如应用、节点)上拉取(HTTPGET
)监控指标数据。这与传统的 Agent 推送(Push)模型不同。 - 时序数据(Time-Series Data):收集的数据是带时间戳的指标序列,例如:
shenyu_request_count{path="/api/test", status="200"}
在 t1=1625000000 时刻的值是 10,在 t2=1625000005 时刻的值是 15。 - 多维数据模型:通过 指标名称(Metric Name) 和 标签(Key-Value Labels) 来唯一标识一条时间序列,这使得数据可以高度灵活地切片、聚合和查询。
- 服务发现:可以自动从 Kubernetes、Consul 等平台发现需要监控的目标,动态适应云环境。
- PromQL:强大的专有查询语言,可以对收集到的指标进行各种运算、聚合和预测。
- 拉取模型(Pull):Prometheus 主动从配置好的目标(
- 职责:定期抓取、存储指标数据,并提供查询