作为一个程序猿,调查应用错误可真不是一个轻松活,一出问题,经常要上机器查看各种日志,对于复杂应用,这个过程就更痛苦。比如,应用前端架设Apache
服务,后端是各种核心逻辑,使用Mysql
做信息存储,这些角色还部署在多台机器上。调查问题,免不了打开多个机器的登录窗口,在不同目录间切换,grep
日志关键词查找线索,再切换再查找,几圈下来,头已经有点晕,打开日志文件看看细节,一失手,vim
一个上百MB
文件…
心中已是各种马在奔腾…
自从用上了阿里云的简单日志服务,突然发现调查问题变得轻松起来。向各位看官汇报一下,如何在云端,快速定位应用各种错误。
首先,先来看前端机器是否有错误,自从将前端访问日志收集放到SLS
上后,再不用一台台登录前端机。选择Apache
访问日志的Category
,直接在控制台输入“500”
,就可查看http
状态为500
的错误日志。真有几次这样的错误,这些访问请求失败了。
[attachment=61829]
赶紧去看看后端应用层,是什么异常导致的,返回category列表,重新选择后端日志”ServerLog”这个Category,输入” ERROR”,把所有ERROR级别的日志全部查出来。
[attachment=61830]
这么多错误,真要好好看看都是怎么回事。想到核心业务部署在10.242.78.62这个机器上,重点关注这个机器上有没有什么错误,输入”ERROR and 10.242.78.62”进行精确定位。
[attachment=61831]
还好,错误数下降了一个数量级。在显示的第一页日志上,看上去都是用户输入参数错误,包含了非utf-8字符。往后翻了几页,也是同样的错误,那先把这些参数错误过滤掉再说,输入 “ERROR and 10.242.78.62 not UTF-8” 进行过滤。
[attachment=61832]
世界立马清净了,只有几个错误,原来都是写数据库出现错误,仔细回想一下,原来前2
天修改了数据库表的schema
,应用程序处还有一个地方忘记修改,由于这个表平时访问少,这个问题一直没有被发现。快速定位到原因后,这个bug
的修复分分钟就搞定。
有了简单日志服务,调查问题,可以直接在云端完成,免去了登录机器的烦恼,通过简单日志服务提供的自定义时间段,以及关键词 AND
、NOT
、OR
的组合查,可以方便地定位各种异常信息,大大提高了本码农的debug
的效率。
原文地址:
http://bbs.aliyun.com/read/162988.html
微博互动地址:http://weibo.com/1644971875/BbYxe4oUf?mod=weibotime#_rnd1412683821194 (需将URL复制至浏览器中打开)