我盯过一台服务器,有实从凌晨三点开始,网站CPU曲线像心电图一样乱跳。监控报警邮件发到手机,有实我爬起来看,网站日志里全是监控爬虫在撞登录接口。那台机器跑着一个不大不小的有实电商网站,平时日活几千,网站但那个晚上,监控它差点被一个写得很烂的有实采集脚本拖死。
监控工具救了我。网站不是监控那种大而全的APM平台,就是有实一个简单的开源探针,每隔三十秒发一个HTTP请求,网站检查首页响应时间。监控它告诉我,页面从正常的200毫秒飙升到了八秒。然后我顺着排查,发现是数据库连接池被占满了——爬虫的请求全在查库存表,索引没命中,慢查询堆成山。那次之后,我换了思路。
监控这件事,很多人理解成“挂了就报警”。但真正有实力的监控,是能告诉你“快要挂了”的。它得像一个老练的巡夜人,不光听见瓦片响,还得判断是猫踩的还是风刮的。响应时间、错误率、吞吐量,这三个数字放在一起看才有意义。单个指标飙升不一定是坏事,可能是促销活动带来的正常流量;但如果错误率同步抬头,那问题就大了。
我见过最蠢的监控配置,是有人给磁盘空间设了90%的告警阈值。结果日志文件每天涨,系统每天半夜发邮件,运维每天早上一键清空。三个月后磁盘真的满了,告警反而没响——因为邮件服务自己先挂了。这种监控,形同虚设。它只盯着表象,没理解业务逻辑。磁盘空间的意义不在于“还剩多少”,而在于“按当前增速还能撑多久”。趋势预测比静态阈值重要得多。
另一个常被忽略的点是监控的“副作用”。探针本身也是请求,也会消耗资源。有些监控工具为了展示炫酷的仪表盘,每秒钟采集上百个指标,把生产环境的性能拖慢百分之五。这就像在病人身上插满管子做检查,结果管子太重把人压垮了。真正有实力的监控方案,懂得克制。采样频率该降就降,指标该省就省,把资源留给业务本身。
我后来把那个开源探针换掉了,改用自研的小脚本,逻辑只有一百多行。它不画图,不存历史数据,只做一件事:如果连续三次请求响应时间超过三秒,就调用云平台的API,自动重启应用容器。这个粗暴的方案运行了两年,处理过四次真实故障,误报率为零。为什么?因为我花了两天时间调参数,摸清了这台机器在不同负载下的正常表现范围。
监控的终极形态,不是一堆复杂的曲线和告警规则,而是你对系统脾气的了解。就像老司机听发动机声音就知道该换挡了,不需要看转速表。工具只是辅助,判断力才是核心。那些号称“全自动智能监控”的商业产品,往往在最关键的故障场景下给出最不着调的提示——因为它们不理解你的业务,只理解通用模式。
如果你正在搭监控,我的建议很简单:先别急着上重型平台。花一周时间,手工记录你的服务在正常时段、高峰时段、异常时段的各项指标。把数据画出来,用眼睛看。然后挑出两三个最敏感的指标,设上合理的阈值。再配一个能打电话的告警通道——邮件和IM都可能被静音,电话不会。就这么多。剩下的,等你真正被坑过一次,再慢慢补。监控这东西,实战里长出来的才可靠。
顶: 376踩: 871






评论专区