在httpd服务器(httpd
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浏览器进行访问,测试服务器是否搭建成功
http://i2.运维网.com/images/blog/201806/23/ff29cb6c4e5804006f519ecaa457f868.jpg
配置DNS服务器
关于如何搭建DNS服务器,我在之前的文章中有过详细介绍,那篇文中的系统版本是Redhat 6.5,更换了系统,但是搭建方式却没有改变,可以参考,链接奉上DNS服务部署之一 域名解析服务
配置AWStats日志分析系统
[*]为要统计的站点建立配置文件
AWStats系统支持统计多个网站的日志文件,通常以网站名称来区别不同的站点。因此,在执行分析前要为每个Web站点建立站点统计配置文件,借助于AWStats系统提供的awstats_configure.pl 脚本可以简化创建过程。
cd /usr/local/awstats/tools/
perl awstats_configure.pl //执行脚本创建配置文件
[*]指定httpd主配置文件路径
http://i2.运维网.com/images/blog/201806/23/f0c0579e61eeb61534a6e62fd6653def.jpg
[*]为指定Web站点创建配置文件
http://i2.运维网.com/images/blog/201806/23/5afbbe8a0e4b436de5ce3c595ce640ec.jpg
[*]指定要统计的目标站点名称
http://i2.运维网.com/images/blog/201806/23/ef31360942b8f7a8bd4101a67e951ef9.jpg
[*]日志分析系统Web页面地址
http://i2.运维网.com/images/blog/201806/23/36acba977942e1486b24198cfd56dd2e.jpg
[*]因为在Apache2.4以上的版本中重新定义了访问权限,所需需将在httpd主配置文件中自动生成的awstats访问权限进行简单修改,在配置文件末尾。
Options None
AllowOverride None
Order allow,deny
Allow from all
Require all granted //添加该句
[*]重启httpd服务
systemctl restart httpd.service
[*]修改站点统计配置文件
修改的主要内容包括指定要分析的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 //执行计划任务会在该目录下有新邮件提醒
http://i2.运维网.com/images/blog/201806/23/b6be031d90d9df0a13dfd633705a4518.jpg
访问AWStats日志分析系统
访问站点”http://www.benet.com/awstats/awstats.pl?config=www.benet.com “即可看到AWStats日志分析系统的统计页面
http://i2.运维网.com/images/blog/201806/23/fad867319ed7e79b2cbe74540a6126ae.jpg
优化网页地址
不做更改的网页地址过长,不方便记忆,为了简化操作,我们可以在web站点的站点目录下建立一个自动调转的HTML网页。当访问http://www.benet.com/aws.html 即可自动跳转到日志分析系统页面。
vim /var/www/html/aws.html
//头部标签中添加网页
页:
[1]