|
|
|
|
移动端

1.2.9 日志轮询

《UNIX/Linux网络日志分析与流量监控》第1章网络日志获取与分析,本章将介绍如何获取并分析各类系统的日志。学习好本章内容,将为后续章节的案例分析打下良好的基础。本节为大家介绍日志轮询。

作者:李晨光来源:机械工业出版社|2014-11-26 16:26

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


1.2.9 日志轮询

运行一段时间的网站中,access_log 和error_log 日志会不断增长,有时达到上GB 甚至更大,如果采用管道方式对大日志进行检索,会造成大量内存消耗,这时就需要对日志进行“减肥”。这里说“减肥”不是要减少日志的内容,而是采用化整为零的方法将整个日志分成若干段,按每天日期生成。前面讲过Apache 错误日志的记录等级,有时候我们也可以尝试使用调整错误日志记录级别的方法,比如改成“LogLevel emerg”,用这种方法来大大减少错误日志的记录从而减少磁盘空间的占用。不过,凡事有利也有弊,除特殊原因外,一般还是保持默认设置比较好。

注意:

千万不要因为error_log 迅速膨胀,而萌生禁止错误日志的想法,有的读者会想如果将http.conf 配置文件的“ErrorLog logs/error_log”注释掉不就万事大吉了吗?其实不然,那样做会导致Apache 进程发生崩溃。

下面以天为单位截断访问日志文件和错误日志,步骤如下:

(1)在http.conf 文件中,找到以下两行并注释掉:


  1. CustomLog "logs/access_log" common  
  2. ErrorLog "logs/error_log" 

(2)利用Apache 自带的程序rotatelogs 处理,需要添加两行内容。

这里的操作以CentOS Linux 为例,其他Linux 发行版本的rotatelogs 路径要适当调整(关键是要知道rotatelogs 和access_log 在文件系统中的路径)。

  1. #vi /etc/httpd/conf/httpd.conf 

添加如下两行内容:

  1. CustomLog "|/usr/sbin/rotatelogs -l /var/log/httpd/access-%Y-%m-%d.log 86400" common  
  2. ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/error-%Y-%m-%d.log 86400" 

修改效果如图1-5 所示。

除了不能随意关闭错误日志外,还要采用正确的方法,例如日志轮询法,来防止因日志增长导致磁盘可用空间减少的情况出现。日志轮询方法配置指令如下:

  1. CustomLog "|/bin/rotatelogs /var/log/apache/logs/%Y-%m-%d.accesslogfile 100M" common 

上面这条指令表示当日志文件超过100MB 时,滚动该日志文件。把它扩展一下就可以得到下面这条更方便的命令。

  1. CustomLog "|/bin/rotatelogs -l /var/log/apache/log/access_log 86400 100M" combined  
  2. 86400 ---日志滚动的时间是一天(以秒为单位)  
  3. 100M ---日志大小(以兆为单位)  
  4. combined ---采用复合格式 

当这样调整之后,就可以像Microsoft IIS 那样每天生成日志文件。日志的存储方式采用轮询日志存储,可以为日志配置一个最大值,只要达到最大值,日志就从头再写,解决了日志占用过多空间的问题。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管员必读—网络应用

本书是一本介绍当前主流计算机网络应用技术的工具图书,全面总结了当前最主流、最基础的计算机网络应用,包括局域网和互联网应用两方面。在...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