Apache日志分割&日志分析

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 [email protected]  //管理员邮箱
   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服务

当访问网站页面时:

可以看到/usr/local/apache/logs下生成了日志文件:

当修改服务器系统日期时,再次访问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 //刷新统计信息

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即可实现访问

原文地址:http://blog.51cto.com/13659253/2126032

时间: 2024-08-09 10:38:09

Apache日志分割&日志分析的相关文章

Nginx之隐藏版本号,优化缓存,日志分割

nginx之隐藏版本号 配置nginx [[email protected] ~]# yum install pcre-devel zlib-devel gcc gcc-c++ -y ##安装环境包 [[email protected] ~]# useradd -M -s /sbin/nologin nginx ##创建程序性用户 [[email protected] ~]# mkdir /chen ##创建挂载点 [[email protected] ~]# mount.cifs //192.

apache中部署rotatelogs日志分割和awstats日志分析

概述:rotatelogs日志分割:apache使用自带的日志分割模块rotatelogs分割日志,rotatelogs 是 Apache中自带的管道日志程序.awstats日志分析:是一款开源日志分析系统,可用来分析Apache网站服务器的访问日志,也可用来分析Samba.Vsftpd.IIS等服务的日志信息.结合crond等计划任务服务,可以对不断增长的日志内容定期进行分析.实验步骤:(一).rotatelogs日志分割1.vim编辑/etc/httpd/conf/httpd.conf配置文

apache日志及日志分割

在apache的配置文件httpd.conf中找到 ErrorLog logs/error_log //错误日志 CustomLog logs/access_log common           //访问日志 为什么要分割日志随着网站的访问越来越大,WebServer产生的日志文件也会越来越大,如果不对日志进行分割,那么只能一次将大的日志(如Apache的日志)整个删除,这样也丢失了很多对网站比较宝贵的信息,因为这些日志可以用来进行访问分析.历史安全监察.历史运行状况监控等,因此管理好这些海

nginx日志分割处理以及分析

在很多时候,我们会非常关注网站的访问量,比如网站的日PV是多少.网站某个功能上线之后点击量是多少,像这些东西都是需要从web容器中的访问日志统计出来的,下面我们看一下如何在nginx中统计网站的访问信息 1.设置Nginx访问日志记录格式 在默认情况下,nginx只是记录相关get信息,像post页面是不记录的,所以下面需要修改nginx.conf,让其访问日志记录post等请求信息,在nginx.conf中server段中加入如下信息 log_format  access  '$remote_

Apache日志分割(rotatelogs、cronolog)

为什么要进行日志分割? 随着网站的访问量越来越大,web服务器产生的日志文件也会越来越大,如果不对其进行分割管理,单个日志文件会变得异常庞大,不利于对日志进行综合分析.监控等.另外,当服务器遇到故障时,运维人员就要打开日志文件进行分析,打开的过程必然会消耗很长时间,也势必会增加处理故障的时间.因此管理好海量的日志文件对管理网站是有重大意义的. 以下介绍两种常见的日志分割方法: 一. Apache自带的rotatelogs分割工具 1.查询rotatelogs命令的绝对路径 which rotat

Apache配置与应用——日志分割

日志分割 **随着网站的访问量增加,默认情况Apache单个日志文件也会越来越大** * 日志文件占用磁盘空间很大 * 查看相关信息不方便 **对日志文件进行分割** * Apache自带rotatelogs分割工具实现 * 第三方工具cronolog分割 rotatelogs分割工具 配置网站的日志文件转交给rotatelogs分割处理 配置格式为 > ErrorLog "| rotatelogs命令的绝对路径 -l 日志文件路径/网站名-error_%Y%m%d.log 86400&q

Apache日志分割

1.cronolog安装 采用 cronolog 工具进行 apache 日志分割 http://download.chinaunix.net/download.php?id=3457&ResourceID=1851 下载上传安装包文件到服务器 安装日志分割工具: [[email protected] ~]# cd /data/ [[email protected] data]#tar -xvf  cronolog-1.6.2.tar.gz [[email protected] cronolog

非手工编译apache中awstats日志分析管理

非手工编译apache中awstats日志分析管理 实验环境:一台linux6.5 宿主机或者虚拟win7 使用的包为awstats-7.6.tar 事先设置好域名以及DNS地址解析 博主的域名为www.abc.com 1.挂载移动 2.进行脚本的配置,有y的y,该回车的回车,需要填写的内容如下 3.进入自动生成的文件中修改 4.创建目录 5.登陆apache网页以及日志管理网页,刷新awstats管理日志 6.刷新awstats管理日志后也刷新网页 末:代码脚本记录 配置apache网站设置d

python分析apache和nginx日志文件输出访客ip列表的代码

把做工程过程中比较好的代码片段做个备份,下面资料是关于python分析apache和nginx日志文件输出访客ip列表的代码. ips = {} fh = open("/var/log/nginx/access.log", "r").readlines() for line in fh: ip = line.split(" ")[0] if 6 < len(ip) <=15: ips[ip] = ips.get(ip, 0) + 1