游客发表
去年冬天,网站我帮一家做跨境电商的可用控好朋友看服务器。凌晨两点,性监他打电话说网站打不开了,不好客户在群里骂翻了天。网站我爬起来一查,可用控好数据库连接池爆了,性监重启花了十五分钟。不好就这十五分钟,网站他们那天晚上的可用控好黑五预热活动损失了大概两万多美金。他问我:有没有办法在用户发现之前就知道网站出问题了?性监我说有,网站可用性监控。不好他接着问:那玩意儿到底好不好?网站
这个问题其实挺难一句话回答的。监控本身不复杂,可用控好就是性监定时去访问你的网站,看返回状态码对不对、响应时间多长、页面内容有没有变。但“好不好”取决于你拿它当什么用。把它当门铃,它就是个门铃。把它当保安,它也能干保安的活。问题是很多人装了个门铃,却指望它抓小偷,然后说监控没用。
我见过最离谱的一个案例。一家做在线教育的公司,买了某监控服务,设置了五分钟一次HTTP检查。结果某天他们一个核心接口挂了,返回500错误,但监控没报警。为什么?因为那个接口的URL返回的是200,只是body里全是错误信息。监控只看状态码,不看内容。用户提交作业全失败,客服电话被打爆,技术团队还在工位上悠哉游哉。这不是监控的错,是配置的人偷懒。可用性监控要真管用,得往细里抠。状态码、响应时间、DNS解析、SSL证书过期、页面关键字匹配,少一样都可能留个窟窿。
从成本上说,这东西便宜得离谱。市面上UptimeRobot、Better Uptime、国内的阿里云拨测,免费版就能监控几十个站点,五分钟或一分钟一次。付费版一个月几十块到几百块,能精确到三十秒甚至十秒。对比一下网站宕机一小时的收入损失,这钱花得跟白捡一样。我自己给几个小站挂了监控,一年下来不到两百块,抓到过三次证书过期、两次服务器磁盘满、一次CDN回源异常。每次都是在用户反馈之前就处理掉了。
但监控不是万能的。它只能告诉你“现在有问题”,不能告诉你“为什么有问题”。有一回我的博客监控报警,响应时间从200毫秒飙到8秒。我登服务器一看,CPU正常、内存正常、带宽正常。折腾半小时才发现,是某个外部字体服务挂了,浏览器加载字体时卡住。监控测的是服务器端响应,测不到客户端渲染。所以可用性监控得和日志分析、APM工具配合着用。单靠一个监控,就像只量体温就诊断所有病。
还有一点容易被人忽略:监控本身也会骗你。比如你设了从三个节点同时检测,结果两个节点报警一个正常。你以为是误报,关了告警。其实是那个正常节点走了不同的网络路径,绕过了故障点。再比如你设了邮件告警,结果邮件服务器自己挂了,告警发不出去。我就干过这事,监控发到企业微信,结果企业微信机器人被限流了,报警延迟了二十分钟。后来我学乖了,告警通道至少配两条,邮件加短信,或者Webhook加电话。
说到底,网站可用性监控好不好,不取决于工具本身,取决于你愿不愿意花半小时去配好它,愿不愿意在收到告警后认真对待。我见过有人装了监控,告警邮件全进了垃圾箱,网站挂了一整天都不知道。也见过有人把监控当命根子,半夜三点爬起来修一个不影响业务的警告。两种极端都不对。监控是个哨兵,你得给它划好警戒线,也得知道哪些动静该当真,哪些可以等天亮再说。
回到我那个跨境电商朋友。后来他装了监控,配了短信和电话告警,又加了一个页面关键字检查。上个月他们服务器又抽风,这次监控在四十秒内就把他叫醒了。他一边重启一边在客户群里发公告,说系统正在维护。没人骂他。这就是监控的价值——不是让网站永远不挂,而是让你比用户早一步知道它挂了。
友情链接