🗣 Wd提问: VPS主机搭建性能监控实战分析
🤖 Ai回答: VPS主机搭建性能监控实战分析
在现代云计算与运维环境中,对VPS(Virtual Private Server)主机进行实时、精准的性能监控是保障服务稳定性、优化资源使用、预防故障的关键环节。以下为一套系统、完整、实战导向的VPS性能监控搭建与分析方案,涵盖工具选型、部署流程、指标监控、告警机制与优化建议。
一、监控目标与核心指标
1、系统资源监控
CPU使用率(用户态、内核态、空闲、等待I/O)
内存使用(总量、已用、缓存/缓冲区、可用)
磁盘I/O(读写速度、IOPS、使用率)
磁盘空间(根分区、/var、/tmp等关键目录)
网络流量(入站/出站带宽、连接数、丢包率)
2、服务健康监控
Web服务(Nginx/Apache)状态、进程数、响应时间
数据库(MySQL/PostgreSQL)连接数、慢查询、锁等待
SSH登录尝试、异常进程、系统日志错误
3、可用性监控
主机是否在线(Ping/ICMP)
端口可达性(80, 443, 22等)
HTTP状态码(200/404/500)
二、推荐监控工具栈(开源+轻量)
| 类别 | 工具 | 特点 |
|
| 数据采集 | Prometheus + Node Exporter | 高性能时序数据库 + 主机指标采集器 |
| 可视化 | Grafana | 强大仪表盘,支持多数据源 |
| 告警 | Alertmanager | 与Prometheus集成,支持邮件/钉钉/微信/Slack |
| 日志监控 | Loki + Promtail | 轻量日志收集与检索(替代ELK) |
| 系统级 | netdata(可选) | 实时、低开销、一键安装,适合快速部署 |
三、实战部署步骤(以Ubuntu 22.04 + Prometheus + Grafana为例)
1、安装Node Exporter(主机指标采集)
bash
下载最新版本(查看 https://github.com/prometheus/node_exporter/releases)
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvfz 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 no-create-home shell /bin/false node_exporter
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
创建systemd服务
sudo nano /etc/systemd/system/node_exporter.service
服务文件内容:
ini
[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
启动服务:
bash
sudo systemctl daemon-reload
sudo systemctl enable node_exporter
sudo systemctl start node_exporter
验证:访问 `http://your-vps-ip:9100/metrics`,应返回文本格式指标。
2、安装Prometheus(时序数据库)
bash
wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz
tar xvfz prometheus-2.52.0.linux-amd64.tar.gz
cd prometheus-2.52.0.linux-amd64
sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
sudo chown root:root /usr/local/bin/prometheus
sudo chown root:root /usr/local/bin/promtool
创建配置目录
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
编辑配置文件
sudo nano /etc/prometheus/prometheus.yml
prometheus.yml 示例:
yaml
global:
scrape_interval: 15s
scrape_configs:
job_name: 'vps-node'
static_configs:
targets: ['localhost:9100']
创建systemd服务:
bash
sudo nano /etc/systemd/system/prometheus.service
内容:
ini
[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/ \
web.console-template=/etc/prometheus/consoles \
web.console.templates=/etc/prometheus/consoles \
web.listen-address=0.0.0.0:9090
Restart=always
[Install]
WantedBy=multi-user.target
启动:
bash
sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus
访问:`http://your-vps-ip:9090`,进入Prometheus UI,输入 `up` 查询,确认target状态为UP。
3、安装Grafana(可视化面板)
bash
sudo apt-get install -y apt-transport-https software-properties-common wget
wget -q -O https://packages.grafana.com/gpg.key | sudo apt-key add -
echo deb https://packages.grafana.com/oss/deb stable main | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install -y grafana
sudo systemctl daemon-reload
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
访问:`http://your-vps-ip:3000`,默认账号密码 admin/admin,首次登录后修改密码。
添加数据源:
Name: Prometheus
URL: http://localhost:9090
Save & Test → 成功
导入仪表盘:
推荐ID:1860(Node Exporter Full)或 1860 的最新版本
导入后即可看到CPU、内存、磁盘、网络等实时图表
4、配置告警(Alertmanager)
编辑 `/etc/prometheus/alertmanager.yml`:
yaml
global:
resolve_timeout: 5m
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'email-notifications'
receivers:
name: 'email-notifications'
email_configs:
to: 'admin@example.com'
from: 'alert@yourdomain.com'
smarthost: 'smtp.gmail.com:587'
auth_username: 'your-email@gmail.com'
auth_password: 'your-app-password'
注意:Gmail需开启应用专用密码
在Prometheus中添加告警规则 `/etc/prometheus/rules/node.rules`:
yaml
groups:
name: node-alerts
rules:
alert: HighCPUUsage
expr: 100 (avg_over_time(node_cpu_seconds_total{mode=idle}[5m]) * 100) 80
for: 2m
labels:
severity: warning
annotations:
summary: High CPU usage on {{ $labels.instance }}
description: CPU usage is above 80% for 2 minutes.
alert: LowDiskSpace
expr: (node_filesystem_avail_bytes{mountpoint=/} / node_filesystem_size_bytes{mountpoint=/}) * 100 < 10
for: 5m
labels:
severity: critical
annotations:
summary: Disk space running low on {{ $labels.instance }}
description: Only {{ printf \%.2f\ $value }}% disk space left on root partition.
在prometheus.yml中加载规则:
yaml
rule_files:
rules/*.rules
重启Prometheus:
bash
sudo systemctl restart prometheus
启动Alertmanager:
bash
sudo systemctl enable alertmanager
sudo systemctl start alertmanager
访问:`http://your-vps-ip:9093` 查看告警状态。
四、进阶优化建议
1、安全加固
使用防火墙(ufw)限制9100、9090、3000端口仅允许内网或指定IP访问
使用Nginx反向代理 + HTTPS(Let’s Encrypt证书)
启用Basic Auth或OAuth2认证(Grafana支持)
2、监控扩展
添加MySQL Exporter(mysqld_exporter)监控数据库
添加Nginx Exporter监控Web服务
使用Loki + Promtail收集/var/log/syslog、/var/log/nginx/error.log
📣 商家广告 :
👍
0
👎
IP地址: 207.29.37.98
搜索次数: 223
提问时间: 2025-12-15 06:47:52
本站所有
❓
问答
均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
本站由
🟢
豌豆Ai
提供技术支持,使用的最新版:
豌豆Ai站群搜索引擎系统 V.25.10.25
搭建本站。