文章目录
1. Prometheus 简介 2. v3.13.2 版本亮点 2.1 安全修复 2.2 缺陷修复 3. 获取安装包 4. 安装 4.1 生产环境配置(systemd 服务化) 5. 使用 5.1 配置抓取目标 5.2 PromQL 常用查询 5.3 告警规则 5.4 配置校验与热加载 5.5 运行状态监控

1. Prometheus 简介
Prometheus 是一款开源的系统与服务监控告警平台,2012 年诞生于 SoundCloud,由 Matt Proud 和 Julius Volz 在 Google 内部监控系统 Borgmon 的启发下用 Go 语言编写。2016 年 5 月成为云原生计算基金会(CNCF)最早一批项目之一,2018 年更成为继 Kubernetes 之后第二个从 CNCF 毕业的项目。如今 Prometheus 在 GitHub 上拥有约 6.5 万颗星标、1.7 万余位贡献者,是云原生监控领域的事实标准,几乎所有 Kubernetes 集群都在用它做指标采集与告警。
Prometheus 要解决的,是分布式环境中指标监控数据分散、查询困难的问题:传统监控工具要么依赖分布式存储、部署复杂,要么只能看曲线、难以按维度查询告警。而 Prometheus 用"拉取(pull)"模式定时抓取各目标暴露的指标,配合多维数据模型和 PromQL 查询语言,让运维能随时用一条查询看清任意维度的服务状态,并在条件满足时自动触发告警——单节点即可独立运行,无需外部存储依赖。
Prometheus 的核心特点:
- 多维数据模型
:时间序列由指标名和一组键/值标签(label)定义,天然支持按维度切片与聚合 - PromQL 查询语言
:强大灵活的查询语言,充分利用维度化数据模型 - 单节点自治
:不依赖分布式存储,单个服务器节点即可独立运行 - HTTP 拉取模型
:按配置周期通过 HTTP 拉取目标指标,也支持通过 Pushgateway 接收批处理作业的推送 - 服务发现
:支持 Kubernetes、Consul 等动态发现抓取目标,也支持静态配置 - 原生告警
:内置告警规则评估,可对接 Alertmanager 统一告警分发 - 联邦扩展
:支持层级与水平方向的联邦(federation),可横向扩展采集规模
2. v3.13.2 版本亮点
该版本汇集了 2 位贡献者 的 2 条 贡献。
v3.13.2 发布于 2026 年 7 月 29 日,是一个维护性补丁版本,重点包含安全升级与一处稳定性修复:
2.1 安全修复
升级 golang.org/x/text至 v0.39.0,修复安全漏洞 CVE-2026-56852;升级google.golang.org/grpc至 v1.82.1,修复 GHSA-hrxh-6v49-42gf建议所有使用远程写入(Remote Write)或 OTLP 接收功能的用户尽快升级
2.2 缺陷修复
- PromQL 稳定性
:预分配活跃查询跟踪器(active query tracker)文件,避免数据磁盘写满时出现 SIGBUS 崩溃
3. 获取安装包
如果访问 GitHub 不便,安装包及中文文档:https://hanshuixin.org/go/225F(内含 prometheus-3.13.2.linux-amd64.tar.gz、README 中英对照、发布说明中英对照和 LICENSE)。
适用于 Linux x86_64(amd64)。
Prometheus 其他版本:https://hanshuixin.org/resource/software_integrated_package/Linux/Prometheus
Linux安装prometheus-v3.13.2(prometheus-3.13.2.linux-amd64).zip├── prometheus-3.13.2.linux-amd64.tar.gz ← 解压后运行├── Linux安装prometheus-v3.13.2(prometheus-3.13.2.linux-amd64).pdf├── README/│ ├── README.md│ └── README-中文版.md├── 发布说明/│ ├── RELEASE-NOTES.md│ └── RELEASE-NOTES-中文版.md└── LICENSE
4. 安装
prometheus-3.13.2.linux-amd64.tar.gz 是 Prometheus 官方发布的 Linux x86_64 预编译二进制包,不绑定特定发行版,解压即可运行:
# 解压二进制包tar -xzf prometheus-3.13.2.linux-amd64.tar.gz# 进入解压目录(内含 prometheus 与 promtool 两个可执行文件)cd prometheus-3.13.2.linux-amd64# 启动 Prometheus(使用自带的默认配置)./prometheus --config.file=prometheus.yml
启动后访问 http://localhost:9090 即可打开 Prometheus 的 Web 界面。
4.1 生产环境配置(systemd 服务化)
实际生产部署中,建议将二进制部署到统一目录,创建无登录权限的专用运行用户,并以 systemd 服务托管,便于开机自启、崩溃自动拉起与统一管理:
# 将二进制部署到统一目录sudo mkdir -p /opt/prometheussudo cp prometheus promtool /opt/prometheus/# 创建专用用户(无登录权限)并授权sudo useradd --system --no-create-home --shell /sbin/nologin prometheussudo chown -R prometheus:prometheus /opt/prometheus
创建服务文件 /etc/systemd/system/prometheus.service:
[Unit]Description=Prometheus MonitoringDocumentation=https://prometheus.io/docs/introduction/overview/After=network.target[Service]Type=simpleUser=prometheusGroup=prometheusWorkingDirectory=/opt/prometheusExecStart=/opt/prometheus/prometheus \--config.file=/opt/prometheus/prometheus.yml \--web.listen-address=0.0.0.0:9090 \--storage.tsdb.retention.time=1y \--storage.tsdb.path=/opt/prometheus/dataExecReload=/bin/kill -HUP labels.xxx }}引用标签生成可读描述。在prometheus.yml中引入规则文件:rule_files:- "rules.yml"rules.yml 按场景分组成组,常见的有基础设施、业务应用、站点可用性三类:groups:- name: infra-alertsrules:# 主机离线- alert: 主机离线expr: up{job="node"} == 0for: 2mlabels:severity: criticalannotations:summary: 主机离线description: "{{ labels.instance }} 磁盘剩余空间低于 5GB"- name: app-alertsrules:# 业务服务离线- alert: 服务离线expr: up{job="springboot"} == 0for: 1mlabels:severity: criticalannotations:description: "{{ labels.instance }} JVM 堆内存使用率超过 90%"- name: site-alertsrules:# 官网首页不可访问(由 Blackbox 探测产生 probe_success 指标)- alert: 首页不可访问expr: probe_success{instance=~".*example.com/labels.instance }} 探测失败"告警触发后,Prometheus 会将告警推送给 Alertmanager 做统一去重、分组、静默,再通过邮件、Webhook 等方式通知,形成完整告警链路。5.4 配置校验与热加载修改配置后,先用 promtool 校验再热加载,避免错误配置导致服务异常:# 校验配置./promtool check config prometheus.yml# 校验规则文件./promtool check rules rules.yml# 热加载(无需重启)sudo systemctl reload prometheus5.5 运行状态监控Web 界面的"状态"菜单提供了监控 Prometheus 自身的手段:Targets(抓取目标):查看每个抓取目标的健康状态、抓取耗时与最近错误Alerts(告警):查看所有告警规则当前状态(inactive / pending / firing)Status:查看配置哈希、启动时间、TSDB 运行信息等对外部站点探活类指标,也可在查询页用 probe_success == 0 快速排查不可访问的目标。
夜雨聆风