1.
总体架构与部署概述
- 站群架构通常采用江苏(国内边缘)+香港(出海出口)双中心部署以兼顾访问速度和国际出口稳定性。
- 网络链路示例:江苏节点带宽100Mbps共享,香港节点带宽200Mbps独享,链路延迟江苏→香港平均12ms。
- 负载均衡:前端使用Nginx反向代理做七层调度,后端采用Keepalived+HAProxy做四层高可用。
- 域名解析:使用主DNS托管于阿里云DNS,辅助DNS为Cloudflare,TTL策略为60秒到300秒。
- 证书与加密:全站使用Let’s Encrypt自动续签,证书更新脚本每60天检查一次并在到期前10天触发更新。
- 运维策略:采用蓝绿发布与滚动升级,保证单节点宕机不影响整体可用性。
2.
日常维护清单与周期
- 每日检查:主机负载(load1/5/15)、内存使用、磁盘I/O、磁盘剩余空间、网络丢包率。建议阈值:load1 < 8核数*1.5、磁盘剩余 > 20%。
- 每周任务:更新系统安全补丁(apt/yum),更新容器镜像并在测试环境验证后推到生产。
- 每月任务:全量备份数据库与文件,执行恢复演练并验证数据一致性(比对表行数、文件哈希)。
- 定期清理:日志轮转(logrotate),保留90天内关键日志,压缩并归档到远端备份。
- 域名与证书:检查域名到期日、CAA记录与DNSSEC(若启用),证书自动化脚本需每周自检一次。
- 变更管理:所有配置变更通过Git管理并记录变更单,变更窗口控制在非高峰期。
3.
备份与恢复策略详解
- 备份层级:数据库(实时binlog+每日全量)、文件(增量备份+每周全量)、配置(Git版本管理)。
- 存储策略:主备分离,江苏节点备份本地,香港节点每天同步至对象存储(如阿里OSS或S3),保留期90天。
- 恢复演练:演练频率每季度一次,演练内容包括数据库基于binlog的时间点恢复、整站文件恢复与域名解析切回。
- RTO/RPO指标:目标RTO ≤ 30分钟,RPO ≤ 15分钟(依业务分级设置),高可用业务采用主从同步+自动切换。
- 灾备切换:使用Keepalived VIP或云厂商负载均衡的健康检查,自动切换流量并通知团队。
- 备份验证:每次备份后进行校验(md5/sha256),并在报告中记录成功率与异常。
4.
常见故障排查流程
- 初步定位:先确认故障范围(单点/区域/全站),通过ping/traceroute/tnsping等工具快速定位网络问题。
- 服务健康:查看进程(ps/pgrep)、端口监听(ss -tulnp)、应用日志(tail -n 200),并比对最近变更记录。
- 资源瓶颈:使用top/iostat/iotop/netstat/iftop等工具定位CPU、磁盘I/O、网络带宽瓶颈,并记录采样数据作为凭证。
- 数据库问题:检查慢查询(慢日志)、锁等待(SHOW PROCESSLIST)、磁盘空间和表损坏(myisam chk或innodb recovery)。
- 回退与修复:若为配置变更导致故障,优先回退到最近可用版本并重启服务;若为硬件故障,启动热备并迁移业务。
- 故障记录:每次故障都需编写事件报告(包含时间线、根因、处理步骤、改善建议)并更新知识库。
5.
DDoS防御与CDN加速实战
- 防护分层:边缘防护(云WAF/防DDoS)、接入层(CDN缓存与限流)、源站保护(速率限制、连接限制)。
- CDN配置:静态资源走CDN缓存,缓存策略根据文件类型设置不同过期时间(图片30天、JS/CSS 7天、HTML 5分钟)。
- 防护阈值:设置每秒请求限制(如同IP每秒不超过20请求),异常流量超过阈值自动进入挑战/拦截。
- 实战案例:某次真实DDoS攻击峰值为每秒120万次请求,经Cloudflare + 本地防护拦截后,源站流量控制在峰值流量的0.8%,源站CPU平均负载从瞬时200降到<2。
- 黑名单与速率:对可疑IP段临时封禁并将证据保存(tcpdump pcap),随后提交给上游ISP进行清洗。
- 流量监控:使用NetFlow/sFlow与CDN控制台实时监控,设置告警:带宽使用率>70%、请求QPS>配置阈值触发。
6.
真实案例与服务器配置示例
- 案例背景:某公司在江苏部署6台前端节点、香港部署4台出口节点,承担50+站群运营,月均流量约3.2TB,日均QPS峰值12k。
- 故障复盘:一次香港链路中断导致出口抖动,通过自动回退到备用上游并切换DNS,整个切换耗时7分钟,RTO满足SLA。
- 优化措施:在香港节点增加本地缓存与压缩,静态资源命中率提升至92%,减轻源站压力60%。
- 示例配置表(服务器规格与角色示例):
| 节点 |
CPU |
内存 |
带宽 |
用途 |
| 江苏-frontend-01 |
4核 |
8GB |
100Mbps 共享 |
Nginx 缓存/反向代理 |
| 江苏-db-01 |
8核 |
32GB |
1Gbps 专线 |
MySQL 主库 |
| 香港-exit-01 |
8核 |
16GB |
200Mbps 独享 |
出口节点+防护 |
- 表中配置为示例,实际部署需根据站群规模与峰值流量做右扩展。
7.
监控告警与日志分析实践
- 监控指标:主机层(CPU/MEM/Disk/Net)、应用层(响应时间、错误率)、业务层(订单量、PV/UV)。
- 告警分级:P0(业务中断)、P1(性能降级)、P2(非关键异常),对应告警通知渠道(电话→短信→邮箱)。
- 日志聚合:使用ELK/EFK栈集中采集日志,设置索引策略并对关键字段建立索引以支持快速搜索。
- 示例查询:查询过去1小时内500错误占比,KQL:status:500 | stats count() by url | sort - count。
- 日志保存:访问日志保留30天,审计日志保留180天,并对敏感信息做脱敏处理。
- 自动化响应:对常见故障编写Runbook并配合自动化脚本(Ansible/Playbook)进行快速恢复。
8.
性能优化与运维建议总结
- 分层缓存:采用浏览器缓存、CDN缓存、应用层缓存(Redis)三级缓存策略,减轻数据库与源站压力。
- 异步化:将耗时操作改为异步任务(队列/消息),降低请求延迟并提升并发处理能力。
- 资源弹性:在流量波动期通过自动扩容(云主机或容器编排)应对峰值,保证SLA。
- 安全基线:定期做漏洞扫描与合规检查,启用SSH密钥登录并限制管理面板访问IP。
- 文档与培训:建立运维手册与知识库,定期对团队进行故障应急演练与复盘。
- 持续改进:每次事件后产出整改清单并跟踪完成率,目标是将可用性提升至99.95%以上。
来源:运维技巧汇总 江苏香港站群服务器 日常维护与故障排查