Prometheus 是主流开源监控系统,通过拉取方式采集指标,含时序数据库、PromQL、告警和可视化能力;安装后配置抓取目标,结合 node_exporter 暴露主机指标,用 PromQL 查询如 up 和 rate(),再通过 Alertmanager 实现 CPU 过载告警。

Prometheus 是目前最主流的开源监控系统,特别适合云原生和容器环境。它通过拉取(pull)方式采集指标,自带时序数据库、强大查询语言(PromQL)、告警规则和可视化能力,入门门槛不高,但需理清核心组件关系。
一、安装 Prometheus 服务端
最简单的方式是下载二进制包直接运行:
- 访问 https://prometheus.io/download/ 下载对应系统的最新版本(如 Linux amd64)
- 解压后进入目录,编辑 prometheus.yml 配置文件,确保至少包含默认抓取目标:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']保存后执行 ./prometheus --config.file=prometheus.yml,服务即启动,默认监听 http://localhost:9090
二、让被监控服务暴露指标(Exporter)
Prometheus 不直接监控应用,而是通过“Exporter”把各类数据转成标准格式供其拉取。常见用法:
- 监控本机基础指标:下载 node_exporter(同 Prometheus 官网下载),运行 ./node_exporter,默认暴露在 :9100/metrics
- 在 prometheus.yml 中添加 job:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']重启 Prometheus 或触发热重载(curl -X POST http://localhost:9090/-/reload),稍等片刻即可在 Web 界面 Targets 页面看到状态变为 UP。
三、写第一条 PromQL 查询并看图
打开 http://localhost:9090/graph,尝试输入:
- up —— 查看所有目标是否在线(1=正常,0=异常)
- node_cpu_seconds_total{mode="idle"}[5m] —— 查最近5分钟空闲 CPU 时间序列
- rate(node_cpu_seconds_total{mode="user"}[5m]) —— 计算每秒用户态 CPU 使用率(推荐用 rate 处理计数器)
点击 Execute,切换到 Graph 标签即可看到折线图。注意:Prometheus 自带图表较基础,生产中常搭配 Grafana 做可视化。
四、加个简单告警(Alertmanager 初体验)
告警需两部分:规则定义 + 告警路由。先启用 Alertmanager:
- 下载并运行 alertmanager(同官网),默认监听 :9093
- 修改 prometheus.yml,加入 alerting 和 rule_files:
alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093']
rule_files:
- 'alerts.yml'新建 alerts.yml,写一条 CPU 过载告警:
groups:
- name: example
rules:
- alert: HighCPU
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 2m
labels:
severity: warning
annotations:
summary: "High CPU on {{ $labels.instance }}"重启 Prometheus,访问 http://localhost:9090/alerts 即可看到告警状态。










