稳定性的保障不是单点设置,而是一套“监测-分析-告警-处理” 的闭环流程。
一、基础设置:利用云平台自带监控工具(入门)
所有主流云平台(阿里云、腾讯云、AWS、Azure等)都提供了免费的基础监控功能,这是第一步。
1、开启并配置云监控:
确保安装云监控Agent在购买云主机时,通常默认会勾选“安装云监控Agent”,如果没安装,请务必在系统内手动安装,否则无法获取系统级详细数据(如内存使用率、磁盘IO等)。
查看监控仪表盘在云控制台的“云监控”或“云服务器”页面,找到监控图表,重点关注以下核心指标:
CPU使用率持续高于80%需要警惕。
内存使用率持续高于80%或使用量持续增长(可能存在内存泄漏)。
磁盘使用率特别是系统盘(如/
根目录),超过85%非常危险,可能导致系统无法写入或服务崩溃。
磁盘IOPS和带宽读写延迟过高或带宽打满会影响应用响应。
网络流量(入流量/出流量)流量激增可能是遭受攻击或业务量正常增长。
2、设置基础告警:
* 在云监控中为上述核心指标设置阈值告警。
举例(告警策略)
规则名称CPU使用率过高告警
监控指标CPU使用率
统计周期1分钟
条件平均值 >= 85% 持续2个周期
告警级别警告
通知方式邮件、短信、钉钉、微信机器人等
基础监控只保证了“机器活着”,但要保证“服务稳定”,必须监控应用本身。
1、应用进程监控:
监控目标确保你的关键应用进程(如Nginx, Tomcat, MySQL, Redis,以及你自己的业务进程)在正常运行。
设置方法
云平台进程监控一些云监控Agent支持配置进程监控,直接配置进程名即可。
使用Supervisor如果你是用Supervisor托管进程,它自带管理界面和告警功能。
自定义脚本写一个Shell脚本定时检查进程是否存在,不存在则自动重启并发告警。
2、端口监控:
监控目标确保应用监听的端口(如Web服务的80/443端口)是可访问的。
设置方法在云监控中通常有“站点监控”或“端口监控”功能,可以从全球多个地区发起探测,模拟用户访问,这是发现网络故障的利器。
3、业务逻辑监控:
监控目标这是最关键的,即使进程和端口都正常,你的业务接口可能返回错误(如500错误码)、响应缓慢、或关键功能(如用户登录、支付下单)失败。
设置方法
API监控使用云平台的“站点监控”或第三方工具(如UptimeRobot, Pingdom),定期调用你的关键API接口,检查返回的HTTP状态码和响应时间。
日志监控接入ELK(Elasticsearch, Logstash, Kibana)或Loki+Grafana stack,实时分析应用日志,一旦出现“ERROR”、“Exception”等关键字立即告警。
自定义业务指标在代码中埋点,使用Prometheus等工具收集业务指标(如每分钟订单数、成功/失败次数),并在Grafana中绘制图表和设置告警。
告警之后能自动修复,才是真正的高稳定性。
1、自动化处理脚本:
* 对于一些常见问题,可以设置告警触发自动执行脚本。
举例
磁盘空间清理当磁盘使用率告警时,自动触发脚本清理日志文件、临时文件。
进程守护当进程监控发现应用停止,自动执行重启命令。
注意自动化处理要有熔断机制,防止在未知故障下无限重启,导致问题恶化。
2、高可用(HA)架构:
* 单台云主机无论如何监控都有单点故障风险,追求极高稳定性必须考虑架构层面。
方案
多实例+负载均衡(SLB/CLB)部署至少两台云主机,前面用负载均衡分发流量,一台宕机,另一台自动接管,这是最常用且有效的方案。
弹性伸缩(Auto Scaling)根据CPU使用率或业务指标(如QPS)自动增加或减少云主机数量,应对流量波动,避免因负载过高导致服务不稳定。
监控层面 | 关键指标 | 监控工具/方法 | 告警阈值建议 |
系统层 | CPU使用率 | 云监控Agent | >85%,持续2-5分钟 |
内存使用率 | 云监控Agent | >85%,持续2-5分钟 | |
磁盘使用率 | 云监控Agent | >85% | |
网络带宽 | 云监控Agent | 持续打满80%以上 | |
应用层 | 进程存活 | 云监控/Supervisor/脚本 | 进程不存在 |
端口存活 | 云平台站点监控 | 端口无法连接 | |
服务响应 | 云平台站点监控 | HTTP状态码非200,响应时间>3s | |
业务层 | 日志错误 | ELK/ Loki | 出现“Error”、“Exception”关键字 |
业务指标 | Prometheus + Grafana | 如:订单失败率>1% | |
架构层 | 高可用 | 负载均衡 + 多台云主机 | 从根源消除单点故障 |
1、循序渐进:先从基础的系统监控和告警做起,然后逐步完善应用和业务监控。
2、告警分级:区分“警告”和“致命”告警,CPU一时过高是“警告”,半夜发短信;网站完全无法访问是“致命”,必须电话呼叫。
3、减少告警噪音:避免无效告警,否则容易导致“狼来了”效应,让运维人员忽略真正重要的告警,定期评审和优化告警规则。
4、定期演练:定期模拟故障(如手动关闭一台机器),检验你的监控告警和高可用架构是否真的有效。
通过以上层层递进的设置,你就可以构建出一个相对完善的云主机稳定性保障体系。
文章摘自:https://idc.huochengrm.cn/zj/16229.html
评论