1.
准备工作与VPS环境确认
- 步骤1:登录租用平台控制台,确认VPS的操作系统(通常建议Ubuntu 20.04/22.04或CentOS 7/8)。记录公网IP、SSH端口、root/管理用户信息。
- 步骤2:在本地终端通过SSH连接:ssh root@<你的VPS_IP>(若非22端口:ssh -p 2222 root@IP)。建议先更改root密码或创建非root用户并启用sudo。
- 步骤3:防火墙与安全组:在租用平台控制台放行必要端口(SSH、Prometheus/Grafana端口等),同时在系统内使用ufw或firewalld限制访问。示例:ufw allow 22/tcp;ufw allow 9090/tcp(Prometheus);ufw allow 3000/tcp(Grafana)。
2.
安装基础监控组件:Prometheus + node_exporter
- 步骤1:创建监控用户并下载node_exporter:
1) useradd --no-create-home --shell /bin/false nodeusr
2) wget https://github.com/prometheus/node_exporter/releases/download/v1.7.1/node_exporter-1.7.1.linux-amd64.tar.gz
3) tar xzf ... 并将可执行文件移动到 /usr/local/bin/。
- 步骤2:创建systemd服务文件 /etc/systemd/system/node_exporter.service:
[Unit]...ExecStart=/usr/local/bin/node_exporter
然后 systemctl daemon-reload && systemctl enable --now node_exporter。
- 步骤3:在一台集中监控服务器(可选为另一台
香港VPS或本地)安装Prometheus,并在prometheus.yml中添加scrape_config:
- job_name: 'node' static_configs: - targets: ['VPS_IP:9100']。
3.
Grafana可视化与现成Dashboard导入
- 步骤1:安装Grafana(APT/YUM或Docker)。示例Ubuntu:apt-get install -y grafana;systemctl enable --now grafana-server。
- 步骤2:通过浏览器访问 http://VPS_IP:3000,默认admin/admin,首次登陆请修改密码。
- 步骤3:在Grafana中添加Prometheus数据源(URL: http://prometheus_ip:9090 ),然后导入社区Dashboard(如Node Exporter Full)。检查CPU、内存、磁盘IO、网络吞吐、loadavg等面板是否显示正常。
4.
设置告警:Prometheus + Alertmanager
- 步骤1:在Prometheus中配置alerting规则文件alerts.yml,例如:
- alert: HighCPUUsage expr: node_cpu_seconds_total{mode!="idle"} / ... > 0.8 for: 2m labels: severity: critical annotations: summary: "CPU 使用率过高"。
- 步骤2:安装并配置Alertmanager(alertmanager.yml),配置邮件/Slack/Webhook接收器。
- 步骤3:Prometheus配置文件中加入 alerting: alertmanagers: - static_configs: - targets: ['alertmanager_ip:9093'] 并重启Prometheus。
5.
日志采集与集中化(Filebeat + ELK或Loki)
- 步骤1:在应用服务器上安装Filebeat并配置paths指向/var/log/*.log,配置输出到Logstash或直接到ElasticSearch。
- 步骤2:若使用Grafana Loki,可使用promtail采集容器与系统日志,Grafana可以直接关联Loki显示日志与指标。
- 步骤3:保证磁盘上有合理的logrotate策略:/etc/logrotate.d/yourapp,防止日志占满磁盘导致故障。
6.
自动化运维工具:Ansible基础实践
- 步骤1:在运维主机安装Ansible(pip或apt)。创建inventory,示例hosts文件:[hkvps] 192.0.2.10 ansible_user=ubuntu。
- 步骤2:编写playbook安装node_exporter并配置systemd(示例tasks: - name: download ... get_url -> unarchive -> template -> systemd)。
- 步骤3:执行ansible-playbook -i hosts deploy_monitor.yml,实现批量部署、升级与补丁管理。
7.
自动修复脚本与系统自愈策略
- 步骤1:使用monit或systemd的Restart=on-failure来实现服务崩溃自动重启。systemctl edit --full your.service 设置 Restart=always。
- 步骤2:编写健康检查脚本(/usr/local/bin/check_app.sh),返回非0则执行恢复动作,如 systemctl restart your.service 并记录到日志。
- 步骤3:将脚本通过cron或systemd-timer定期执行:/etc/systemd/system/check-app.timer + .service,保证自动检测和恢复。
8.
性能基线、阈值与容量规划
- 步骤1:先收集至少一周的监控数据,观察日夜峰值与趋势。重点指标:1min/5min/15min load、CPU%(user/system/iowait)、memory used%、disk used%、disk_io_time、network_tx/ rx。
- 步骤2:定义阈值并在Prometheus中实现告警,例如磁盘使用>85%触发告警并发邮件。
- 步骤3:定期(每月)根据增长率制定扩容计划:垂直扩容(更高CPU/RAM)或水平扩容(增加实例并使用负载均衡)。
9.
自动扩缩容(基于API的实现思路)
- 步骤1:如果租用平台提供API,先申请API Key并测试curl调用:curl -H "X-Api-Key: TOKEN" https://api.provider.com/v1/instances。
- 步骤2:编写自动脚本,当Prometheus告警触发(通过Webhook发送到自建服务)时,解析告警并调用API创建新实例或调整规格。示例流程:Alertmanager -> webhook -> 自建服务(接收并校验)-> 调用Provider API -> 新实例启动后由Ansible配置并加入负载池。
- 步骤3:注意成本与冷启动时间,建议先用流水线自动化测试流程再投入生产。
10.
安全与备份建议
- 步骤1:启用SSH密钥并禁用密码登录,使用fail2ban限制重复登录。
- 步骤2:定期备份关键配置与数据(/etc、数据库备份),并将备份推送到对象存储或另一个地域的VPS。示例定时任务:0 2 * * * /usr/local/bin/backup.sh && rclone copy /backup remote:bucket。
- 步骤3:监控磁盘使用与备份失败告警,确保恢复演练可行(每季度演练一次恢复流程)。
11.
运维示例:从零到一的快速部署步骤汇总
- 1) 准备VPS并放行端口;2) 安装node_exporter并开启服务;3) 部署Prometheus并配置scrape目标;4) 部署Grafana并导入Dashboard;5) 配置Alertmanager告警与Webhook;6) 使用Ansible把所有步骤模板化并推到多台VPS。
12.
常见故障排查与命令合集
- 检查服务状态:systemctl status node_exporter/prometheus/grafana;查看日志:journalctl -u 服务名 -f;查看端口监听:ss -tlnp | grep 9090;测试Prometheus抓取:curl http://localhost:9090/metrics。
13.
问:在香港VPS上监控网络带宽延迟,应该关注哪些指标?
答:请查看network_tx/tx_errors、network_rx、接口丢包、ping延迟(使用blackbox exporter或自定义脚本采集),以及tcp retransmits/iowait;对外链路高延迟通常表现为tcp retransmits增加与应用响应变慢,建议把这些指标纳入Grafana面板并设置告警阈值。
14.
问:如何在故障发生时自动将流量切换到备用节点?
答:可以结合健康检查与负载均衡器(云提供的或自建HAProxy/Nginx),在监控系统检测到主节点不可用时,通过API或配置管理工具下发将备用节点加入LB池的操作;或使用DNS低TTL快速切换,但需注意DNS缓存。
15.
问:部署监控后如何避免监控系统本身的单点故障?
答:建议Prometheus使用远程写入(remote_write)到HA后端或使用Prometheus HA方案(两个Prometheus+Alertmanager集群),Grafana启用备份与高可用实例,监控数据与配置定期备份,并在不同可用区部署监控节点,确保监控平台冗余。
来源:技术人员如何在香港vps租用平台进行性能监控与自动化运维