需求描述

管理员搭建完服务器,要对网站的性能做后期的不断的分析和调整,以至达到最完美的状态。针对服务器每天的日志访问量、高峰时间、压力等等是通过日志信息系统分析。如果事前没有预估,没有给定足相应的cpu、内存。假如有一天突然高发值,服务器会直接崩溃。通过观察日志,以便在以后工作调整中提出整改方案。

简介

在httpd服务器的访问日志文件access_log中,记录了大量的客户机访问信息,通过分析这些信息,可以及时了解Web站点的访问情况,通过AWStats日志分析系统,以完成自动化的日志分析与统计工作。通过AWStats日志分析系统可用来分析Apache、 Samba、Vsftpd、IIs等服务器的访问日志信息。

功能描述

  • 访问量,访问次数,页面浏览量,点击数,数据流量等
  • 精确到每月、每日、每小时的数据
  • 访问者国家
  • 访问者IP
  • Robots/Spiders的统计
  • 访客持续时间
  • 对不同Files type的统计信息
  • Pages-URL的统计
  • 访客操作系统浏览器等信息
  • 其它信息(搜索关键字等等)

实验环境

系统环境:centos6.5
服务器IP地址:192.168.100.103
yum挂载目录:/mnt/sr0

搭建步骤

一、准备工作

1、关闭防火墙及selinux

[root@localhost ~]# chkconfig iptables off #随开机关闭iptables
[root@localhost ~]# vim /etc/sysconfig/selinux
构建AWStats日志分析系统

[root@localhost ~]# reboot #重启Linux生效

二、搭建httpd服务

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf #修改主配置文件

编辑以下参数:

ServerName www.bt.com:80
Listen 192.168.100.103:80

[root@Init5 ~]# /etc/init.d/httpd start #启动httpd服务
[root@Init5 ~]# echo "<h1>Hello World</h1>" > /var/www/html/index.html #设置默认首页

三、搭建DNS服务器

1、安装bind软件包

[root@localhost ~]# cd /mnt/sr0/Packages/
[root@localhost Packages]# rpm -ivh bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

2、修改主配置文件named.conf

[root@localhost ~]# vim /etc/named.conf
构建AWStats日志分析系统

3、创建并修改DNS正向解析文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost bt.com.zone #将模板文件改为正向解析文件进行修改
[root@localhost ~]# vim /var/named/bt.com.zone #修改正向解析文件
构建AWStats日志分析系统

4、启动DNS服务器

[root@localhost ~]# /etc/init.d/named start

5、修改DNS客户机配置文件

[root@localhost ~]# echo "nameserver 192.168.100.103" >> /etc/resolv.conf

6、测试DNS解析

[root@localhost ~]# nslookup www.bt.com #nslookup 用于查询DNS的记录,查看域名解析是否正常
构建AWStats日志分析系统

四、搭建AWStats日志分析系统

1、安装AWStats软件包

[root@localhost ~]# tar xvf awstats-7.6.tar.gz #解压
[root@localhost ~]# mv awstats-7.6 /usr/local/awstats #源码剪切至/usr/local下

[root@localhost ~]# cd /usr/local/awstats/tools/
[root@localhost ~]# chmod +x awstats_configure.pl #将配置脚本赋予执行权限

[root@localhost tools]# ./awstats_configure.pl #配置AWStats服务

----- AWStats awstats_configure 1.0 (build 20140126) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:

  • You are not an administrator user,
  • You want to analyze downloaded log files without web server,
  • You want to analyze mail or ftp log files instead of web log files,
  • You need to analyze load balanced servers log files,
  • You want to 'understand' all possible ways to use AWStats...
    Read the AWStats documentation (docs/index.html).

-----> Running OS detected: Linux, BSD or Unix

-----> Check for web server install

Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf #可以填写rpm包安装配置文件
Example: /usr/local/apache2/conf/httpd.conf #可以填写源码包安装的配置文件
Example: c:\Program files\apache group\apache\conf\httpd.conf #可以填写windows下安装的apache配置文件
Config file path ('none' to skip web server setup):

> /etc/httpd/conf/httpd.conf #填写网站服务器的完整配置文件路径。我的路径是/etc/httpd/conf/httpd.conf

-----> Check and complete web server config file '/usr/local/httpd/conf/httpd.conf'
Warning: You Apache config file contains directives to write 'common' log files
This means that some features can't work (os, browsers and keywords detection).

Do you want me to setup Apache to write 'combined' log files [y/N] ? y #将日志格式转换成combined,显示更为详细

Add 'Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"'
Add 'Alias /awstatscss "/usr/local/awstats/wwwroot/css/"'
Add 'Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"'
Add 'ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"'
Add '<Directory>' directive
AWStats directives added to Apache config file.

-----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'
File awstats.model.conf updated.

-----> Need to create a new config file ?

Do you want me to build a new AWStats config/profile file (required if first install) [y/N] ? y #是否需要创建AWStats的配置文件,当然"y"

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:

> www.bt.com #绑定网站域名,虚拟主机名或者自定义配置名,可以同时支持多个站点进行观测。我这里填写的是www.bt.com

-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):

> #定义配置文件路径,直接点击回车默认是在/etc/awstats目录下

-----> Create config file '/etc/awstats/awstats.www.bt.com.conf'
Config file /etc/awstats/awstats.www.bt.com.conf created.

-----> Restart Web server with '/sbin/service httpd restart'

-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.bt.com
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now

Press ENTER to continue... #直接点击回车跳过

A SIMPLE config file has been created: /etc/awstats/awstats.www.bt.com.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'www.bt.com' with command:
\> perl awstats.pl -update -config=www.bt.com
You can also read your statistics for 'www.bt.com' with URL:

> http://localhost/awstats/awstats.pl?config=www.bt.com #注意访问awstats的URL

Press ENTER to finish… #点击回车结束

2、删除httpd日志

[root@localhost ~]# cd /var/log/httpd/
[root@localhost logs]# rm -rf *_log #之前日志格式是common,现在使用awstats改为了combined
[root@localhost logs]# service httpd restart #重启服务,使配置文件中修改的日志格式生效

3、修改awstats配置文件

[root@localhost ~]# vim /etc/awstats/awstats.www.bt.com.conf

修改以下参数:

LogFile="/var/log/httpd/access_log" #指定httpd服务的访问日志文件的位置
DirData="/var/lib/awstats" #awstats统计的所有数据存放的位置,没有存在需要手工建立
Lang="cn" #中文语言
LevelForWormsDetection=2   #日志等级,不对警告日志进行统计

[root@localhost ~]# mkdir /var/lib/awstats #创建awstats统计数据存放目录

4、采集数据

[root@localhost ~]# cd /usr/local/awstats/tools/
[root@localhost tools]# chmod +x awstats_updateall.pl #将awstats工具目录下所有命令赋予执行权限
构建AWStats日志分析系统

[root@localhost tools]# ./awstats_updateall.pl now #数据采集完成

5、访问awstats

构建AWStats日志分析系统

6、引入周期性计划任务

[root@localhost tools]# crontab -e #编辑周期性任务计划

/5 * /usr/local/awstats/tools/awstats_updateall.pl now #每隔五分钟采集一次数据

7、设置网页自动跳转

[root@localhost ~]# vim /var/www/html/abc.html #创建跳转页面

<html>
  <head>
   <meta http-equiv=refresh content="0;http://www.bt.com/awstats/awstats.pl?config=www.bt.com">;
  </head>
 <body></body>
</html>

8、再次测试访问

构建AWStats日志分析系统

9、设置awstats网页访问认证

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
构建AWStats日志分析系统

10、登录访问

构建AWStats日志分析系统