CentOS上如何完成Prometheus的能力验证?
手把手教你CentOS上配置Prometheus,轻松搞定监控系统搭建
最近公司项目组要搞一套监控系统,领导直接拍板说用Prometheus,毕竟这玩意儿开源免费还功能强大,但问题来了,团队里大部分人都是Java后端开发,对Linux运维这块儿真不太熟,作为项目里唯一有点Linux经验的人,这个重任自然就落到我头上了,经过几天折腾,总算在CentOS上把Prometheus跑起来了,今天就把整个过程分享出来,希望能帮到同样在摸索的小伙伴。

前期准备:环境搭建别踩坑
首先得明确一点,Prometheus官方推荐用Linux系统部署,CentOS作为企业级服务器常用系统,自然是首选,我这次用的是CentOS 7.9版本,建议大家也用这个版本,毕竟新版本可能存在兼容性问题。
安装基础工具
sudo yum install -y wget tar
这两行命令是必备的,wget用来下载安装包,tar用来解压文件,别小看这两步,之前有个同事直接用curl下载,结果文件格式不对,解压时各种报错。
创建专属用户
sudo useradd --no-create-home --shell /bin/false prometheus
这里要特别注意,Prometheus官方文档明确要求用非特权用户运行,之前我图省事直接用root用户部署,结果被安全审计狠狠批了一顿。

下载安装包
cd /tmp wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz
版本号记得选最新的稳定版,我写这篇文章时最新版是2.43.0,下载地址直接从GitHub的Release页面复制,别用第三方镜像,避免安全风险。
核心配置:让Prometheus跑起来
解压安装包
tar -xvf prometheus-2.43.0.linux-amd64.tar.gz sudo mv prometheus-2.43.0.linux-amd64 /usr/local/prometheus
解压后记得把目录移动到/usr/local下,这是Linux系统约定俗成的软件安装路径。
配置文件修改 Prometheus的核心配置文件是prometheus.yml,默认配置其实就能跑起来,但实际应用中肯定要改,这里给个基础配置示例:
global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node_exporter' static_configs: - targets: ['localhost:9100']
这个配置做了两件事:
- 设置全局抓取间隔为15秒
- 配置了两个抓取任务:Prometheus自身和Node Exporter
配置服务文件 要让Prometheus开机自启,必须配置systemd服务文件:
sudo vi /etc/systemd/system/prometheus.service ```如下: ```ini [Unit] Description=Prometheus Monitoring System Documentation=https://prometheus.io/docs/introduction/overview/ After=network-online.target [Service] User=prometheus Group=prometheus ExecStart=/usr/local/prometheus/prometheus \ --config.file=/usr/local/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus/ \ --web.console.templates=/usr/local/prometheus/consoles \ --web.console.libraries=/usr/local/prometheus/console_libraries [Install] WantedBy=multi-user.target
特别注意ExecStart参数的配置,路径必须和实际安装位置一致。
扩展监控:Node Exporter安装
光有Prometheus还不够,得配合Node Exporter才能监控服务器性能指标,安装步骤和Prometheus类似:
下载安装
cd /tmp wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz tar -xvf node_exporter-1.5.0.linux-amd64.tar.gz sudo mv node_exporter-1.5.0.linux-amd64 /usr/local/node_exporter
配置服务
sudo vi /etc/systemd/system/node_exporter.service
[Unit] Description=Node Exporter After=network.target [Service] User=prometheus Group=prometheus ExecStart=/usr/local/node_exporter/node_exporter [Install] WantedBy=multi-user.target
防火墙配置
sudo firewall-cmd --permanent --add-port=9100/tcp sudo firewall-cmd --reload
Node Exporter默认监听9100端口,记得开放这个端口。
实战验证:数据采集是否正常
所有配置完成后,启动服务:
sudo systemctl daemon-reload sudo systemctl start prometheus sudo systemctl start node_exporter sudo systemctl enable prometheus sudo systemctl enable node_exporter
验证Prometheus是否正常运行:
curl http://localhost:9090/metrics
如果看到一大堆指标数据输出,说明Prometheus自身监控正常。
验证Node Exporter:
curl http://localhost:9100/metrics
这里应该能看到CPU、内存、磁盘等硬件指标。
常见问题解决方案
-
权限问题:如果启动时报错"permission denied",检查文件权限是否正确:
sudo chown -R prometheus:prometheus /usr/local/prometheus sudo chown -R prometheus:prometheus /var/lib/prometheus
-
防火墙问题:如果外部访问不了9090端口,检查防火墙配置:
sudo firewall-cmd --list-ports
确保9090/tcp端口已开放。
-
配置文件错误:修改配置文件后,记得检查语法:
/usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
总结与展望
经过这次实践,我深刻体会到Prometheus的强大之处,整个配置过程看似复杂,但只要按照步骤来,其实并不难,关键是要理解每个配置项的含义,比如scrape_interval决定了数据抓取频率,storage.tsdb.path决定了数据存储位置。
下一步计划:
- 配置Alertmanager实现告警功能
- 集成Grafana做可视化展示
- 部署Pushgateway监控批处理任务
最后提醒大家,监控系统是生产环境的眼睛,一定要做好安全防护,建议配置SSL证书,限制访问IP,定期备份数据,希望这篇文章能帮到正在搭建监控系统的你,如果有任何问题,欢迎在评论区交流。
文章评论