运维神器-分分钟定位500错误!

作过运维的小伙伴都知道,当用户浏览器上出现白屏、应用端API获得500错误、取到数据为空是很是崩溃的一件事情。500错误是服务器端很是常见的一个错误,有多是开发时致使的语法错误,也有多是文件引用致使的错误。当用户反馈了 500 错误以后,而咱们运维童鞋们面对一个集群的后端服务器,若是没有方便的工具管理和同步,下手查找问题,是一个即耗时又费力的痛苦过程。
在最开始的时候,每次遇到这种状况,咱们运维同窗们就分别登陆几台Web服务器,去查找可能记录错误日志的地方,找出错误的真凶,以让开发童鞋们来改进。
以下图这个错误,就是因为在引用微信JS-SDK开发时,因为每一个页面都要作JS-SDK权限受权,可是在其中一个页面忘记了导入微信的JS-SDK 包,致使了大量的 500错误。这种找错误的过程,最开始几台机器还勉强,几分钟能找到,到了后来变成了几十台,已经变成了一项谁也不想干的工做了。程序员


图1、从日志中寻找出现 500 错误的真凶
后来公司的负载均衡服务器Haproxy
作了会话保持,咱们就只好联系用户,让部分懂点技术的用户,帮咱们用Chrome 这类开发者工具,抓一下包,看看Cookie,从Cookie 的SERVERID 字段就能知道,这个用户的访问,可能来自自于哪台机器,这样定位起来,方便了不少,可是时间也每每要10分钟以上,由于还要跟用户电话,大部分用户并不懂得如何操做。以下图二,从正常请求,能够获得此时访问的 SERVERID,就能够知道出错的页面和日志,也会在这台机器上。

图2,经过SERVERID肯定服务器
那有没有什么更快的办法呢?有倒时有,好比本身开发一套系统,从各台服务器收集日志,在有一个集中的地方,能查看。可是咱们运维童鞋开发能力还不太能跟得上,公司的开发童鞋老板也巴不得拉来 7x16小时开发产品。web

那到底还有木有什么更好的办法啊?后端

在圈子里有人推荐OneAPM!其实最开始我是拒绝的,由于通常来说,装这种在生产环境上,比较麻烦,而且可能会影响性能,还都须要埋代码。真到有一天,微博上又有人在讨论OneAPM,我有点心动了。浏览器


因而乎,对于懂点开发、喜欢鼓捣新玩意的非典型运维工程师,三下五除二从OneAPM注册了帐号,下载了安装包,安装到了咱们的测试服务器上。好家伙,我还啥也没有干,把程序刚刚跑起来,在OneAPM 的管理控制台上就看到了数据,真是福音啊,不要埋代码,真的不要埋代码!!!服务器

DUANG — 简直就是有特技!通过几天的实验,并向领导申请在生产环境上安装,领导看到了是优才网伍老师推荐,正好是认识的熟人,因此特地微信沟通了一下,知道是靠谱的。就让我让装到生产环境上去了。
在实际的使用过程当中,OneAPM 确实也帮了咱们的大忙。使用了几个月了,以为真的是减轻了咱们运维童鞋工做,同时也很是快速地定位问题,开发童鞋们也很感激。下面就举一个真实环境中的栗子。微信

下面就是我从线上摘出来的典型的例子。线上出了问题,一分钟后,在OneAPM 的管理后台就看到了错误消息。如图三
微信开发

还以上边的WxJSSDK 没有找到为例,线上出问题时,使用浏览器抓包,获得的是以下结果,由于线上是关闭了日志输出的,只看到白白的一片,抓包则是 500 错误。负载均衡


如今不用一台台上去检测了,一分钟后,OneAPM 后台就收到了错误信息报告。点击去看以下:运维

错误信息报告代表,这是一个很是严重的PHP错误,就是在作微信开发时,要引用微信官方的SDK,开发童鞋给漏掉了,致使出现了找不到类 ’WxJSSDK’ 这样的错误,Nginx 接到这样的错误,会向客户端返回 500
我直接把OneAPM错误信息报告发给开发童鞋,开发童鞋心照不宣,不再会跟我纠缠说谁谁的问题了!
开发童鞋还告诉了我修复的办法:引入文件就行了,特地找到了这段代码参考下图。工具

有了OneAPM就是这么爽,我也不用再用终端爬到每台机器上去确认,更不用担忧随着公司的业务发展,加到多少台Web和API服务器。

我须要拥有的,就是一个OneAPM 的管理后台!

每次公司内部的技术分享,我都会从OneAPM拉出一些案例,也会提供给开发主管一些素材,总结程序员可能常犯的错误,为此,受到了老板的奖励!至于啥奖励,你们懂的。平时参加一些业内的技术交流,也会向他们推荐OneAPM,已经成为了OneAPM的忠粉,他们团队里作支持的孟智童鞋还和我成为了好朋友!

OneAPM 的服务是颇有特点的,可能这种服务还在早期,国内好像尚未相似的应用,因此在后台和功能上,也有一些不足之处,趁这个机会也吐个槽,但愿能受到开发团队的关注 ,并改进。
第1、 因为我常常用,因此OneAPM帐号长期处于登陆状态,可是每次敲入OneAPM.com 都进到了首页,搞技术的都懂啊,大家的产品经理莫非是临时工?

第2、最须要改进的,就是看错误日志的面板,搜索、错误分级都尚未作好。幸亏我用熟悉了,不然新用户会很晕的,欲知详情,请看下图。

第3、 若是作了错误分级,我最想要的就是报警了,就像DNSPod ,每一次域名出故障,连不上,都短信、微信、邮件就来了,据说大家拿了7000万啊,在出严重错误的时候,能不能给我来个短信啊,我就不用天天挂着这个后台了,有木有!等到这些有了,即时未来有可能收费,我也会积极向领导争取滴!


本文做者系OneAPM发布 ,想阅读更多好的技术文章,请访问OneAPM官方技术博客。

相关文章
相关标签/搜索