转|解读系统日志的重要性

与一个简单的算法不同,一个合格的系统不仅仅要求具有运行的高效和计算的准确,同时又必须兼顾稳定性、可靠性。其次,对于开发人员来说,又必须具有可拓展性和可维护性。各方面都必须很完善,这样的一个系统才能称得上是一个合格完美的系统。简单的站在开发人员的角度分析,比较重视的是系统的可维护性,毕竟开发人员直面的是系统的代码实现。

一个代码结构冗杂、模块设计混乱、命名“异想天开”的系统对于开发者来说简直到了咬牙切齿的地步!不能忍!坚决不能忍!所以在平时的开发过程中就要时刻注意着系统的实现机制,从宏观设计和微观实现上面同时进行精雕细琢。前几天看到阿里巴巴出的《Java 开发规范》,建议大家看看。

看晕

说到可维护性,不得不涉及到系统监控和Bug的快速定位。

在开发阶段还比较容易对系统进行监控,一般都会在本机上对系统的运行进行实时监控。而对于bug的定位,开发者都会熟练使用debug功能进行bug定位,更有甚者通过多年的开发经验根据系统的异常信息直接能分析出来Bug产生的原因、位置以及解决方案。但是,系统毕竟是人开发的,我们无法预料到在运行中会出行什么想不到的问题,即使在各种测试中没有出现,但是也无法保证不会出现一些意想不到的问题。那么在系统运行期间如果产生问题出现异常且无法在测试环境中重现,我们又该如何快速、准确地对bug进行定位分析和解决 呢?

举个亲身的例子吧:公司一套设备监控系统,用来对上万个节点进行实时监控,如果该节点有异常(比如温度过高、电压过高等)则向系统进行发出告警信息。在开发环境中只有五十多个设备被安全(不会产生什么告警)的放在机房中供开发和测试使用,这种测试环境根本无法模拟实际环境。系统在测试中没有出现过什么大的问题。然而,在实际的运行环境中,偶尔发现系统的一个模块功能会丧失,失去告警接收的功能。在本地测试的时候从来没有发现过类似问题,但是部署在实际环境中就会有发生。我们不可能实时的24小时对系统进行人工监控,那么该如何定位功能丧失的原因呢?这时,对于系统日志来说就“是时候表演真正的技术了”(PS:肯定是个王者级别选手)。

后来通过系统日志分析之后,发现功能的丧失是由于大量的告警同时上报,导致数据库链接不够用,产生大量connectionTimeout进而导致OOM异常,这个模块彻底死了。可见,日志对于运行环境中系统的监控和问题定位是至关重要的,在系统设计、开发和实现的过程中必须时刻注意着log的输出,这将会对于日后的系统监控和异常分析起至关重要的作用!

那么,在系统日志实现上应该注意哪些问题呢?如何做到不滥用日志、减少大量无用信息,让日志记录足够精简明了?

第一:系统的哪些运行信息,需要进行日志记录?

1、功能模块的启动和结束(完整的系统由多个功能模块组成,每个模块负责不同的功能,因此需要对模块的启动和结束进行监控。是否在需要的时机正常加载该模块?又是否在退出结束的时候正常完成结束操作,正常退出?)

2、用户的登录和退出(哪位用户在什么时间通过什么IP登录或退出了系统)

3、系统的关键性操作(数据库链接信息、网络通信的成功与失败等)

4、系统运行期间的异常信息(NPE、OOM以及其他的超时、转换异常等)

5、关键性方法的进入和退出(一些重要业务处理的方法,在进入和结束的时候需要有日志信息进行输出)

……

……

第二:什么样的日志格式,有助于开发者进行明确的分析?

日志信息要求必须精简,过多的无用信息不但对系统分析起不到什么作用,反而会增加系统的运行压力、消耗系统的运行资源。这里有个日志模板,可供参考。

时间-[线程名][日志等级]-日志输出位置(全类名,可以精确到方法名):日志信息

