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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Apache日志的几种形式: Apache的访问日志中会记录服务器所处理的所有请求,对apache的访问日志进行分析是一种比较传统的形式。虽然现在很多第三方的统计分析工具提供了嵌入到页面中的JS脚本来进行分析的方式,但是因为两种分析方式的侧重点不同,目前两种形式的日志分析仍并行存在。

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

image

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

 

参考资料:

1、Apache日志文件

2、Apache模块mod_log_config

3、AWStats

4、JAWStats

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
10天前
|
存储 自然语言处理 分布式计算
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
Apache Doris 3.1 正式发布!全面升级半结构化分析,支持 VARIANT 稀疏列与模板化 Schema,提升湖仓一体能力,增强 Iceberg/Paimon 集成,优化存储引擎与查询性能,助力高效数据分析。
112 3
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
|
17天前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
|
6月前
|
存储 运维 监控
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
|
6月前
|
SQL 监控 数据挖掘
SLS 重磅升级:超大规模数据实现完全精确分析
SLS 全新推出的「SQL 完全精确」模式,通过“限”与“换”的策略切换,在快速分析与精确计算之间实现平衡,满足用户对于超大数据规模分析结果精确的刚性需求。标志着其在超大规模日志数据分析领域再次迈出了重要的一步。
498 117
|
3月前
|
监控 安全 NoSQL
【DevOps】Logstash详解:高效日志管理与分析工具
Logstash是ELK Stack核心组件之一,具备强大的日志收集、处理与转发能力。它支持多种数据来源,提供灵活的过滤、转换机制,并可通过插件扩展功能,广泛应用于系统日志分析、性能优化及安全合规等领域,是现代日志管理的关键工具。
426 0
|
5月前
|
自然语言处理 监控 安全
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里云可观测官方发布了Observable MCP Server,提供了一系列访问阿里云可观测各产品的工具能力,包含阿里云日志服务SLS、阿里云应用实时监控服务ARMS等,支持用户通过自然语言形式查询
532 0
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
|
7月前
|
存储 SQL Apache
为什么 Apache Doris 是比 Elasticsearch 更好的实时分析替代方案?
本文将从技术选型的视角,从开放性、系统架构、实时写入、实时存储、实时查询等多方面,深入分析 Apache Doris 与 Elasticsearch 的能力差异及性能表现
551 17
为什么 Apache Doris 是比 Elasticsearch 更好的实时分析替代方案?
|
4月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。
|
7月前
|
存储 消息中间件 缓存
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
275 1
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
|
6月前
|
监控 安全 BI
优化 Apache 日志记录的 5 个最佳实践
Apache 日志记录对于维护系统运行状况和网络安全至关重要,其核心包括访问日志与错误日志的管理。通过制定合理的日志策略,如选择合适的日志格式、利用条件日志减少冗余、优化日志级别、使用取证模块提升安全性及实施日志轮换,可有效提高日志可用性并降低系统负担。此外,借助 Eventlog Analyzer 等专业工具,能够实现日志的高效收集、可视化分析与威胁检测,从而精准定位安全隐患、评估服务器性能,并满足合规需求,为强化网络安全提供有力支持。
139 0
优化 Apache 日志记录的 5 个最佳实践

热门文章

最新文章

推荐镜像

更多