Apache日志分割

随着网站的访问量越来越大,默认情况下Apache服务器产生的单个日志文件也会越来越大,如果不采用日志分割,当日志文件不断增大时,当占用太大的磁盘空间时将会被系统删除,而且随着日志文件的增大,对于管理员对Apache服务器进行访问分析、网络安全监察、网络运行状况监控等操作带来较大难度,因此管理这些海量日志对网站的意义重大。

实验描述:

  • 完成对Apache的日志分割
  • 本实验采用Apache2.2版本
  • 服务器IP:192.168.100.107
  • 所需服务:httpd、DNS
  • 服务器系统Redhat6.5版本

服务部署

rpm -q httpd //检查Apache是否安装和安装版本
rpm -q bind //检查DNS服务是否安装
service iptables stop
setenforce 0

1、配置DNS服务

详细可参见可参见:DNS域名解析服务配置

rpm -ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm //首先安装DNS域名解析服务
vim /etc/named.conf //配置域名解析主配置文件

options {
        listen-on port 53 { 192.168.100.107; }; //监听端口主机IP
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };   //允许任意网段主机都可解析
        recursion yes;

vim /etc/named.rfc1912.zones //编辑区域配置文件

zone "yun.com" IN {
        type master;
        file "yun.com.zone";
        allow-update { none; };
};

cd /var/named //切换到区域数据配置目录下
cp -p named.localhost yun.com.zone //复制区域数据配置文件模板
vim yun.com.zone //配置区域数据配置文件

$TTL 1D
@       IN SOA  @ admin. (     //修改管理员邮箱
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.100.107   //设置解析地址

service named start //开启DNS服务

2、配置日志分割

rpm -ivh /mnt/Packages/httpd-2.2.15-29.el6_4.x86_64.rpm // 安装Apache2.2
vim /etc/httpd/conf/httpd.conf //编辑主配置文件

Listen 192.168.100.107:80  //更改监听地址和监听端口
#Listen 80   //注释IPV6的监听
...
ServerName www.yun.com:80  //打开主机域名

vim /etc/httpd/con.d/vhost.conf

写入以下内容:

<VirtualHost *:80>      //任意网址的80端口
   ServerAdmin admin@yun.cn  //管理员邮箱
   DocumentRoot "/usr/local/apache/htdocs"  //创建Apache域名首页站点
   ServerName www.yun.com   //访问域名
   ErrorLog "|/usr/sbin/rotatelogs -l /usr/local/apache/logs/www.benet.com-error_%Y%m%d.log 86400"  
   //调用Apache自带日志分割工具rotatelogs
   //错误日志
   CustomLog "|/usr/sbin/rotatelogs -l /usr/local/apache/logs/www.benet.com-access_%Y%m%d.log 86400" combined
   //访问日志,按年月日显示
   //注:此处需要制定日志分割的存放位置/usr/local/apache/logs
</VirtualHost>

mkdir -p /usr/local/apache/htdocs //创建站点
echo "this is rotatelogs web" > /usr/local/apache/htdocs/index.html //编辑首页内容
mkdir -p /usr/local/apache/logs //创建日志分割存放目录

service httpd start //启动httpd服务

当访问网站页面时:
Apache日志分割&日志分析

可以看到/usr/local/apache/logs下生成了日志文件:
Apache日志分割&日志分析

当修改服务器系统日期时,再次访问Apache服务网站,则会按日期又生成一份日志文件:
Apache日志分割&日志分析

访问日志分析

在httpd的访问日志文件中,记录了大量的客户机访问信息,通过分析这些信息,可以及时了解web站点的访问情况,这里通过安装AWStsts日志分析系统,完成自动化的日志分析与统计工作。

1、部署AWStats分析系统

mount.cifs //192.168.100.3/awstats /opt/abc/
通过共享挂载将awstats软件挂载到/opt/abc下
tar zxvf awstats-7.6.tar.gz -C /opt/ 解压软件包
mv /opt/awstats-7.6 /usr/local/awstats //将软件包重命名到/usr/local/,因为该软件在解压后可直接使用,因此不需要安装
cd /usr/local/awstats/tools //切换到工具目录下

./awstats_configure.pl //执行配置文件

Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf          //输入主配置文件
Your web site, virtual server or profile name:
> www.yun.com                       //输入域名

//其他全部是y 或者 回车

vim /etc/httpd/conf/httpd.conf //当执行完上面的文件后,再次打开httpd服务主配置文件,发现末尾多了如下内容

<Directory "/usr/local/awstats/wwwroot">    //awstats默认站点
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

vim /etc/awstats/awstats.www.yun.com.conf //编辑需要统计的网站的配置文件

LogFile="/var/log/httpd/access_log"    
//修改访问日志文件位置
//也就是指向日志分割后的日志文件所在位置
DirData="/var/lib/awstats"              
//用来指定数据目录,可采用默认,awstats 默认不存在(需要创建)

mkdir -p /var/lib/awstats //创建默认数据目录
service httpd restart //重启httpd服务

在浏览器中访问:
http://www.yun.com/awstats/awstats.pl?config=www.yun.com 即可进入统计页面

cd /usr/local/awstats/tools/
./awstats_updateall.pl now //刷新统计信息

Apache日志分割&日志分析

2、优化页面地址

按照上述方法,在访问统计页面时输入页面地址过长,也容易出错,因此需要通过对页面地址进行优化,方便管理和访问。

cd /usr/local/apache/htdocs //切换到网页访问默认站点下
vim awb.html //设置统计页面首页

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

将统计页面网址替换成www.yun.com/awb.html

crontab -e //使用周期性任务刷新统计信息

*/5 * * * *  /usr/local/awstats/tools/awstats_updateall.pl now   

//设置每隔五分钟刷新

service httpd restart //重启httpd服务

在浏览器中输入www.yun.com/awb.html即可实现访问
Apache日志分割&日志分析