阅读368 返回首页    go 微信


上下文查询__logsearch_用户指南_日志服务-阿里云

当你展开一份日志文件,每一条日志都记录一个事件,并且往往不是孤立存在的,连续的若干条日志可以回放整个事件序列的发生过程。

日志上下文查询是指定日志来源(机器 + 文件)和其中一条日志,将该日志在原始文件中的前若干条(上文)或后若干条日志(下文)也查找出来,尤其是在DevOps场景下对于理清问题来龙去脉来说可谓是一把利器。

一个应用场景

例如,O2O外卖网站在服务器上的程序日志里会记录一次订单成交的轨迹:

用户登录 -> 浏览商品 -> 点击物品 -> 加入购物车 -> 下单 -> 订单支付 -> 支付扣款 -> 生成订单

如果用户下单失败了,运营、客服的同事如何快速定位问题原因呢?

传统的上下文查询怎么做?

管理员为相关人员添加机器登录权限,然后调查者依次登录应用所部署的每一台机器,以订单ID为关键词搜索应用程序日志文件:

  1. grep a0cad0faa8e2d2540f84023c97c77f37 -C 10 /home/admin/logs/app_worker/app.log*

这条命令会返回订单失败前后各10条日志,帮助判断下单失败的原因。

日志服务上下文查询

使用日志服务怎么做?

  1. 到服务器上安装日志采集客户端Logtail,并到控制台上添加机器组、日志采集配置,然后Logtail开始上传增量日志
  2. 到日志服务供控制台日志查询页面,指定时间段根据订单ID找到订单失败日志
  3. 以查到的错误日志为基准,向上翻页直到发现与之相关的其它日志信息(例如:信用卡扣款失败)

日志服务上下文查询方案

对比传统方案的优势

  • 不侵入应用程序,日志文件格式无需改动
  • 在日志服务控制台上可以查看任意机器、文件的指定日志上下文信息,解放了过去需要登录每台机器查看日志文件的痛苦
  • 结合事件发生的时间线索,在日志服务控制台指定时间段快速定位可疑日志后再进行上下文查询,往往可以事半功倍
  • 不用担心服务器存储空间不足或日志文件轮转(rotate)造成的数据丢失,到日志服务控制台上随时可以查看过往的数据

使用上下文查询的两个前提

想了解如何查询日志上下文,请参考控制台上下文查询介绍。

最后更新:2016-12-12 14:46:48

  上一篇:go 查询方案(ELK/Hive)对比__logsearch_用户指南_日志服务-阿里云
  下一篇:go 使用Logtail采集日志__logtail(Agent)_用户指南_日志服务-阿里云