为什么监控和日志很重要?
监控(Monitoring)和日志(Logging)是大型分布式系统中最关键的基础设施(infrastructure)之一,因为没有监控,就没办法知晓服务的运行情况,就没办法知道集群中有没有Down机,机器的CPU使用率、负载是否正常,网站的Traffic是否正常,服务的出错率是不是在可容忍范围之内。 简而言之,监控使得我们可以实时的了解网站的运营情况和可用性(Availability)情况。
监控通常是从整体上了解网站的情况,需要具备实时性。而日志则是详尽的记录着系统运行情况,每一次service的调用,每一次数据库的访问,都应该写进日志,特别是当系统出现问题时,我们希望日志系统能为我们提供完整的错误堆栈(Exception Stack) 和尽可能完备的上下文(Context),为系统维护提供支持。日志可以容忍一定程度的延迟,不需要实时性,特别是基于日志的报表,因为分析日志需要一定的时间,也没办法做到实时。
监控和日志有时候是可以互相协作的,例如,日志中所携带的大量系统信息(客户端IP,运行Transaction所需时间,SQL的利用率(Use Ratio,在一个Transaction中,use ratio>1的话,说明有问题),等一切用户愿意写入日志的信息)本身就可以为监控提供信息来源(Source),实际上除了监控,利用日志信息我们还可以做很多和业务相关的事情,比如分析用户的行为,统计系统的使用情况,不过因为日志信息体量巨大,也就是我们通常说的大数据,像ebay每天的日志信息在几十个TB,对如此庞大的数据进行存储和分析,可不是一件容易的事情,通常我们需要借助于FDMS和Hadoop等技术手段。
监控和日志系统架构
A log view REST URL sample for eBay CAL
监控和日志系统详细设计
如果深入到Detail,还是有很多技术细节的,特别是日志的存储和分析,更是涉及到现在的热门技术,大数据和Hadoop这两位好兄弟,有时间再详细趴吧,暂时先放一些公司的技术文档,以备不时之需:
关于eBay CAL 更多细节,请阅读: http://server.dzone.com/articles/monitoring-ebay-big-data
点评的集中式日志: http://www.docin.com/p-737666327.html
点评开源: https://github.com/dianping/cat
Hawkeye
Sherlock
Log sending sequence
版权声明:本文为博主原创文章,未经博主允许不得转载。