apache日志及日志分割

在apache的配置文件httpd.conf中找到
  ErrorLog logs/error_log          //错误日志
  CustomLog logs/access_log common           //访问日志

为什么要分割日志
随着网站的访问越来越大,WebServer产生的日志文件也会越来越大,如果不对日志进行分割,那么只能一次将大的日志(如Apache的日志)整个删除,这样也丢失了很多对网站比较宝贵的信息,因为这些日志可以用来进行访问分析、历史安全监察、历史运行状况监控等,因此管理好这些海量的日志对网站的意义是很大的。
本文将总结一些实用的日志分割方法,希望能够方便 Linux/Unix管理员对日志文件进行有效的管理,如果文件过多过大,可以删除一些历史的文件。

一、用apache系统自带的rotatelogs对日志进行截断处理
1、修复文件http.conf,设置如下:通过以下设置.
  ErrorLog "| /usr/local/apache/bin/rotatelogs        /home/apache_log/www.xxx.com.cn/%Y_%m_%d_error_log 86400 480"
      CustomLog "| /usr/local/apache/bin/rotatelogs    /home/apache_log/www.xxx.com.cn/%Y_%m_%d_access_log 86400 480" common

2、重启apache服务,在指定的日志目录中验证。

3、语法分析
     rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]
         rotationtime   //日志文件以秒为单位滚动
         filesizeM     //指定以filesizeM文件大小滚动

   举例:
  1.按时间滚动日志文件:
  错误日志:ErrorLog "|/data/apache/bin/rotatelogs   日志存放目录/%Y%m%d_error.log 86400 480"
  访问日志:CustomLog "|/data/apache/bin/rotatelogs   日志存放目录/%Y%m%d_access.log 86400 480" common
  其中:
      /data/apache:为apache的安装目录,根据自己实际情况确定;
      86400:秒,24小时,表示生成的日志文件按天滚动,也就是每天生成一个日志文件;
      480:分,时间偏移。
  同理可以按小时滚动日志文件,每隔一个小时,几个小时。。。生成一个日志文件。

  扩展:可以写个脚本定时删除日志文件,只保留几天的日志,如果网站访问量比较大,一天会生成几十上百M甚至更大的日志文件,既占硬盘又影响服务器性能。然后建立清除日志文件的shell脚本,文件名为clean_log
    #! /bin/bash
    logdir=/var/log/httpd
    cd ${logdir}
    declare -i filesum=`ls access_log.* | wc -l`
    declare -i delnum=$filesum-3
    if [ "${delnum}" -ge 1 ];then
    rm -rf `ls -tr access_log.* | head -${delnum}`
    fi
    chmod 755 clean_log
    这样就保留了最近3天的日志文件。
    建立自动化任务
    01 04 * * * /usr/local/crontab/clean_log
    ok,搞定,就这么简单。这样你就不用不必为日见增大的日志文件烦恼了!

  2.按大小滚动日志文件:
  错误日志:ErrorLog "|/data/apache/bin/rotatelogs -l     日志存放目录/%Y%m%d_error.log 5M"
  访问日志:CustomLog "|/data/apache/bin/rotatelogs -l  日志存放目录/%Y%m%d_access.log 5M" common
  当日志文件达到5M时,滚动该日志文件。

4、文件名称格式
      errorlog.%Y-%m-%d-%H_%M_%S-----------------errorlog.YYYY-mm-dd-HH_MM_SS
        %A     星期名全称(本地的)
        %a     3个字符的星期名(本地的)
        %B     月份名的全称(本地的)
        %b     3个字符的月份名(本地的)
        %c     日期和时间(本地的)
        %d     2位数的一个月中的日期数
        %H     2位数的小时数(24小时制)
        %I     2位数的小时数(12小时制)
        %j     3位数的一年中的日期数
        %M     2位数的分钟数
        %m     2位数的月份数
        %p     am/pm12小时制的上下午(本地的)
        %S     2位数的秒数
        %U     2位数的一年中的星期数(星期天为一周的第一天)
        %W     2位数的一年中的星期数(星期一为一周的第一天)
        %w     1位数的星期几(星期天为一周的第一天)
        %X     时间(本地的)
        %x     日期(本地的)
        %Y     4位数的年份
        %y     2位数的年份
        %Z     时区名
        %%     符号"%"本身

