news 2026/10/28 11:59:04

CentOS 7.9快速部署Prometheus监控系统指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS 7.9快速部署Prometheus监控系统指南

1. 项目概述

在运维监控领域,Prometheus已经成为事实上的标准解决方案。最近我在一台CentOS 7.9服务器上部署Prometheus监控系统时,发现网上很多教程要么版本过时,要么步骤不完整。经过几次踩坑后,我整理出这套经过验证的快速部署方案,整个过程控制在15分钟内完成,特别适合需要快速搭建监控系统的运维人员。

2. 环境准备

2.1 系统基础配置

首先确保你的CentOS 7.9系统已经完成基础配置:

# 更新系统 sudo yum update -y # 安装常用工具 sudo yum install -y wget curl vim net-tools # 关闭SELinux(生产环境请谨慎) sudo setenforce 0 sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 配置防火墙(如果启用) sudo firewall-cmd --add-port=9090/tcp --permanent sudo firewall-cmd --reload

注意:如果是在生产环境,建议配置SELinux规则而不是直接关闭,这里为了快速部署做了简化处理。

2.2 创建专用用户

为Prometheus创建专用用户是个好习惯:

sudo groupadd --system prometheus sudo useradd -s /sbin/nologin --system -g prometheus prometheus

3. Prometheus安装与配置

3.1 下载最新版本

访问 Prometheus官网 获取最新稳定版下载链接:

# 获取最新版本(截至2023年7月最新稳定版为2.47.0) VERSION="2.47.0" wget https://github.com/prometheus/prometheus/releases/download/v${VERSION}/prometheus-${VERSION}.linux-amd64.tar.gz tar xvf prometheus-${VERSION}.linux-amd64.tar.gz sudo mv prometheus-${VERSION}.linux-amd64 /usr/local/prometheus

3.2 目录结构与权限配置

合理的目录结构能避免后续维护混乱:

# 创建必要目录 sudo mkdir -p /usr/local/prometheus/data sudo mkdir -p /etc/prometheus # 配置文件处理 sudo mv /usr/local/prometheus/prometheus.yml /etc/prometheus/ sudo ln -s /etc/prometheus/prometheus.yml /usr/local/prometheus/ # 权限设置 sudo chown -R prometheus:prometheus /usr/local/prometheus sudo chown -R prometheus:prometheus /etc/prometheus

3.3 配置文件详解

默认的prometheus.yml需要根据实际需求调整:

global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090']

提示:生产环境中建议配置alertmanager和更精细的scrape配置,这里先保持简单。

4. 服务管理配置

4.1 创建Systemd服务

创建/etc/systemd/system/prometheus.service文件:

