zoukankan      html  css  js  c++  java
  • Apache配置日志切割

    随着网站的访问越来越大,WebServer产生的日志文件也会越来越大,如果不对日志进行分割,那么只能一次将大的日志(如Apache的日志)整个删除,这样也丢失了很多对网站比较宝贵的信息,因为这些日志可以用来进行访问分析、网络安全监察、网络运行状况监控等,因此管理好这些海量的日志对网站的意义是很大的。

    方法1:使用rotatelogs(apache自带的工具)每隔一天记录一个日志

    辑Apache的主配置文件,更改内容如下:
    注释掉如下两行


    ErrorLog logs/error_log

    CustomLog logs/access_logcommon

    然后添加如下两行

    ErrorLog "|/usr/local/http-2.4.23/bin/rotatelogs -l logs/error_%Y%m%d.log 86400"

    CustomLog "|/usr/local/http-2.4.23/bin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined

    注:其中86400为轮转的时间单位为秒  

    由于apache自带的日志轮询工具rotatelogs,据说在进行日志切割时容易丢日志,因此我们通常使用cronolog进行日志轮询。

    方法2、使用 cronolog 为每一天建立一个新的日志

    下载安装cronolog程序 

    [root@www ~]# tar zxf cronolog-1.6.2.tar.gz

    [root@www~]# cd cronolog-1.6.2/

    [root@wwwcronolog-1.6.2]# ./configure && make && make install

     

    主配置文件中的使用方法

    ErrorLog "|/usr/local/sbin/cronolog logs/error-%Y%m%d.log"

    CustomLog "|/usr/local/sbin/cronolog logs/access-%Y%m%d.log" combined

    如果Apache中有多个虚拟主机,最好每个虚拟主机中放置一个这样的代码,并将日志文件名改成不同的名字。

    扩展:

    这个保证了每天一个文件夹文件夹下每个小时产生一个log

    CustomLog "|/usr/local/sbin/cronolog logs /%Y%m%d/access_log.%H" combined

     

    按天轮询(生产环境常见用法,推荐使用):
    CustomLog "|/usr/local/sbin/cronolog logs/access_www_%Y%m%d.log" combined


    按小时轮询(生产环境较常见用法):
    CustomLog "|/usr/local/sbin/cronolog logs /access_www_ %Y%m%d%H.log"combined  

    注意:

    这两个管道日志文件程序还有一点不同之处是使用 cronolog 时如果日志是放在某个不存在的路径则会自动创建目录,而使用rotatelogs 时不能自动创建,这一点要特别注意

  • 相关阅读:
    Hash索引和B树索引
    同步,异步,阻塞,非阻塞
    程序指令的异常跳转setjmp, longjmp和异常
    detangle c++ symbols
    RAID-4与模2和
    return, exit, _exit的区别
    metaprogramming笔记
    C++中的数组与指针
    LeetCode-3. Longest Substring Without Repeating Characters
    LeetCode-1. Two Sum
  • 原文地址:https://www.cnblogs.com/peteremperor/p/10943900.html
Copyright © 2011-2022 走看看