2013-09-04 10:49:20.296-[Thread-initRedis21504][INFO]-com.shanghai.LoginController.initLogInfo:LingMing[User] is logining

日志信息的内容可以根据不同的情况进行设计,但是前面的时间到日志输出位置必须要保证完整性,这样才有利于日志的分析。

第三:如何对不同的日志信息进行等级划分?

日志等级通常分为四种:DEBUG、INFO、WARN、ERROR

DEBUG:系统调试信息,通常用于开发过程中对系统运行情况的监控,在实际运行环境中不进行输出。

INFO:系统运行的关键性信息,通常用于对系统运行情况的监控。

WARN:告警信息,系统存在潜在的问题,有可能引起运行异常,但此时并未产生异常。

ERROR:系统错误信息,需要进行及时处理和优化。

这里列出来了各种等级的日志信息,在开发过程中哪些信息需要设置为哪种等级有赖于开发者的自己判断,这里只是给个建议。

日志的管理是系统很重要的一部分,千万不可忽略其重要性。完整的日志将会在系统维护中起着异常重要的作用,就好像磨刀不误砍柴工一样。日志易 作为国内实时的日志分析产品,支持本地化部署,可对系统进行分析,灵活、强大、便捷。选择专业的日志分析产品日志易,对系统分析起来就能达到事半功倍的效果。

开发者必须要明白日志的价值和意义,万万不可忽略和轻视,并且在系统设计之初就建议制定一份关于日志管理的说明规范,明确哪些方法、操作必须进行日志输出,在进行开发过程中也要严格遵守。

至于日志输出的实现,不同的开发语言有不同的日志管理框架,同一种语言也有很多不同的日志管理方案,这里就不再进行赘述。本文目的就是想让开发者看到日志的重要性。

日志易的核心价值:

日志易产品做得像Google搜索引擎一样强大、灵活、易用,实现对运维日志及业务日志进行实时采集、搜索、分析及可视化等,用于运维监控、安全审计、业务数据分析,最终发掘出数据价值。目前,日志易产品已成功应用于金融、能源、运营商及互联网等诸多行业。

移除点击此处添加图片说明文字

本文来自:http://blog.csdn.net/huaishuming/article/details/51900525

如有版权问题,可私信小编哦~

时间: 2025-01-20 22:16:05

转|解读系统日志的重要性的相关文章

安卓星汽车智能管家解读选择的重要性

20岁的人拥有青春:30岁的人拥有才能:40岁的人拥有成熟:50岁的人拥有经验:60岁的人拥有 轻松!然而不管处在哪一个年龄阶段都会面临这样那样的选择,但不论选择什么最后都是为了通往成功,尽管成功的表现形式千奇百怪.今天,卓星汽车智能管家(http://www.azx88.com/)就来为大家解读一下选择,尤其是正确的选择对我们人生历程的重大意义. 也许你还不知道安卓星汽车智能管家是什么?下面的介绍希望能够解开你的疑惑,根据当前市场发展信号,安卓星创造性地开发出了 用手机远程控制车辆的专业系统,

rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理

系统日志的重要性,相信大家都深有体会,当发生故障后,第一时间就是查看相关报错信息和日志信息,以定位问题所在,还可以基于日志,进行日志的分析,从而获取系统运行状态的一些规律,本篇就介绍关于系统日志的先关内容,具体分为: 1.rsyslog相关概念的介绍 2.自定义日志存储的信道(facility)和存储位置,让rsyslog作为服务端记录rsyslog客户端的日志信息 3.定义rsyslog的日志存储在mysql数据库中 4.利用loganalyzer实现对存储在mysql数据库中的rsyslog

精于细节 网站建设与优化方能恒久制胜

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 有两个观点可以肯定,一个是未来企业之间的竞争更多在网上,无"网"不胜成了必然趋势;第二个是,中小企业互联网营销制胜的关键也一定是赢在细节.此前汪中求先生不遗余力的强调"细节决定成败",并在著书立作中旁征博引,从多种角度解读细节的重要性,并预言,未来的竞争一定是细节的较量.而今,企业间的竞争延伸到互联网,

大数据分析与高速数据更新

大数据分析与高速数据更新 陈世敏 大数据对于数据管理系统平台的主要挑战可以归纳为volume(数据量大).velocity(数据的产生.获取和更新速度快)和variety(数据种类繁多)3个方面.针对大数据分析系统,尝试解读velocity的重要性和探讨如何应对velocity的挑战.首先比较事物处理.数据流.与数据分析系统对velocity的不同要求.然后从数据更新与大数据分析系统相互关系的角度出发,讨论两项近期的研究工作:1)MaSM,在数据仓库系统中支持在线数据更新;2)LogKV,在日志

