Apache日志分析工具Awstats的安装和配置

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:       这些天由于几个不同的流量统计工具在统计数据上出现了很大差异,当时就想到了应该分析一下apache的access log,那里的数据应该是最权威的。刚开始为了应急写了一个简单分析工具,统计了一下简单的数据。

      这些天由于几个不同的流量统计工具在统计数据上出现了很大差异,当时就想到了应该分析一下apache的access log,那里的数据应该是最权威的。刚开始为了应急写了一个简单分析工具,统计了一下简单的数据。而开源的Awstats应该是当前应用比较广泛,功能比较完全的工具。

      Awstats的安装和配置都是相当地简单,不过我还是走了一些弯路,其中最惨痛的教训就是:最好按照默认的方式进行配置。下面记录我安装和配置的过程。首先交待一下环境:64位的CentOS 5.6 + Apache Httpd 2.2

 

      1. 配置Apache的log输出方式。

      默认情况下apache的access.log到一定大小会被压缩,有些旧的也会被删除。在Apache的文档中没有找到关于access log管理的相关内容,希望有知道的同学不吝赐教。这里我把配置为每天一个文件,便于以后分析和备份。打开httpd.conf,找到access log配置的位置,将

      CustomLog logs/access_log common

改为

      CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log.%Y%m%d 86400" combined

其中rotatelogs是Apache提供的一个日志工具,可以通过which rotatelogs找出该工具的路径。另外一个改动时,将log的内容由common改为了combined,使得log中包含了更多了信息,而这也是Awstats所需要的。如果日志配置在Virtual Hosts中,也同样修改就可以了。

      修改后重启httpd服务,就会看到在/var/log/httpd下产生了类似access_log.20110612的日志文件。

 

      2. 安装Awstats

      首先下载Awstats的安装包:awstats-7.0.tar.gz,也可以在下载页面上找到适合自己环境的安装文件。

      ]# wget http://prdownloads.sourceforge.net/awstats/awstats-7.0.tar.gz

      ]# tar xzvf awstats-7.0.tar.gz

      ]# mv awstats-7.0 /var/

      下面就可以按照Awstats的官方指南进行安装了:http://awstats.sourceforge.net/docs/awstats_setup.html。其中有几点需要注意的:

      (1)当询问apache的配置文件路径时,要写入当前环境中真实的apache配置文件路径,比如,我的就是:/etc/httpd/conf/httpd.conf

      (2)在询问Awstats配置文件存放的路径时,一定要使用默认的路径,否则后面会有意想不到的麻烦。

      (3)当要新建Awstats的配置文件时,会问配置文件的名称,其实这个时候是问要分析的log属于哪个域名,比如你的网站是www.mysite.com,就可以输入:www.mysite.com。

       在安装过程中,我一直是一路yes。安装结束时,会在/etc下面生成一个新的目录 awstats,并且在下面有一个名称为awstats.www.mysite.com.conf。

       这是再打开httpd.conf发现在最下面多了一些和Awstats相关的配置。

       在/var/lib下新建一个名为awstats的文件,用来存放分析日志后生成的数据文件。

 

      3. 配置Awstats

      安装完成后,还需要进行一下简单的配置,才能够开始使用Awstats。打开上面生成的配置文件awstats.www.mysite.com.conf,找到LogFile,将其改为实际的日志文件的路径。需要注意的时,在第一步中,已经把日志文件改为每天一个以当天日期命名的名字,那么这里的配置就是:

      LogFile=/var/log/httpd/access_log.%YYYY-0%MM-0%DD

表示分析的是当前最新的日志文件。关于这个配置可以参考其注释中的详细解释。

 

     4. 验证安装

     配置基本算完成了,下面进行验证:

     ]# cd /var/awstats/wwwroot/cgi-bin

     ]# perl awstats.pl -config=www.mysite.com -update

     如果你严格执行了上面的步骤,这一步就应该没有问题,可以看到类似下面的输出:

Create/Update database for config "/etc/awstats/awstats.www.mysite.com.conf" by AWStats version 7.0 (build 1.971)

>From data in log file "/var/log/httpd/access_log.20110611"...

Phase 1 : First bypass old records, searching new record...

Direct access after last parsed record (after line 545194)

