Prometheus · 开源系统监控与告警工具|部署与从源码构建全指南
项目仓库: https://github.com/prometheus/prometheus
开源协议:Apache 2.0 · 默认 Web 端口:9090 · 推荐安装:预编译二进制 ·
Docker:prom/prometheus · 从源码:Go + Node.js + npm 10+ ·
官方文档:prometheus.io/docs
1 项目简介
Prometheus 是开源的系统监控与告警工具,以多维数据模型和 PromQL 采集时序指标,是云原生可观测性生态的核心项目(CNCF 毕业项目)。它通过拉取(pull)方式采集目标指标,提供存储、查询、告警与可视化。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | Prometheus |
| 仓库地址 | github.com/prometheus/prometheus |
| 项目定位 | 开源监控与告警(时序数据库) |
| 开源协议 | Apache 2.0 |
| 默认 Web 端口 | 9090 |
| 推荐安装 | 预编译二进制(prometheus.io/download) |
| Docker 镜像 | prom/prometheus(Docker Hub / Quay) |
| 官方文档 | prometheus.io/docs |
1.2 适用场景
- 基础设施与应用指标监控。
- 云原生环境指标采集与告警。
- 配合 Grafana 做可视化。
1.3 能力边界(官方口径)
- 官方推荐用最新生产 release 的预编译二进制安装。
go install构建的版本需从克隆仓库根目录运行,且不含 React UI(需make assets/make build)。
2 功能特性
- 多维数据模型:指标名 + 键值标签。
- PromQL:强大的查询语言。
- 拉取式采集:HTTP pull 指标。
- 告警管理:告警规则与通知。
- 服务发现:多种服务发现集成。
3 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库主页 | https://github.com/prometheus/prometheus | 源码 |
| 下载 | prometheus.io/download | 预编译二进制 |
| 安装文档 | Installing | 官方安装 |
| Docker Hub | prom/prometheus | 镜像 |
| 配置示例 | prometheus.yml | 示例配置 |
4 方式一:预编译二进制(官方推荐)
从 prometheus.io/download 下载最新生产 release,解压后:
./prometheus --config.file=prometheus.yml访问 http://localhost:9090。
5 方式二:Docker 快速试用
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus启动后访问 http://localhost:9090/。
6 方式三:从源码构建
6.1 前置要求
- Go:
go.mod指定版本或更高。 - Node.js:
.nvmrc指定版本或更高。 - npm:10 或更高。
6.2 步骤
git clone https://github.com/prometheus/prometheus.git
cd prometheus
# 用 go 工具构建(注意:需从仓库根目录运行,且不含 React UI)
go install github.com/prometheus/prometheus/cmd/...
prometheus --config.file=your_config.yml用 make build 构建会把 web
资源编译进去,可在任意目录运行:
make build7 配置项说明
| 配置 | 位置 | 说明 |
|---|---|---|
--config.file |
启动参数 | 主配置文件(prometheus.yml) |
| 端口 | 9090 | Web UI 与 API |
8 常见故障排查
- Web UI 缺失:用
go install构建时需make assets/make build编译 React UI。 - 端口 9090 冲突:用
--web.listen-address改端口。 - 目标没数据:检查 prometheus.yml 的 scrape_configs。
9 风险与说明
- 许可证:Apache 2.0。
- 生产部署:官方推荐预编译 release,不用 main 分支。
- 非官方声明:本文基于官方仓库 README 整理,命令以最新 release 为准。