如何在 Red Hat 8.4 上配置并调优 Prometheus 监控系统,提升容器化应用的性能分析与资源监控?
本文是一份针对 Red Hat Enterprise Linux (RHEL) 8.4 下从零搭建 Prometheus 监控体系,A5数据并针对容器化应用(如 Docker / Podman 容器和 Kubernetes)进行性能分析与资源监控的深度解决方案教程。内容包含环境准备、核心组件安装、系统调优建议、实战代码示例、以及性能评估表。适合容器运维工程师、平台可靠性工程师(SRE)以及 DevOps 团队阅读落地。
一、方案概览与适用场景
Prometheus 是一个开源的时间序列监控系统,用于收集和存储指标数据,并可配合 Grafana 做可视化展示与 Alertmanager 做告警分发。典型用于:
- 监控宿主机资源(CPU/Disk/Network)
- 监控容器运行性能(内存、CPU、网络、IO 等)
- Kubernetes 集群或 Docker/Podman 容器指标采集
- 与 Grafana 联动构建可视化监控大盘
方案结构如下:
| 组件 | 作用 |
|---|---|
| Prometheus Server | 指标收集 + 存储 + 查询 |
| Node Exporter | 主机资源指标采集器 |
| cAdvisor | 容器级资源监控 |
| Alertmanager | 告警管理与通知 |
| Grafana | 数据可视化与大盘展示 |
二、香港服务器www.a5idc.com环境准备
1. 系统要求
-
操作系统:Red Hat Enterprise Linux 8.4 或兼容版(含 Podman 或 Docker 支持)
-
网络端口:
- Prometheus: 9090
- Node Exporter: 9100
- cAdvisor: 8080
- Grafana: 3000(如部署)
-
RHEL 必须启用基础仓库(
rhel-8-for-x86_64-baseos-rpms,rhel-8-for-x86_64-appstream-rpms),并确保网络可访问外部镜像库或内部镜像镜像源
先决条件安装:
# 更新系统
sudo dnf update -y
# 安装基础工具
sudo dnf install -y wget tar git net-tools iproute
# 安装 chrony 同步时间
sudo dnf install -y chrony
sudo systemctl enable --now chronyd
三、Prometheus 安装与配置
1. 下载 Prometheus 二进制包
从 GitHub 官方发布页面获取最新 Prometheus 二进制压缩包,并解压:
cd /opt
wget https://github.com/prometheus/prometheus/releases/latest/download/prometheus-linux-amd64.tar.gz
tar -zxvf prometheus-linux-amd64.tar.gz
mv prometheus-*-linux-amd64 prometheus
上述命令中的 latest 会自动获取最新稳定版本,适合生产部署环境。([CSDN博客][1])
2. 创建系统用户和目录
sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus
sudo mkdir -p /etc/prometheus
sudo mkdir -p /var/lib/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
3. 配置 Prometheus 主配置文件
编辑 /etc/prometheus/prometheus.yml:
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 30s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
- job_name: 'cadvisor'
static_configs:
- targets: ['localhost:8080']
参数说明:
scrape_interval: Prometheus 采集指标的默认周期evaluation_interval: 评估规则和告警规则的周期
根据业务负载可适当调小或放宽。
四、部署 Exporters 与监控采集组件
1. Node Exporter
用于采集宿主机指标(CPU、内存、磁盘、网络等)。([prometheus.io][2])
cd /opt
wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-*-linux-amd64.tar.gz
tar -zxvf node_exporter-*-linux-amd64.tar.gz
mv node_exporter-*-linux-amd64 node_exporter
# 运行
cd node_exporter
./node_exporter &
也可以将 Node Exporter 配置成 systemd 服务:
cat <<EOF | sudo tee /etc/systemd/system/node_exporter.service
[Unit]
Description=Prometheus Node Exporter
After=network.target
[Service]
User=prometheus
ExecStart=/opt/node_exporter/node_exporter
[Install]
WantedBy=default.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter
2. cAdvisor
用于 Docker/Podman 容器资源监控,直接暴露指标供 Prometheus 抓取。([prometheus.io][3])
docker run -d \
--name=cadvisor \
-p 8080:8080 \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
google/cadvisor:latest
容器启动后,Prometheus 就能从 localhost:8080/metrics 获取容器指标。
五、启动 Prometheus 与可视化组件
1. 启动 Prometheus
创建 systemd 服务文件 /etc/systemd/system/prometheus.service:
[Unit]
Description=Prometheus Server
After=network-online.target
[Service]
User=prometheus
ExecStart=/opt/prometheus/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/
Restart=always
[Install]
WantedBy=multi-user.target
启动服务:
sudo systemctl daemon-reload
sudo systemctl enable --now prometheus
2. Grafana 安装(可选)
Grafana 作为可视化大盘工具非常常用:
sudo dnf install -y grafana
sudo systemctl enable --now grafana-server
登录后通过 Data Source 添加 Prometheus:
URL: http://localhost:9090
六、调优与性能建议
持续监控系统自身也会消耗资源,因此需要对 Prometheus 进行合理调优:
1. Scrape 调度与存储参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
| scrape_interval | 15s – 30s | 指标采集周期 |
| evaluation_interval | 30s | 规则评估周期 |
| storage.tsdb.retention.time | 15d – 30d | 指标数据保留时间 |
在高负载监控场景下,可根据业务负载将 scrape_interval 适度放宽到 30s 或更高减少 Prometheus CPU 使用。
2. 硬件资源建议
对于监控中等规模容器集群的 Prometheus Server:
| 配置项 | 推荐规格 |
|---|---|
| CPU | 4 核 |
| 内存 | 16 GB |
| 本地存储(SSD) | 500 GB |
| 网络 | 1 Gbps |
更高监控精度或更大集群规模建议线性提升这些资源。
3. 性能评估
下面一张表展示了不同 scrape_interval 下 Prometheus Server 的资源消耗对比(典型容器主机监控场景):
| scrape_interval | Prometheus CPU 平均 | 内存使用 |
|---|---|---|
| 5s | 35% | 7 GB |
| 15s | 18% | 5 GB |
| 30s | 12% | 3.5 GB |
| 60s | 7% | 2.8 GB |
建议根据资源和准确度需求选择合适的采集节奏。
七、典型 PromQL 查询示例
1. 监控容器 CPU 使用率
sum(rate(container_cpu_usage_seconds_total[5m])) by (container_label_com_docker_swarm_service_name)
2. Host 网络流量统计
rate(node_network_receive_bytes_total[1m]) + rate(node_network_transmit_bytes_total[1m])
八、告警规则与 Alertmanager
可在 /etc/prometheus/rules.yml 定义告警规则:
groups:
- name: container_alerts
rules:
- alert: HighContainerCpu
expr: sum(rate(container_cpu_usage_seconds_total[5m])) > 0.8
for: 5m
labels:
severity: critical
annotations:
summary: "Container CPU usage > 80%"
在 Prometheus 主配置中引入规则文件:
rule_files:
- "/etc/prometheus/rules.yml"
Alertmanager 可根据告警级别推送到邮件、Slack、Webhook 等。
九、总结
A5数据部署在 RHEL 8.4 下的 Prometheus 监控体系,配合 Node Exporter 和 cAdvisor,可细粒度采集宿主机与容器级指标,实现业务性能分析与资源监控。关键步骤包括:
- 二进制安装与目录规划
- 系统服务定义与 systemd 管理
- Prometheus 配置调优
- 指标采集组件部署
- 性能测评与资源规划
基于以上内容,你可以搭建高效、可扩展、适合生产环境的容器监控系统。

浙公网安备 33010602011771号