1.
准备与选型(地区、规格、镜像)
选择台湾节点时优先考虑延迟、带宽和法遵。操作步骤:
- 评估流量与IO:web 服务优先 2 核 4G + 50GB SSD 起步,数据库按 IOPS 选盘。
- 镜像:选 Ubuntu LTS 或 CentOS Stream,生产建议 Ubuntu 22.04 LTS。
- 购买后通过控制台记录公网 IP、私网(若支持)、API Key,用于自动快照与弹性伸缩脚本。
2.
系统初始化与基础加固
上云后第一时间完成基础配置:
- 登录并更新:sudo apt update && sudo apt -y upgrade。
- 时区与同步:sudo timedatectl set-timezone Asia/Taipei && sudo apt -y install chrony && sudo systemctl enable --now chrony。
- 创建运维用户:sudo adduser deploy && usermod -aG sudo deploy。
- 禁用密码登录:sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config;设置 PermitEmptyPasswords no、PasswordAuthentication no,然后 sudo systemctl reload sshd。
3.
防火墙与网络策略
确保只开放必要端口并启用状态防火墙:
- 简单策略(Ubuntu):sudo apt -y install ufw;sudo ufw default deny incoming; sudo ufw default allow outgoing;sudo ufw allow 22/tcp from YOURIP; sudo ufw allow 80,443/tcp; sudo ufw enable。
- 更复杂使用 iptables/nftables,示例保存规则:sudo iptables-save > /etc/iptables/rules.v4 并启用开机加载。
- 内网访问:若有私网,优先把数据库和内部服务放到私网,默认只允许来自应用服务器的私网流量。
4.
进程与服务监控(Prometheus + Node Exporter)
部署轻量监控采集器与基础指标:
- 安装 node_exporter:下载二进制,创建 systemd 服务文件 /etc/systemd/system/node_exporter.service 内容指明 ExecStart=/usr/local/bin/node_exporter,然后 sudo systemctl daemon-reload && sudo systemctl enable --now node_exporter。
- 本地防火墙允许 9100 端口:sudo ufw allow 9100/tcp。
- 在中心 Prometheus 上添加目标,示例 prometheus.yml 中 job: node_taiwan targets: ['IP:9100'],重载 Prometheus 配置 sudo systemctl reload prometheus。
5.
可视化与告警(Grafana + Alertmanager)
建立仪表盘与告警流程:
- Grafana:apt 安装或用官方仓库,初次登录添加 Prometheus 数据源(URL 指向 Prometheus)。
- 导入常用 dashboard(Node Exporter Full, Linux System)。
- 告警:在 Prometheus 编写规则文件 alerts.yml,例如:
- alert: HighCPU
expr: 100 - (avg by(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
for: 5m
labels: severity:critical
annotations: summary:"CPU 使用过高"。
- 配置 Alertmanager webhook/SMTP/Slack,确保所有告警都有负责人和故障单模板。
6.
日志收集与集中化(Filebeat/Loki)
日志便于排查与审计:
- 选择方案:ELK(Elasticsearch+Logstash+Kibana)或 Promtail+Loki+Grafana。针对中小企业推荐 Loki。
- 安装 Promtail:下载并在 /etc/promtail/promtail.yaml 中指定 targets(log paths),并启用 systemd。
- 配置日志标签(app, env, hostname),在 Grafana 中建立探索与告警(错误比例告警)。
- 保留策略:通过索引生命周期或 Loki retention 设置保留周期并定期归档到对象存储。
7.
备份、快照与灾备演练
备份策略分三层:数据、配置、镜像。操作步骤:
- 数据库:定时 mysqldump 或用 xtrabackup,脚本示例:mysqldump -u root -p'PWD' --single-transaction --databases dbname > /var/backups/db_$(date +%F).sql。
- 文件与配置:rsync -av --delete /var/www/ user@backup:/data/www。
- 对象存储备份:安装 rclone,配置与S3兼容的对象存储,然后 rclone copy /var/backups remote:bucket/。
- 快照自动化:使用 VPS 提供商 API(curl -X POST 带 API Key 调用 create-snapshot),把脚本加到 cron 执行并在 Slack 上通知。
- 定期演练:每季度做一次恢复演练,记录 RTO/RPO 并在 runbook 更新失败点。
8.
问:选择台湾节点是否能显著降低访问延迟?
9.
答:通常能改善台湾及东南亚用户的网络体验
本地节点能把 RTT 从海外 80-200ms 降至 10-40ms,但要注意带宽质量与运营商间互联(IX),建议在购买前用 ping/traceroute 多测几天并询问提供商上行链路与峰值带宽。
10.
问:如果VPS单点故障,企业如何做高可用设计?
11.
答:采用多可用区/多地域部署与负载均衡
至少两个台湾机房或台湾+邻近地区,前端用云负载均衡或反向代理(HAProxy/Nginx),状态同步数据库采用主从或分片,数据可通过异步复制与跨区备份保证 RPO,同时在 DNS 层配合健康检查实现自动故障切换。
12.
问:运维团队如何把监控告警变为可操作的 SRE 流程?
13.
答:建立标准化的告警分级与响应 SOP
为每类告警定义 severity、联系人、响应时间与常用处置步骤(runbook),用 PagerDuty/Slack 集成 Alertmanager。所有告警需归档为工单并定期复盘,持续优化告警规则以降低噪音并确保关键路径可观测性。
来源:企业案例台湾在服务器搭建vps 后的运维与监控实践