Jumped lines in file: 545194

 Found 545194 already parsed records.

Parsed lines in file: 1677

 Found 0 dropped records,

 Found 0 comments,

 Found 0 blank records,

 Found 0 corrupted records,

 Found 0 old records,

 Found 1677 new qualified records.

      为了安全起见,我没有打开网页上的更新链接,而是在crontab配置了每10分钟运行一次上面的程序:
      */10 * * * * root cd /var/awstats/wwwroot/cgi-bin/;perl awstats.pl -config=www.mysite.com -update
 这样在页面就可以看到每10分钟刷新一次的统计结果了。
        5. 安装IP地址转化的插件
       在Awstats的统计报表中,有一个是显示IP所对应的实际地址,这个需要通过插件来实现。网上比较通用的方式是使用QQWry.dat来实现。但是为了找到这个插件是费了很长时间的功夫,因为很多地方都只能下载IP数据库,而不能下载插件。
       IP数据库可以通过: http://www.cz88.net/fox/ipdat.shtml下载。注意:这里下载的是一个exe的安装文件,安装后会有一个qqwry.dat文件,它就是要用到的ip数据库。这个IP数据库是会经常更新,所以我们也要保持更新。
       插件相关的文件可以通过: http://blogimg.chinaunix.net/blog/upfile/070103141422.rar 下载(不知道这个网址什么时候会失效)。解压后里面有三个文件:qqhostinfo.pm、qqwry.pl和QQWry.Dat,其中第一个是插件文件,第二个真正的执行转化的perl程序,第三个就是数据库了,可以用上面最新的数据库覆盖这个。将这个三个文件复制到/var/awstats/wwwroot/cgi-bin/plugins/目录下,并做如下修改:
      ]# chmod 755 qqhostinfo.pm
      ]# vim qqwry.pl
      将其中的./QQWry.Dat改为/var/awstats/wwwroot/cgi-bin/plugins/qqwry.dat。
      编辑Awstats的配置文件awstats.www.mysite.com.conf,找到
      #LoadPlugin="hostinfo"
      在其后新增一行
      LoadPlugin="qqhostinfo"
      完成以上所有步骤后,应该就可以在网页上看到了统计结果了。中文可能会显示成乱码,只需要把浏览器语言设为中文就可以了。
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
1月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
207 0
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
517 5
|
安全 BI 网络安全
EventLog Analyzer 如何满足等保合规要求?密码有效期、产品日志保留、配置备份三大核心问题全面解答
EventLog Analyzer(ELA)助力企业满足网络安全等级保护要求,支持配置自动/手动备份、日志180天留存及密码策略管理,提升合规性与安全运营效率。
|
8月前
|
SQL Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— application.yml 中对日志的配置
在 Spring Boot 项目中,`application.yml` 文件用于配置日志。通过 `logging.config` 指定日志配置文件(如 `logback.xml`),实现日志详细设置。`logging.level` 可定义包的日志输出级别,例如将 `com.itcodai.course03.dao` 包设为 `trace` 级别,便于开发时查看 SQL 操作。日志级别从高到低为 ERROR、WARN、INFO、DEBUG,生产环境建议调整为较高级别以减少日志量。本课程采用 yml 格式,因其层次清晰,但需注意格式要求。
779 0
|
4月前
|
JSON 安全 Go
Go语言项目工程化 —— 日志、配置、错误处理规范
本章详解Go语言项目工程化核心规范,涵盖日志、配置与错误处理三大关键领域。在日志方面,强调其在问题排查、性能优化和安全审计中的作用,推荐使用高性能结构化日志库zap,并介绍日志级别与结构化输出的最佳实践。配置管理部分讨论了配置分离的必要性,对比多种配置格式如JSON、YAML及环境变量,并提供viper库实现多环境配置的示例。错误处理部分阐述Go语言显式返回error的设计哲学,讲解标准处理方式、自定义错误类型、错误封装与堆栈追踪技巧,并提出按调用层级进行错误处理的建议。最后,总结各模块的工程化最佳实践,助力构建可维护、可观测且健壮的Go应用。
|
5月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
622 4
|
7月前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
228 22
|
8月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
1月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
311 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
282 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式

热门文章

最新文章

推荐镜像

更多