时间: 2024-10-17 13:30:15

apache日志及日志分割的相关文章

Apache(httpd)配置--日志控制与静态元素过期时间配置

一.访问日志不记录静态文件 很多网站大多为静态网页,网页内部的图片.css文件等同样有其网址链接,如果不设置,这些无效的信息也将被存入访问日志中,会导致访问日志文件大小快速增加,占用大量存储空间.我们可以通过设置不记录某些文件来减少无效信息,节省内存资源.那么具体怎么操作呢?按照下面例子操作即可: 步骤:编辑虚拟主机配置文件 [[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf ErrorLog "l

85.Apache(httpd)配置--日志控制与静态元素过期时间配置

访问日志不记录静态文件 很多网站大多为静态网页,网页内部的图片.css文件等同样有其网址链接,如果不设置,这些无效的信息也将被存入访问日志中,会导致访问日志文件大小快速增加,占用大量存储空间.我们可以通过设置不记录某些文件来减少无效信息,节省内存资源.那么具体怎么操作呢?按照下面例子操作即可: 步骤:编辑虚拟主机配置文件 [[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf ErrorLog "log

Linux nginx日志按天分割实例

Linux nginx日志按天分割实例 nginx的日志有个小缺点,日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将导致日志文件非常大,不便于管理 这就需要我们自己来实现了,按日期每天生产一个日志文件 思路 每天零点把默认日志文件改名为当天日期,再重新打开新的日志文件 使用定时任务来执行脚本,脚本中执行改名和重新打开日志文件的操作 向Nginx主进程发送 USR1 信号,就可以重新打开日志文件 实现 #/bin/bash #备份日志的路径bakpath='/home/nginx/

配置apache访问日志和日志切割

配置apache访问日志和日志切割 1.打开apache主配置文件,命令:vim /usr/local/apache2/conf/httpd.conf,找到log_config_module模块,可以看到两条logformat(日志格式),如下图所示: 2.添加自定义的logformat(日志格式),命名为aming如下图所示: 保存退出! 3.打开虚拟主机配置文件,命令:vim /usr/local/apache2/conf/extra/httpd-vhosts.conf,找到<Virtual

解决Apache的错误日志巨大的问题以及关闭Apache web日志记录

调整错误日志的级别 这几天 apache错误日志巨大 莫名其妙的30G  而且 很多都是那种页面不存在的  网站太多了  死链接相应的也很多于是把错误警告调低了 因为写日志会给系统带来很大的损耗.关闭日志以后,甚至最高可以提高整体性能近40%(粗略估计)那么如何关闭日志呢? 可以通过降低log级别的办法来减少日志读写. 这里要提醒的是,这么做将给"入侵检测"以及其他基于日志分析的工作带来麻烦.所以请谨慎使用.网上相关文章很多,但说的都不详细,擦边而过,下面详细说一下具体操作步骤. 编辑

nginx日志之错误日志及访问日志及日志分割

一.nginx错误日志 nginx软件会把自身运行的故障信息及用户访问的日志信息记录到指定的日志文件里 一般在nginx.conf配置文件第二行添加:error_log    logs/error.log    error : ↓                  ↓                  ↓ 关键字             日志文件       日志级别 其实如果不添加这行的话,默认就是这样 关于日志级别: 错误日志常见的级别有 :debug | info|notice | war

Nginx高性能服务器安装、配置、运维 (6) —— Nginx日志及日志分割

七.Nginx日志及日志分割 (1)Nginx日志文件 查看Nginx配置文件: 找到access_log,yum安装默认存储在/var/log/nginx目录下,且默认main格式: main格式定义: log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" '       '"$ht

Apache的用户认证、域名跳转、Apache的访问日志

Apache的用户认证 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把111.com那个虚拟主机编辑成如下内容 <VirtualHost *:80>DocumentRoot "/data/wwwroot/111.com"ServerName 111.comServerAlias www.example.com<Directory /data/wwwroot/111.com>AllowOverri

非手工编译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