怎么使用Logs来检查你的技术和业务指标

这是一篇由Trevor Parsons执笔的客串博文。 Trevor是Logentries的联合创始人和首席科学家, Logentries提供日志管理和分析服务。现在机器每天都会产生海量的数据,logs(Logentries)通过分析这些数据,使企业拥有更好的业务洞察力,不管你的团队规模多大,也不管你的团队致力于开发,IT还是商业运行,你都能从logs中受益。logs不仅仅是存储和分析海量数据,它还能将结果可视化。
Trevor认为:对一个Ops团队来说,工作的重心在于保证系统一直以良好的状态运行。
传统的Ops工具箱包括一大堆监视KPIs趋势的工具,还包括一些定期对系统关键部分进行健康检查的工具。
但是,随着云的使用越来越普遍,人们对日志管理和分析服务的要求也越来越高。logs能够使Ops团队能够管理那些在云上产生的数据,并且能够执行非常重要的分析和检查。

为什么我们说logs是Ops工具箱中一个重要的,不可或缺的工具,下面给出了五点理由。

1.我的系统干净吗:异常监视,错误追踪,错误历史

开发者会使用错误追踪工具来追踪并修复代码中出现的任何错误和异常,但是,一般来说,在程序没有运行起来之前,根本不可能找出所有的bug,比如说有时候一些异常只有在一些特定的边界条件或者是在高负载的情况下才会发生,而这些异常在写代码或者是测试的时候捕捉不到的,所以开发者同样需要在程序运行起来之后还能追踪到异常。
在这种情况下,logs就能发挥它的作用了,任何严重的错误都会被logs记录下来。通过logs,你能知道你的系统是否干净,从而将你从错误和异常中解放出来。

你可以周期性的检查你的logs,看看你的系统是不是真的干净,或者你需要一种更加主动的方式,那么你可以设置实时提醒,这样一来,一旦你设定的某些特定事件发生,系统就会主动提醒你检查系统。

2.超过阈值时收到通知

logs中的异常通常是以一种最明显的方式显示出来的。但是,有些时候,一些小问题因为不显著,没有被标记为错误,但是这些小问题很可能就是一些更加严重的问题发生前的征兆,如果不及时处理它们,等它们变成真正的问题时再去处理就不划算了。
可以通过设定阈值的方式来解决这个问题,一旦系统突破你设定的阈值,系统就会马上通知你。下面列出了一些典型的阈值设置案例。
服务器请求响应时间:这个阈值具体设定取决于你怎么定义请求响应的合理时间。举例来说,网页加载用户愿意等待的时间是多少? 3 important response time limits是对这个问题的一个经典回答。在这个问题中,服务器的响应时间仅仅只占总时间的一部分,你应该记住这一点。
  • 客户端响应时间:如果你记录的是从客户端发出请求到服务器响应的时间,并且还记录了请求次数,那么就能很快的计算出完整加载一个页面所需的时间,这个时间的长度和页面渲染,网络速度和后端的处理能力有关。
  • 作业运行时间:如果你的作业效率突然变道原来的十分之一,你肯定想知道到底发生了什么,因为这种现象可能以为着系统中的其他负载正在消耗大量资源,或者也有可能你的作业性质发生了显著变化。使用logs,你可以设置一个作业必须在规定的时间内完成,如果在规定的时间内作业还没有处理完,系统就会通知你。
  • 服务器资源使用:如果你的硬盘使用率超过95%,并且正在向100%迈进,这通常意味着不好的事情就要发生了,比如说硬盘资源用光了。CPU和内存也可能发生这样的情况。使用logs,你可以设置资源使用的阈值,一旦资源使用率超过这个阈值,你就会收到系统的通知。
  • 关键应用性能指标:相比于服务器资源使用数据,内部应用指标能够使你更加细粒度的理解系统的状况。你需要和你的开发团队指定这样一些指标,然后你就可以从这些关键数据中了解到系统的工作状态。比如说在Logentries内部,我们需要记录和追踪一些特定队列的大小,这些特定队列是由我们的工程师指定的,他们认为这些队列是衡量我们系统状态的重要指标,一旦这些队列的大小超过某个设定的阈值,我们就必须马上采取行动。

请注意以上说到的这些都可以使用logs来追踪。现在的logging技术允许你从服务器和客户端两端进行记录,还提供了选取日志数据中重要字段和实时追踪和分析数据的能力。

3.及时发现系统的行为漂移

在系统运行的过程中有可能出现这样的问题,没有任何异常发生,也没有超过任何阈值,但是系统行为却有一个突然的漂移。
这样的问题更加微妙,也更加不容易发现。要发现这样的问题,需要有定义“正常”行为的基准的能力,还要能够识别现在的状态和正常状态偏移了多远。
Log管理解决方案可以提供基于日志的 异常检测功能,当你的系统发生突然的改变时,系统会主动通知你。举一个响应时间的例子——你认为响应时间超过3秒不能接受,当你的系统响应时间从10ms突然变化到1s,没有突破你设定的3s的阈值,但是这个时候异常检测机制就能捕获到这一变化,而这个变化很有可能就是你和你的Ops团队成员非常关心的。

在变化出现但是还没有突破阈值的时候就能发现问题,然后在问题扩大到用户开始抱怨之前解决问题,所谓未雨绸缪是也。

4.心跳检测

有些时候你想知道哪些事情没有发生。比如说,你的服务器停止送日志信息,或者说一个重要的作业已经超过24小时没有运行了,又或者说在过去的6个小时里没有新增用户(正常情况下,一天有100个新增用户)。
在上面所述的情景中,没有发生任何异常,也没有任何阈值被打破,但是你肯定是想知道这些事情究竟是因为什么才发生的。

Heartbeat检查,或者说inactivity alerts使你能够检查整个系统的“心跳”。你可以从粗粒度来检查,比如说服务器是否挂掉,在过去的两分钟服务器是否在发送日志信息,你也可以从细粒度来检查,比如说某个特定的作业是不是像预期一样在正常运行。

5.关联数据

最后,我认为使用logs最大的好处在于你可以把从各种来源拿到的数据关联起来。
  • 从系统的各个部分到客户端到中间件到数据库
  • 从应用层的软件栈到操作系统层
  • 从传统的日志文件,从API产生的数据,从代理产生的数据
从不同的地方拿到数据,而只在一个地方将这些数据关联起来是一种非常有效的分析方法,当你需要调试在1-4说到的各种问题时。
我们非常感谢Trevor给我们的Codeship读者讲解logs的作用。如果你想尝试一下Logentries, 请猛戳。当然,如果你有任何问题,写在下面的评论栏中或者 on twitter,放心,Trevor 都能看到。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值