Prometheus 是 CNCF 旗下的开源监控与告警系统,以「拉取式采集 + 时序数据库 + PromQL 查询语言」为核心,已成为云原生环境监控的事实标准。
核心优点
- 拉取式采集模型:主动从目标抓取指标,天然适合动态变化的容器环境。
- 多维数据模型:指标带任意标签(label),可任意维度聚合分析。
- 强大的 PromQL:一条查询即可完成趋势、速率、分位数等复杂计算。
- 服务发现:原生支持 Kubernetes、Consul、DNS、文件等自动发现采集目标。
- 告警体系:与 Alertmanager 配合实现分组、抑制、路由与多种通知渠道。
快速上手
# Docker 单机启动(挂载配置与数据目录)
docker run -d --name prometheus -p 9090:9090
-v /data/prometheus:/prometheus
prom/prometheus
# 配置文件 prometheus.yml 最小示例
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
常用 PromQL 示例
# CPU 使用率
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
# 内存使用率
(1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100
# 磁盘剩余不足 20% 时告警
node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.2
适用场景
Kubernetes 集群监控、云原生应用可观测性、基于指标的容量规划与告警。配合 node_exporter 可监控所有 Linux 主机。