利用AWStat+JAWStat进行Apache访问日志分析

Apache日志的几种形式

Apache的访问日志中会记录服务器所处理的所有请求,对apache的访问日志进行分析是一种比较传统的形式。虽然现在很多第三方的统计分析工具提供了嵌入到页面中的JS脚本来进行分析的方式,但是因为两种分析方式的侧重点不同,目前两种形式的日志分析仍并行存在。

不同版本的Apache httpd使用了不同的模块和指令来控制对访问的记录,包括mod_log_referer, mod_log_agent和TransferLog指令。现在,CustomLog指令包含了旧版本中相关指令的所有功能。日志分析与服务器产生的日志形式紧密相关,下面就是总结的一些常用的Apache访问日志的形式。

1、Common Log Format(CLF log format)

这是一种典型的记录格式:

LogFormat “%h %l %u %t \”%r\” %>s %b” common

CustomLog logs/access_log common

上例中第一行先定义了日志的格式,后面一行再定义日志产生的位置和格式。最后产生的结果如下:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326

日志格式中具体字符代表的含义,我们可以在参考资料2中看到。

2、NCSA Combined log format

组合日志格式是另外一种常用的日志格式,如下:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog log/access_log combined

记录的形式如下:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"

AWStat的安装

AWStat的安装比较简单。可以使用tools文件下的配置工具,按照提示一步步进行安装,也可以自行创建一个配置文件并且进行配置。具体的过程官方网站上介绍的都比较清楚,就不再赘述了。

安装完成后,配置好 LogFile/LogFormat等几个必须配置的选项,确保你所要分析的Apache访问日志的格式和定义的格式一致,如果已经预定义的几种格式不能满足你的要求,也可以进行自己定义。例如我自己的Apache日志不属于某种规范,所以必须自己定义。

Apache日志:

LogFormat "%h %l %u %t %T \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\"" combined

AWStats日志格式:

LogFormat="%host %other %logname %time1 %other %methodurl %code %bytesd %refererquot %uaquot %otherquota"

这样就确保了AWStats可以正确分析我的日志,然后就执行日志分析命令。

perl awstats.pl -config=baiduleju update

我所分析的日志,是从各个Web服务器上统一汇总过来的,所以LogFile配置中如果写成固定的文件名,则会不能适应日志文件的变化,我们日志文件存放的格式为:自定义目录/100910/100910_log_1[2.3.4].gz。与日期相关,并且进行了压缩,为此,我编写了一个脚本,让他来处理这些日志文件。

#!/bin/bash

DAY=$1
if [[ ! $DAY ]]
then
        DAY=`date -d '1 day ago' +%y%m%d`
fi

`cd /awstats的目录/awstats/wwwroot/cgi-bin`
`cp /data0/dpoolapachelog/$DAY/$DAY.house.baidu.com_* ./log_tmp/`
`gzip -d ./log_tmp/*`
`/awstats的目录/awstats/tools/logresolvemerge.pl ./log_tmp/* > ./log_tmp/newlog`
perl awstats.pl -config=baiduleju -update
`rm log_tmp/*`

主要过程就是将日志文件先拷贝到一个临时目录,然后利用logresolvemerge合并后进行分析,完成后删除。

最后在我指定的数据目录 ./data/ 下得到更新后的分析日志。

分析完成后,其实就可以通过web方式或者脚本生成静态的分析报告来查看结果了,但是awstats分析出来的结果呈现方式确实不是太好看,于是就用到了JAWStat。

JAWStat的安装

JAWStat需要Apache和PHP的支持,所以需要已经配置了相应的环境。它提供了一个非常友好的界面和方便的操作服务,而且支持不同的语言版本。截图如下:

配置也非常简单,只需要在程序的config.php文件中修改相应的参数就可以了。但是我发现在分析日志文件大的时候,会产生内存溢出的问题,需要修改一下最大内存限制。感觉处理方式上海由改进的可能,但是作者对这个的开发已经停滞了好久了。

 

参考资料:

1、Apache日志文件

2、Apache模块mod_log_config

3、AWStats

4、JAWStats

时间: 2024-10-14 23:49:50

利用AWStat+JAWStat进行Apache访问日志分析的相关文章

python分析apache访问日志脚本分享_python

#!/usr/bin/env python # coding=utf-8 #------------------------------------------------------ # Name: Apache 日志分析脚本 # Purpose: 此脚本只用来分析Apache的访问日志 # Version: 2.0 # Author: LEO # Created: 2013-4-26 # Modified: 2013-5-4 # Copyright: (c) LEO 2013 #------

10分钟精通Nginx访问日志分析统计

