共计 1748 个字符,预计需要花费 5 分钟才能阅读完成。
1. 背景介绍
Prometheus 是一款开源的系统监控和警报工具,最初由 SoundCloud 开发,现在是 CNCF 的毕业项目。它通过主动抓取(pull)方式收集指标数据,支持多维度数据模型和强大的查询语言 PromQL,是现代云原生监控体系的核心组件。

- 核心功能 :
- 多维度数据采集与存储
- 灵活的查询语言 PromQL
- 可视化(结合 Grafana)
-
警报管理
-
重要性 :
- Kubernetes 生态的默认监控方案
- 支持服务发现,适合动态环境
- 社区生态丰富(exporters 覆盖主流中间件)
2. 安装准备
系统要求
- Linux/Unix 系统(生产环境推荐 CentOS/RHEL 7+ 或 Ubuntu 18.04+)
- 最低配置:1 核 CPU/1GB 内存(生产环境建议 4 核 +/8GB+)
- 磁盘空间:至少 50GB(根据指标保留时长调整)
依赖检查
# 检查系统版本
cat /etc/os-release
# 检查时间同步(Prometheus 对时间敏感)timedatectl status
# 检查防火墙(需开放 9090 端口)sudo firewall-cmd --list-ports
3. 分步安装指南
二进制安装(推荐测试环境)
-
下载最新稳定版:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz -
解压并运行:
tar xvfz prometheus-*.tar.gz cd prometheus-* ./prometheus --config.file=prometheus.yml -
验证:访问
http:// 服务器 IP:9090
容器化部署(推荐生产环境)
docker run -d -p 9090:9090 \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
4. 配置详解
prometheus.yml 核心配置
global:
scrape_interval: 15s # 抓取间隔
evaluation_interval: 15s # 规则评估间隔
scrape_configs:
- job_name: 'prometheus' # 监控 Prometheus 自身
static_configs:
- targets: ['localhost:9090']
- job_name: 'node' # 监控 Linux 主机
static_configs:
- targets: ['node-exporter:9100']
5. 性能优化
- 内存优化 :
- 调整
--storage.tsdb.retention.time(默认 15 天) -
使用
--storage.tsdb.no-lockfile减少内存占用 -
存储优化 :
- SSD 磁盘优先
-
考虑远程存储(如 Thanos)
-
抓取优化 :
- 合理设置
scrape_interval(不同 job 可差异化) - 使用
scrape_timeout避免慢目标阻塞
6. 安全实践
-
基础认证 (示例):
basic_auth_users: [username: "$2y$..."] # bcrypt 哈希密码 -
网络隔离 :
- 通过 Kubernetes NetworkPolicy 限制访问
-
使用反向代理(Nginx)添加 TLS
-
最小权限 :
- 专用系统用户运行 Prometheus
- 配置文件权限设置为 640
7. 避坑指南
- 时间不同步 :导致指标时间戳混乱
-
解决方案:部署 NTP 服务
-
OOM 崩溃 :默认内存限制较低
-
解决方案:增加
--storage.tsdb.retention.size限制 -
抓取目标不可达 :网络策略未放行
-
解决方案:检查防火墙和 DNS 解析
-
配置热加载失效 :未发送 SIGHUP 信号
-
解决方案:
kill -HUP <pid> -
磁盘空间耗尽 :未设置保留策略
- 解决方案:配置
--storage.tsdb.retention.time=30d
结语
现在您已经掌握了 Prometheus 的核心部署技能,建议从监控一台测试服务器开始实践。可以尝试:
- 部署 node-exporter 采集主机指标
- 编写第一条 PromQL 查询 CPU 使用率
- 配置简单的告警规则(如内存 >90%)
遇到问题时,欢迎查阅 Prometheus 官方文档或社区论坛。监控系统的价值在于持续迭代,祝您构建出高效的监控体系!
正文完
发表至: 技术教程
近一天内
