如何建设高吞吐量的日志平台
日志样例
上图列举了一些日志的例子,方便大家了解日志
概念,这里简单解释一下前两项。
第一项是某网站的用户行为日志,以这条日志为例,包含了两类信息:一类是用户信息,
例如「
city
」
这个是用户
访问来源地点
,「
useAgent
」
用户的浏览器版本
;还有一类
是程序信息,例如
「
pageSize
」
还有
「
pageView
」表示页面尺寸。
第二项是一个典型的
nginx
服务的日志,「
remote_addr
」
是请求来源地址,
「
request
」是请求内容,「
status
」
是请求状态码。
三个基础问题
关于日志有三个基础的问题。
第一个问题,什么是日志?
维基百科上的描述是:日志是设备或者程序对自身状态和运作行为的记录。这里我的理解
是,现在设备和程序会按预先定义好的模式输出自身的事件信息,这些事件信息被写入到
文件或者数据库中就形成了日志;所以,日志实际上是对于事件信息的记录,上例中的
nginx
日志就是对一次请求事件的记录。
第二个问题,为什么需要日志?
为什么需要日志呢?因为设备和程序通过事件输出了运行状况相关的关键信息,例如服务
器是否出现过异常,出现了什么异常,这些事件是设备和程序在设计时候预先定义好的,