AWStats简介:
AWStats是使用Perl语言开发的一款开源日志分析系统。它不仅可以用来分析Apache网站服务器的访问日志,也可以用来分析Samba、Vsftpd、IIS等服务的日志文件。结合crond等计划任务服务,可以对不断增长的日志内容定期进行分析。
AWStats提供一系列的perl脚本实现:服务配置,日志读取,报表生成等功能。而功能实现的过程是:
- 将apache的访问情况记录到日志中,AWStats每次执行更新时读取这些日志
- 分析日志数据,将结果存储到数据库中
- AWStats提供一个cgi程序通过web页面来显示数据库中所统计的数据。
实验环境
- 系统:CentOS-7-x86_64
- Apache服务器:Apache/2.4.6
- 网站域名:www.benet.com
- 源码包:awstats-7.6
- DNS服务器
软件包安装
安装perl环境包
CenTos7中软件的安装多使用yum安装,在没有本地yum源的情况下,我们就需要连接到现网,获取在线更新源。但是在实验中我们只需要在本地虚拟机中操作,访问Web网页查看日志分析情况。所以可以先联网安装好实验所需的软件包,然后再将网卡模式更改为仅主机模式,设定静态IP地址,方便实验。
应为awstats是基于perl语言开发的,所以我们首先需要准备perl环境,再centos7系统中会有安装,如果没有,只需要使用yum安装即可,一般即使已经安装了,但会有更新。
perl -version //检查perl版本号
yum -y install perl* //yum安装即可
安装httpd
httpd的安装也是使用yum安装,当然也是可以选择编译安装。
yum -y install httpd
安装dns服务器
yum -y install bind
安装awstats软件包
AWStats软件包安装非常简单,只需将软件包解压到httpd服务器的/usr/local/下即可。软件包可使用挂载windows共享文件夹的方式。
tar zxf awstats-7.6.tar.gz
mv awstats-7.6/ /usr/local/awstats
配置httpd服务器
- 启动httpd服务
httpd软件安装完成主配置文件在:/etc/httpd/conf/httpd.conf,对其进行简单配置,包括修改监听地址(Listen 192.168.175.205:80)和服务器名称(ServerName www.benet.com:80)两项。修改完成之后启动服务systemctl start httpd.service //启动服务 systemctl status httpd.service //查看服务状态
- 在站点目录下创建测试首页。
cd /var/www/html/ echo "HTTPD TEST" > index.html
- 关闭防火墙
systemctl disable firewalld.service systemctl stop firewalld.service setenforce 0
- 在windows端使用IE浏览器进行访问,测试服务器是否搭建成功
配置DNS服务器
关于如何搭建DNS服务器,我在之前的文章中有过详细介绍,那篇文中的系统版本是Redhat 6.5,更换了系统,但是搭建方式却没有改变,可以参考,链接奉上DNS服务部署之一 域名解析服务
配置AWStats日志分析系统
- 为要统计的站点建立配置文件
AWStats系统支持统计多个网站的日志文件,通常以网站名称来区别不同的站点。因此,在执行分析前要为每个Web站点建立站点统计配置文件,借助于AWStats系统提供的awstats_configure.pl 脚本可以简化创建过程。cd /usr/local/awstats/tools/ perl awstats_configure.pl //执行脚本创建配置文件
- 修改站点统计配置文件
修改的主要内容包括指定要分析的web站点的日志文件路径和用来存放统计数据的目录cd /etc/awstats vim awstats.www.benet.com.conf LogFile="/etc/httpd/logs/access_log" //50行 DirData="/var/lib/awstats" //220行,该目录实际上没有,需要手动创建 mkdir /var/lib/awstats
执行日志分析
perl /usr/local/awstats/tools/awstats_updateall.pl now Running '"/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -update -config=www.benet.com -configdir="/etc/awstats"' to update config www.benet.com Create/Update database for config "/etc/awstats/awstats.www.benet.com.conf" by AWStats version 7.6 (build 20161204) From data in log file "/etc/httpd/logs/access_log"... Phase 1 : First bypass old records, searching new record... Searching new records from beginning of log file... Phase 2 : Now process new records (Flush history on disk after 20000 hosts)... Jumped lines in file: 0 Parsed lines in file: 63 Found 0 dropped records, Found 0 comments, Found 0 blank records, Found 0 corrupted records, Found 0 old records, Found 63 new qualified records.
创建计划任务
crontab -e */5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now //表示每隔五分钟更新 systemctl start crond //启动服务 systemctl enable crond //将服务加入系统启动项 /var/spool/mail/root //执行计划任务会在该目录下有新邮件提醒
访问AWStats日志分析系统
访问站点”http://www.benet.com/awstats/awstats.pl?config=www.benet.com “即可看到AWStats日志分析系统的统计页面
优化网页地址
不做更改的网页地址过长,不方便记忆,为了简化操作,我们可以在web站点的站点目录下建立一个自动调转的HTML网页。当访问http://www.benet.com/aws.html 即可自动跳转到日志分析系统页面。
vim /var/www/html/aws.html //头部标签中添加网页