简介 很多个人站长在搭建网站时使用nginx作为服务器,为了了解网站的访问情况,一般有两种手段: 使用CNZZ之类的方式,在前端页面插入js,用户访问的时候触发js,记录访问请求. 利用流计算.或离线统计分析nginx的access log,从日志中挖掘有用信息. 两种方式各有优缺点: CNZZ使用起来比较简单,各种指标定义清楚.但这种方式只能记录页面的访问请求,像ajax之类的请求是无法记录的,还有爬虫信息也不会记录. 利用流计算.离线计算引擎可以支持个性化需求,但需要搭建一套环境,并且在实时

Filebeat+Logstash+ElasticSearch+Kibana搭建Apache访问日志解析平台

对于ELK还不太熟悉的同学可以参考我前面的两篇文章ElasticSearch + Logstash + Kibana 搭建笔记.Log stash学习笔记(一),本文搭建了一套专门访问Apache的访问日志的ELK环境,能够实现访问日志的可视化分析. 数据源 Filebeat + Logstash 数据源对应Logstash中的Input部分,本文采用Filebeat来读取Apache日志提供给Logstash,Logstash进行日志解析输入到ES中进行存储.Filebeat的配置比较简单,参

快速把Apache访问日志实时写入mysql数据库

在apache配置文件或是虚拟主机配置文件中(也就是配置LogFormat以及CustomLog部分)增加如下内容: LogFormat "INSERT INTO apachelog (ID, dateTime, IP, URL, code, referer, userAgent, size, request) VALUES ( NULL , \"%{%Y-%m-%d %H:%M:%S}t\", \"%a\", \"%U\", \&qu

【数据架构解读】基于阿里云数加StreamCompute和MaxCompute构建的访问日志统计分析

[场景] 用户搭建网站会不断的产生访问日志(Nginx,Apache访问日志).为了从访问日志中挖掘出更多价值,本文主要阐述如果利用阿里云数加从沉睡中的访问日志中获取更有价值的数据,包括用于实时统计和展示网站访问的一系列指标,例如PV,UV,设备,地理,状态码,爬虫,网络流量等指标. [具体分析需求] 用户想根据访问日志来实时统计和展示网站访问重要指标,需要设计到流式计算和离线计算,那么阿里云数加·StreamCompute更好的可以解决日志的实时计算场景,而阿里云数加·MaxCompute则更

如何修改nginx源代码改变访问日志的时间格式

由于公司领导说要把nginx访问日志存进数据库,然后利用程序进行分析,但是nginx访问日志的时间格式是:[17/Jun/2013:14:42:13 +0400] 这种格式不能用datetime格式存进数据库,只能以字符串的格式存进数据库,但是以字符串的格式存进数据库不好按天来进程查询分析,所以需要更改nginx访问日志的时间格式,经过网上查找资料得知更改源代码可以再进行编译可以更改nginx访问日志的格式,但是公司里的程序员都是PHP的,没有人懂C语言,想来想去只有我自己改源码然后编译安装(虽

网站访问日志统计分析

场景 用户使用ECS搭建网站,网站的访问日志(Nginx,Apache访问日志)收集到阿里云日志服务中供查询.为了从访问日志中挖掘出更多价值,日志服务提供了一个docker镜像,用于实时统计和展示网站访问的一系列指标,例如PV,UV,延时,地理,状态码,爬虫,网络流量等指标. 指标 PV 分别以5分钟.1小时.1天为统计周期,统计每个周期内的日志总数. UV 分别以1小时.1天为统计周期,统计每个周期内的IP总数. 页面 以天为统计周期,统计访问最多的页面路径,以及访问最多的参数.例如请求/fo

360收购不到一岁的基于SaaS模式在线网站日志分析平台“日志宝”

冯大辉的http://www.aliyun.com/zixun/aggregation/32631.html">小道消息今日透露,360已经完成了对"日志宝"的收购.日志宝创始人兼CEO董方向我们证实了该消息,并表示此次收购是基于业务和资源的整合,但未透露具体收购细节,只是说收购形式为"股票+现金". 日志宝是一个基于SaaS模式的在线网站日志分析平台,专注于提供网站Web访问日志分析服务,目前兼容NCSA和W3C日志格式,于2012年5月7日正式上

图解 windows日志分析工具 WebLog Expert 安装及使用教程

WebLog Expert 能够分析网站的流量记录,将原始的流量记录分析出Activity statistics.Access statistics.Information about visitors.Referrers.Information about errors等基本而重要的流量信息,帮助你了解网友对于你的网站的使用状况. 1.WebLog Expert简单介绍 Weblog expert是一个快速和强大的访问日志分析工具.可以让你更加了解你的网站的访客:活动统计,访问的文件的路径,通