从搜索结果中解读品牌知名度的重要性

对于一名在普通不过的站长来说,我想很多人曾经都跟笔者一样,往往只是关心自己站点在搜索结果中的排名情况,却忽视了对于搜索结果的分析.其实很多网站的运营思路就藏在搜索引擎的搜索结果之中.下面笔者就通过对于搜索结果的一个小细节分析来谈谈站点品牌知名度的重要性. 我们都可以注意到在百度的搜索结果页面中,往往排名前三的搜索结果中都可以看到百度自家产品的信息.其中最常见到的要数百度百科.那么我们不禁要问:"百度百科对搜索者真的有用吗?有价值吗?其真的比我们的网站对用户友好吗?"在这里笔者还是要给百

解读路由器备份技术的重要性

一般来说,路由器是建立局域网与广域网连接的桥梁,而目前备份路由器的应用十分广泛,同时其作用也更加的突出.Cisco路由器的备份技术有多种,今天我将介绍路由器自身的备份技术及线路备份技术. 一.路由器备份技术 路由器自身的备份技术是为了解决路由器由于自身硬件(如内存.CPU)或软件IOS的某种故障或局域端口的故障,所连接局域设备的端口或线路的故障所导致的网络瘫痪的问题. 路由器的备份路由器要求至少有一台与正在工作的主路由器功能相同的路由器,在主路由器瘫痪的情况下,以某种方式代替主路由器,为局域网用

七项标准将出台 解读网络域名安全及防护重要性

中介交易 SEO诊断 淘宝客 云主机 技术大厅 由于当前,我国域名安全事件频频发生,这给行业带来了巨大的损失.因此,域名安全的重要性也就不言而喻.从近日消息获悉,关于域名安全防护的七项系列标准目前正送交工信部审核.今天,IDC评述网与大家分享部分域名安全及防护的知识. 一.定义. 域名(Domain Name),由一串用点分隔的名字组成,企业.政府.非政府组织等机构或者个人在注册商上注册的名称,是互联网上企业或机构间相互联络的网络地址.而域名解析就是将域名重新转换为IP地址的过程,一个域名只能对

张亚勤:解读“云计算”& 微软蓝天的优势。

     一.解读"云计算"的功能特性   看似高深的"云计算"理解起来并不难,其实就是把所有的计算应用和信息资源都用互联网连接起来,供个人和企业用户随时访问.分享,管理和使用--相关的应用和资源可以通过全球任何一个服务器和数据中心来获取.   真正的"云计算"平台应该能实现以下三方面的功能.   1:提供"资源"--包括计算.存储及网络资源,这就需要服务提供者架设出规模巨大的全球化的数据库及存储中心,能够实现"海量

文字在banner中的重要性和banner中文字的构成问题

文章描述:BANNER中的字体结构分析. 本来想写"Advertisemen中的字体结构分析",后来发现这个标题写得有点大,偏离了在目前工作中的针对性,因此缩小到banner的范围,以下内容仅个人在目前工作中对banner设计上的一点浅见,仅起抛砖引玉的作用. Banner的传达方式 [TOPIC] 针对网站中的banner Banner的本身形状:形状决定了其固定的构成方式,一般为矩形,横幅,左右结构和居中: Banner的文字特点:主题式,一般分为主标题和副标题,文字较多:设计的时