137-8593-6100
首页 服务 案例 关于 资讯 帮助 联系

如何进行快速的日志分析并处理网站问题

2023/04/20  百图网络

web-log-article.jpg

什么是网站日志

网站为什么会有日志,日志是用来做什么的呢?网站的日志是记录web服务器,响应用户请求的接受和处理记录,另外,还会包含这些请求是否正常响应的状态信息,也叫做响应状态码,状态码有很多种,分别对应不同的情况,方便我们查询对应状态码,大体确认问题所在。通常来说,原始信息以log作为文件的扩展名,而linux主机的日志文件,会以日志文件创建顺序直接作为完整的文件名存储,以ascii编码存储。

网站日志开启

我们常见的是nginx和apache,默认情况下都是开启的,分为access.logerror.log两个,分别是访问日志和错误日志。但是如果发现你的网站没有日志文件,那么你也可以配置开启,一般情况下我们都是按照不同的虚拟主机单独配置访问日志,默认是全部放一起的。下面是针对虚拟主机的日志配置。

Nginx日志配置

server {    ...    #关键字 格式标签 日志格式    #log_format      #指定日志保存位置    access_log  logs/access.log  main;    ...}

Apache日志配置

    ...    ErrorLog "logs/test.com_error_log"                   CustomLog "logs/test.com_access_log" combined    # 这里应用 combined 格式的日志    ...

日志记录是什么样子的

下面是一条基本格式的nginx日志:

156.231.81.202 - - [26/Mar/2020:14:47:47 +0800] "GET / HTTP/1.1" 200 11393 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"

其中包含客户端IP、日期、时间、时区、访问方式、访问URL、协议版本、状态码、传输字节、响应消耗时间、UserAgent等信息。

分析日志的目的是什么

通过日志分析,我们可以从中得到有多少IP地址来访,又访问了多少页面,以及访问的增长趋势,访客的访问行为特征,通过什么关键词来到网站,停留时间最多的是哪些页面,发现跳出率过高的页面进行改善,甚至可以分析出用户行为特征和习惯,构建模型来提高页面广告的点击提高网站的点击率展现量等。

如何分析日志?自动还是手动?

众所周知的分析工具有基于服务器的awstats、Webalizer、GoAccess,通过js脚本获取前端统计数据的GA、CNZZ、百度统计等,有了这些自动化的工具之后,我们为什么还要自己苦哈哈的分析原始日志呢?原因在于基于服务器的一般数据量都比较大,利用软件分析的效率不太好;而基于js脚本的在线分析方式,对于站点最大流量是有一定限制的,很多对于非常大的数据流量会采取采样的解决方式,所以,数据的准确定肯定会有所下降。

我们伟致信息在网站维护当中用的比较多的工具就是GoAccess,开源的,大家可以试试。

通过上面的介绍,大家应该大致知道日志的作用以及为什么要分析日志。但是日志文件那么大,往往我们拿到的日志记录文件,一天的数据就有很多了,小的几百MB,而大的每个文件会超过GB,对于动辄几十GB甚至上百GB如此大体量的日志进行分析,海量的数据中,怎么样才能最短的时间内,找到对于我们来说有帮助的数据呢,进行快速的日志分析,一定要掌握好分析的思路。针对这种大数据量的日志,分析工具就不靠谱了,至少效率上大大不能满足要求。

下面来简单说说日志分析的思路:

首先要确定你分析的是什么问题,先把问题明确了,才能知道你需要哪些维度的数据。比如如果是收录大量被搜索引擎K掉了,那么必然会涉及到的维度有

  1. 日期和时间

  2. 页面URL

  3. 抓取状态

  4. user-agent

其中页面URL来确定目标页面,抓取状态来标注响应行为,user-agent来区分不同的搜索引擎。但是,并不是所有的页面都丢失,所以,为了缩小分析范围,需要找出是哪些搜索引擎K掉了页面,而被K掉的页面,是不是存在某些页面特征,这样讲特定的记录从海量记录中拆分出来,缩小分析范围和难度。

其次,要明确我们需要什么样的数据,需要的数据周期是多久的才能对问题的分析起到最恰当的帮助,并不是时间跨度越久越好,一定要避免不必要的时间的浪费,只做我们最需要的分析。比如页面丢失的话,通常需要页面的收录状态数据,页面抓取数据量和频率数据,和抓取量趋势数据,如果抓取量趋势负增长,首先就需要5XX系类和4XX系列错误状态趋势数据,5XX系类错误必须要引起警惕,及时发现,马上进行处理,拖延不得。

最后,我们预判的问题结症是什么,得到数据之后,通过分析,是否能够证实我们的推断,作为有力的证据来说明问题的存在和怎么样排除问题。当然了,这个过程中,可能还会发生之前预计的数据无法满足需求,那么就需要重新发起需求,再做分析。

快速的日志分析,必须明确思路,我们面临什么样的问题,我们现有的数据和将需要的数据,预判的问题是否能得到有力证明,如果不行,那么就要重新评估问题。

最后一句话,小文件的日志分析,通过工具挺方便,针对上GB的日志文件,还得用Linux命令。不过针对大文件,先用命令过滤,再用工具分析也是不错的选择。

内容源于网络,如有侵权或违规我们会尽快整改
在线提交您的需求
我们会在24小时内回复您,节假日除外。
微信沟通 QQ客服
扫描二维码添加客服微信