[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/prometheus/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/usr/local/prometheus/data \ --web.console.templates=/usr/local/prometheus/consoles \ --web.console.libraries=/usr/local/prometheus/console_libraries \ --web.listen-address=0.0.0.0:9090 Restart=always [Install] WantedBy=multi-user.target

4.2 启动与验证

# 重载systemd sudo systemctl daemon-reload # 启动服务 sudo systemctl start prometheus # 设置开机自启 sudo systemctl enable prometheus # 检查状态 sudo systemctl status prometheus

验证服务是否正常运行:

curl http://localhost:9090/metrics

如果看到大量metrics数据输出,说明安装成功。

5. 进阶配置与优化

5.1 数据保留策略

默认情况下,Prometheus会保留15天的数据。可以通过启动参数调整:

ExecStart=/usr/local/prometheus/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/usr/local/prometheus/data \ --storage.tsdb.retention.time=30d \ ...

5.2 内存优化

Prometheus可能会消耗较多内存,可以通过以下参数限制:

--storage.tsdb.retention.size=500GB \ --query.max-concurrency=20 \ --query.max-samples=50000000 \

5.3 监控节点扩展

要监控其他节点,需要在prometheus.yml中添加新的job:

scrape_configs: - job_name: 'node' static_configs: - targets: ['node1:9100', 'node2:9100']

需要在被监控节点上安装node_exporter。

6. 常见问题排查

6.1 端口冲突问题

如果9090端口被占用,可以修改启动参数:

--web.listen-address=0.0.0.0:9091

6.2 权限问题

如果遇到权限拒绝错误,检查:

sudo chown -R prometheus:prometheus /usr/local/prometheus sudo chown -R prometheus:prometheus /etc/prometheus

6.3 数据损坏处理

如果启动时报存储错误,可以尝试修复:

sudo -u prometheus /usr/local/prometheus/prometheus \ --storage.tsdb.retention.time=30d \ --storage.tsdb.path=/usr/local/prometheus/data \ --storage.tsdb.repair

7. 安全加固建议

7.1 基础认证配置

在prometheus.yml中添加:

basic_auth_users: admin: $2y$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

使用htpasswd生成密码:

htpasswd -nBC 12 admin | tr -d ':\n'

7.2 HTTPS配置

生成自签名证书:

openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 \ -keyout prometheus.key -out prometheus.crt

然后在启动参数中添加:

--web.config.file=/etc/prometheus/web.yml

web.yml内容:

tls_server_config: cert_file: /etc/prometheus/prometheus.crt key_file: /etc/prometheus/prometheus.key

8. 日常维护技巧

8.1 数据备份

Prometheus数据目录可以直接备份:

tar czvf prometheus-data-$(date +%Y%m%d).tar.gz /usr/local/prometheus/data

8.2 版本升级

升级步骤:

  1. 备份配置和数据
  2. 下载新版本
  3. 停止服务
  4. 替换二进制文件
  5. 启动服务
sudo systemctl stop prometheus cp /usr/local/prometheus/prometheus /usr/local/prometheus/prometheus.bak wget https://github.com/prometheus/prometheus/releases/download/v${NEW_VERSION}/prometheus-${NEW_VERSION}.linux-amd64.tar.gz tar xvf prometheus-${NEW_VERSION}.linux-amd64.tar.gz sudo cp prometheus-${NEW_VERSION}.linux-amd64/prometheus /usr/local/prometheus/ sudo systemctl start prometheus

8.3 性能监控

Prometheus自身也需要监控,可以在配置中添加:

- job_name: 'prometheus-monitor' metrics_path: '/metrics' static_configs: - targets: ['localhost:9090']

9. 可视化配置

9.1 控制台模板

Prometheus自带一些控制台模板,位于:

/usr/local/prometheus/consoles/ /usr/local/prometheus/console_libraries/

9.2 连接Grafana

  1. 安装Grafana
  2. 添加Prometheus数据源
  3. 导入官方仪表板(ID:3662)
sudo yum install -y https://dl.grafana.com/oss/release/grafana-10.1.5-1.x86_64.rpm sudo systemctl start grafana-server sudo systemctl enable grafana-server

10. 生产环境建议

经过多次部署实践,我总结出以下几点生产环境建议:

  1. 使用专门的存储卷存放时间序列数据,避免系统盘空间不足
  2. 配置合理的告警规则和Alertmanager集成
  3. 对于大规模部署,考虑使用Prometheus联邦或Thanos方案
  4. 定期检查TSDB状态,避免数据损坏
  5. 监控Prometheus自身资源使用情况

最后分享一个实用技巧:在prometheus.yml中使用relabel_configs可以灵活处理target标签,这在管理大量节点时特别有用。例如:

relabel_configs: - source_labels: [__address__] regex: '(.*):\d+' target_label: 'instance' replacement: '$1'
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/28 11:59:04

ponytail插件:信息聚合与结构化输出的效率工具实践

1. 从“ponytail”这个标题说起:它到底是什么第一次看到“ponytail”这个词,很多人脑子里蹦出来的画面是扎起来的马尾辫。但在开发者和效率工具圈子里,这个词最近被赋予了全新的含义——它指的是一类把零散信息快速“束”起来、形成统一输出的…

作者头像 李华
网站建设 2026/10/28 11:58:50

impeccable:为AI coding agents打造的前端设计质量增强工具链

1. 从“impeccable”这个词说起:它到底想解决什么问题第一次看到“impeccable”这个项目名,我脑子里蹦出来的不是词典释义,而是一个很具体的场景:你让 AI 帮你写一段前端代码,它噼里啪啦吐出来一大坨,结构看…

作者头像 李华
网站建设 2026/10/28 11:57:55

IEC61850工程应用建模:从CDC到GOOSE/SV的配置与联调实践

简介:这份PPT面向电力系统自动化、变电站通信及数字化变电站方向的工程技术人员与学习者,系统梳理IEC61850工程应用建模标准。内容从标准制定背景切入,对比IEC870-5-101、IEC870-5-103、DNP3.0等传统规约的局限,进而展开统一数据类…

作者头像 李华
网站建设 2026/10/28 11:57:00

pi coding agent CLI 架构解析:agent loop、TUI 与 LLM API 中间层设计

1. 从"pi"这个标题说起:一个极简命名背后的野心第一次看到"pi"这个项目名,我脑子里蹦出来的第一反应是那个无限不循环的常数,第二反应是"这名字起得也太省事了"。但真正把它的定位摸清楚之后,我反而…

作者头像 李华
网站建设 2026/10/28 11:55:29

AI修bug总修不干净?定位与修复必须拆成两步

1. 为什么“让AI顺手把bug修了”往往修不干净很多人第一次用大模型改代码,都是同一个姿势:把报错日志、相关文件、需求描述一股脑塞进对话框,然后说一句“帮我修一下”。结果要么改错地方,要么改对了地方却引入新问题,…

作者头像 李华
网站建设 2026/10/28 11:55:15

一文分清ECC:椭圆曲线密码学、SAP ECC与内存纠错码

ECC这三个字母,放在不同圈子里能引出完全不同的讨论方向。搞安全的会说是椭圆曲线密码学,做SAP实施的会说是ERP Central Component,搞服务器运维的会说是内存纠错码。最近网上关于ECC的讨论集中在几个方向上:Trustwave签发的P384证…

作者头像 李华