共计 2007 个字符,预计需要花费 6 分钟才能阅读完成。
一、Prometheus 核心概念简介
Prometheus 是一个开源的系统监控和告警工具包,最初由 SoundCloud 开发。它的主要特点是多维数据模型、灵活的查询语言、不依赖分布式存储、通过 HTTP 拉取数据等特点。

Prometheus 主要由以下组件组成:
- Prometheus Server:核心组件,负责抓取和存储时间序列数据
- Client Libraries:用于应用程序代码的检测
- Push Gateway:支持短生命周期的作业推送数据
- Exporters:用于现有服务的监控数据导出
- Alertmanager:处理告警
二、安装前环境准备
硬件要求
- CPU:至少 2 核
- 内存:至少 4GB(生产环境建议 8GB+)
- 磁盘:SSD 推荐,至少 50GB 可用空间
依赖项检查
-
检查 Linux 版本(建议使用 Ubuntu 18.04+/CentOS 7+):
cat /etc/os-release -
确保已安装 wget 或 curl:
which wget || which curl
三、分步安装指南
方法一:二进制包安装(推荐)
-
下载最新稳定版:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz -
解压安装包:
tar xvfz prometheus-2.30.3.linux-amd64.tar.gz cd prometheus-2.30.3.linux-amd64 -
验证版本:
./prometheus --version
方法二:Docker 方式安装
docker run -d -p 9090:9090 --name prometheus prom/prometheus
两种方式对比 :
- 二进制安装:适合生产环境,性能更好
- Docker 安装:适合快速测试,方便版本切换
四、配置文件详解
默认配置文件 prometheus.yml 主要包含以下部分:
global:
scrape_interval: 15s # 抓取间隔
evaluation_interval: 15s # 评估间隔
scrape_configs:
- job_name: 'prometheus' # 监控 Prometheus 自身
static_configs:
- targets: ['localhost:9090']
五、服务启动与验证
使用 systemd 管理服务
-
创建 systemd 服务文件:
sudo vi /etc/systemd/system/prometheus.service -
添加以下内容:
[Unit] Description=Prometheus After=network.target [Service] User=prometheus ExecStart=/path/to/prometheus --config.file=/path/to/prometheus.yml Restart=always [Install] WantedBy=multi-user.target -
启动服务:
sudo systemctl start prometheus sudo systemctl enable prometheus
验证安装
访问 http://< 服务器 IP>:9090,应该能看到 Prometheus Web UI。
执行一个简单 PromQL 查询:
up
应该能看到 prometheus 服务的状态(1 表示正常)。
六、生产环境注意事项
- 数据存储优化 :
- 考虑使用 SSD 存储
-
配置合理的 retention(数据保留时间)
-
安全配置 :
- 启用 HTTPS
- 配置基本认证
-
限制访问 IP
-
资源限制 :
- 设置适当的内存限制
- 监控 Prometheus 自身的资源使用
七、常见问题排查
1. 端口冲突
如果 9090 端口被占用,可以通过以下命令查找并解决:
sudo netstat -tulnp | grep 9090
2. 权限问题
确保 Prometheus 用户有足够的权限访问配置文件和数据目录:
sudo chown -R prometheus:prometheus /path/to/prometheus
八、避坑指南
- 时间同步问题 :
- 确保所有被监控节点时间同步
-
安装并配置 NTP
-
配置文件格式错误 :
- 使用
promtool check config prometheus.yml验证配置文件 -
特别注意 YAML 格式的缩进
-
资源不足 :
- 监控 Prometheus 自身的内存使用
- 考虑使用远程存储解决本地存储限制
九、下一步学习建议
- 集成 Grafana 进行可视化
- 配置 Alertmanager 实现告警
- 学习 PromQL 进行更复杂的查询
- 部署各种 Exporters(Node Exporter, MySQL Exporter 等)
总结
通过本文的步骤,你应该已经成功部署了一个基本的 Prometheus 监控系统。Prometheus 的学习曲线虽然有些陡峭,但一旦掌握,它将成为你运维和监控基础设施的强大工具。下一步可以尝试添加更多的监控目标,或者探索更高级的功能如服务发现和告警规则配置。
