💡 前言
在日常服务器运维中,CPU、内存、磁盘、网络、进程 等指标的实时监控,是保障业务稳定运行的核心。本文基于 CentOS7/8 环境,从零到一带你搭建 Prometheus + Node Exporter 监控体系,实现多台 Linux 服务器指标采集、存储、可视化展示,全程命令行操作,看完就能落地!
📖 文章目录
- 方案架构说明
- 环境准备与端口说明
- Prometheus 服务端部署
- Node Exporter 被监控端部署
- Prometheus 关联监控节点
- Web 可视化界面访问
- 常见问题排查(必看)
- 总结与后续扩展
🧱 一、方案架构说明
本次采用轻量、稳定、开源免费的监控组合:
- Prometheus:时序数据库 + 监控核心,负责数据存储、查询、基础图表
- Node Exporter:官方采集器,负责收集服务器硬件与系统指标
- 可视化:浏览器直接访问 Web UI,无需额外插件
核心端口
- Prometheus:9090
- Node Exporter:9100
📦 二、环境准备
- 系统:CentOS 7 / CentOS 8 / RHEL 7+
- 服务器:1 台监控机 + N 台被监控机
- 关闭防火墙 / 放行端口(生产建议用安全组)
bash
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭SELinux
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
🚀 三、部署 Prometheus 监控服务端
1. 下载解压(已提供标准版本)
bash
mkdir -p /opt/prometheus
cd /opt/prometheus
tar -zxvf prometheus-2.53.3.linux-amd64.tar.gz
rm -f prometheus-2.53.3.linux-amd64.tar.gz
mv prometheus-2.53.3.linux-amd64 prometheus
- 规范目录结构(运维标准)
bash
cd /opt/prometheus/prometheus
mkdir bin conf data
mv prometheus promtool bin/
mv prometheus.yml conf/
- 创建专用用户 & 授权
bash
useradd -M -s /usr/sbin/nologin prometheus
chown -R prometheus:prometheus /opt/prometheus/
- 配置环境变量
bash
vim /etc/profile.d/prometheus.sh
写入:
bash
export PROMETHEUS_HOME=/opt/prometheus/prometheus
export PATH=$PROMETHEUS_HOME/bin:$PATH
生效:
bash
source /etc/profile.d/prometheus.sh
- Systemd 服务配置(开机自启)
bash
vim /lib/systemd/system/prometheus.service
bash
[Unit]
Description=prometheus
Documentation=https://prometheus.io/docs/
After=network.target
[Service]
User=prometheus
WorkingDirectory=/opt/prometheus/prometheus
ExecStart=/opt/prometheus/prometheus/bin/prometheus --config.file=/opt/prometheus/prometheus/conf/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
- 启动 & 自启
bash
systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus
systemctl status prometheus
看到 active (running) 即为成功 ✅
🔧 四、被监控端部署 Node Exporter
⚠️ 所有要监控的服务器都必须执行!
1. 解压安装
bash
cd /opt
tar -zxvf node_exporter-1.9.0.linux-amd64.tar.gz
rm -f node_exporter-1.9.0.linux-amd64.tar.gz
mv node_exporter-1.9.0.linux-amd64 node_exporter
- 整理目录
bash
cd /opt/node_exporter
mkdir bin
mv node_exporter bin/
- Systemd 服务
bash
vim /lib/systemd/system/node_exporter.service
bash
[Unit]
Description=node_exporter
After=network.target
[Service]
Type=simple
ExecStart=/opt/node_exporter/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
- 启动服务
bash
systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter
systemctl status node_exporter
🔗 五、Prometheus 关联监控主机
回到Prometheu
bash
vim /opt/prometheus/prometheus/conf/prometheus.yml
添加监控任务:
bash
scrape_configs:
- job_name: 'linux-server'
static_configs:
- targets: ['192.168.88.187:9100','192.168.88.129:9100']
重启生效:
bash
systemctl restart prometheus
🌐 六、访问可视化界面
浏览器打开:
bash
http://你的Prometheus服务器IP:9090
查看节点状态
Status → Targets
- UP:正常采集
- DOWN:检查端口 / 防火墙 / 服务
常用监控指标
- node_cpu_seconds_total:CPU 使用率
- node_memory_MemTotal_bytes:总内存
- node_memory_MemFree_bytes:空闲内存
- node_filesystem_size_bytes:磁盘容量
- node_network_receive_bytes_total:网络流量
❌ 七、常见问题排查(干货收藏)
-
Targets 状态 DOWN
- node_exporter 是否启动
- 9100 端口是否通
- 防火墙 / 安全组是否放行
-
Prometheus 启动失败
- 日志:
journalctl -u prometheus -f - 检查配置语法:
promtool check config xxx.yml
- 日志:
-
权限报错
- 重新授权:
chown -R prometheus:prometheus /opt/prometheus/
- 重新授权:
📝 八、总结
本文完整实现了 Linux 服务器监控可视化 ,基于 Prometheus + Node Exporter 快速搭建轻量监控系统,支持多主机统一管理、指标实时查询、图表展示,满足中小企业运维监控需求。
后续可对接 Grafana 打造专业大屏监控面板,我会在下一篇文章详细讲解!