Prometheus与Node-exporter负载监控搭建:自己动手给独立站做套负载监控
做外贸独立站这几年,我见过太多平时不看监控、一到“黑五”广告狂推流量暴涨直接把服务器打崩的惨案。很多新手总觉得这事离自己很远,或者嫌装监控费事,宁可天天手动在终端里敲 top,也不愿意老老实实把Prometheus与Node-exporter负载监控搭建这件事给落地。等哪天PHP-FPM卡死、MySQL被系统OOM直接干掉,导致白白亏掉几百上千美刀的Google投流预算时,才拍大腿后悔。
市面上现成的商业APM(比如Datadog、New Relic)确实省心,但对个人站长和小团队来说太贵了;宝塔面板自带的监控又太重,数据量一多自己先卡死。今天这篇干货,我就抛开那些花里胡哨的理论,直接手把手带大家用开源方案跑通监控体系,以后机器哪块资源吃紧,你心里能有本明明白白的账。
搞清原理:为什么是 Prometheus + Node-exporter?
简单打个比方,你手头有三四台VPS跑WordPress、Shopify转独立站的站群或者API后端:
- Node-exporter(探针):它就是一个极其轻量的小程序,必须扔在你要监控的业务机上。它只干一件事——实时读取操作系统的CPU占用、内存剩余、磁盘I/O、网络流量等底层硬件指标,然后开一个端口(默认是9100)把数据以纯文本形式露出来。
- Prometheus(数据中枢):它相当于监控调度中心。你不用把它和业务混在一台机器上,随便买台便宜的轻量云(哪怕是1核1G的便宜机房)都能跑。它会按照你设定的间隔(比如15秒),主动找Node-exporter拉取指标,存进自己的时序数据库里。
第一步:在业务机上跑 Node-exporter
老站长提醒:千万别在生产机上编译安装,直接去GitHub找编译好的二进制包,安全、干净、无依赖。
以 Ubuntu 22.04 LTS 为例,执行以下命令:
# 下载最新版(自己去GitHub确认最新tag,这里以1.7.0为例)
cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
# 解压并扔到系统可执行目录下
tar -xvf node_exporter-1.7.0.linux-amd64.tar.gz
cd node_exporter-1.7.0.linux-amd64
sudo mv node_exporter /usr/local/bin/
# 建一个低权限系统账号专门跑它,安全第一
sudo useradd -rs /bin/false node_exporter
接下来做个 systemd 服务,方便开机自启和故障拉起:
sudo tee /etc/systemd/system/node_exporter.service <<EOF
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
EOF
启动服务:
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
验证一下是否活着:终端输入 curl http://localhost:9100/metrics,如果刷出来一大堆带 # HELP 和指标值的英文,说明数据抓取正常。
第二步:搭建 Prometheus 监控中心
现在换到你的监控专用机。同样使用二进制包部署:
cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.48.1/prometheus-2.48.1.linux-amd64.tar.gz
tar -xvf prometheus-2.48.1.linux-amd64.tar.gz
cd prometheus-2.48.1.linux-amd64
# 创建配置文件与数据目录
sudo mkdir -p /etc/prometheus
sudo mkdir -p /var/lib/prometheus
sudo mv prometheus promtool /usr/local/bin/
sudo mv consoles console_libraries /etc/prometheus/
配置 prometheus.yml。这里需要把刚才装了 Node-exporter 的那台外贸站服务器IP加进去:
global:
scrape_interval: 15s # 15秒拉一次,对VPS压力极小
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'us-west-woocommerce' # 给你的业务机起个易懂的名字
static_configs:
- targets: ['192.168.1.50:9100'] # 换成你独立站的真实公网/内网IP
同样丢给 systemd 托管:
sudo useradd -rs /bin/false prometheus
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
sudo tee /etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/ \
--storage.tsdb.retention.time=30d # 强烈建议加上:数据保留30天,省磁盘
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
几个一线实操踩坑点(别怪我没提醒)
很多人照着网上的教程抄,跑通之后就不管了,过几个月准出问题。以下三点全是我交过学费换来的教训:
1. 端口裸奔被全网扫描
Node-exporter 的 9100 端口默认是不带鉴权的!你把它大喇喇暴露在公网,全世界黑客都能随时读出你系统的负载和磁盘大小,甚至借此推测你的业务高峰期打DDoS。
- 解决办法:在云厂商的防火墙(Security Groups)里设置白名单,只允许 Prometheus 机器的公网 IP 访问 9100 端口。其他来源一律 DROP。
2. 磁盘爆满惨案
Prometheus 默认会一直把监控数据往磁盘塞。如果你的监控节点多,又没加 --storage.tsdb.retention.time=30d,不出半年监控服务器自身磁盘就会被占满,数据库直接崩坏死锁。对于独立站来说,保留15天到30天的历史数据足够排查问题了。
3. 不要把两者放同一台小鸡
如果你手头就一台 1核2G 的机器跑外贸网站,千万别把 Prometheus 也硬挤在上面。当网站遭受大流量冲击时,业务容器本身就在疯狂争抢内存,Prometheus 再去拉数据、做计算,会直接加速整台机器的宕机崩溃。
后续玩法建议
搭建完这一套,直接在浏览器打开监控机的 http://IP:9090,在 Targets 页面看到目标都是绿色的 UP 状态,基础体系就算稳了。
不过 Prometheus 原生的面板奇丑无比,看数据很费眼。下一步,你可以顺手在这台机器上装个 Grafana,直接导入官方提供的 Node Exporter Full 仪表盘模版(ID:1860)。不到两分钟,整套专业到像大厂运维室的酷炫监控大屏就出来了,配合设置个 Telegram 机器人或者企业微信告警,你的独立站抗风险能力立马跨上一个台阶。
相关文章
- Nginx性能调优实战:别让服务器拖了SEO后腿:Nginx调优实战
- 数据库自动备份脚本:别等数据丢了才哭:老站长带你玩转数据库自动备份
- 服务器负载监控预警:别等宕机才后悔:服务器负载监控实战
- PHP-FPM内存溢出处理:拒绝服务器宕机:PHP-FPM内存溢出处理与SEO保命指南
- Redis缓存优化配置:别让你的独立站卡在最后1秒:Redis 缓存实战指南
- CentOS系统内核升级:CentOS内核升级:提速与避坑实战
- 磁盘IO性能瓶颈分析:拒绝网页卡死:老站长手把手教你排查磁盘IO瓶颈
- SSL证书自动续签方案:别让证书过期毁了SEO:SSL自动续签全攻略
- 宝塔面板安全配置指南:别让服务器裸奔:宝塔面板安全实战
- 高并发下的服务器扩容:高并发扩容:老站长带你避坑指南

