CentOS上如何完成Prometheus的能力验证?

代码编程 2025-07-12 1037

手把手教你CentOS上配置Prometheus,轻松搞定监控系统搭建

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

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用户部署,结果被安全审计狠狠批了一顿。

CentOS配置Prometheus-能力验证-能力验证

下载安装包

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']

这个配置做了两件事:

  1. 设置全局抓取间隔为15秒
  2. 配置了两个抓取任务: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、内存、磁盘等硬件指标。

常见问题解决方案

  1. 权限问题:如果启动时报错"permission denied",检查文件权限是否正确:

    sudo chown -R prometheus:prometheus /usr/local/prometheus
    sudo chown -R prometheus:prometheus /var/lib/prometheus
  2. 防火墙问题:如果外部访问不了9090端口,检查防火墙配置:

    sudo firewall-cmd --list-ports

    确保9090/tcp端口已开放。

  3. 配置文件错误:修改配置文件后,记得检查语法:

    /usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml

总结与展望

经过这次实践,我深刻体会到Prometheus的强大之处,整个配置过程看似复杂,但只要按照步骤来,其实并不难,关键是要理解每个配置项的含义,比如scrape_interval决定了数据抓取频率,storage.tsdb.path决定了数据存储位置。

下一步计划:

  1. 配置Alertmanager实现告警功能
  2. 集成Grafana做可视化展示
  3. 部署Pushgateway监控批处理任务

最后提醒大家,监控系统是生产环境的眼睛,一定要做好安全防护,建议配置SSL证书,限制访问IP,定期备份数据,希望这篇文章能帮到正在搭建监控系统的你,如果有任何问题,欢迎在评论区交流。

CentOS上如何配置Zabbix监控?操作流程是怎样的?
« 上一篇 2025-07-12
CentOS上部署Grafana时如何完善其安全机制?
下一篇 » 2025-07-13

文章评论