日志切割工具cronolog详解
大家都知道apache服务器,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。本文主要讲解Web服务器日志切割工具cronolog,下面我们就来详细的讲解一下。
1.上传及安装日志轮询工具cronolog
1.1解压日志轮询工具cronolog
[root@localhost tools]# tar -zxvf cronolog-1.6.2.tar.gz #解压cronolog安装包
[root@localhost tools]# cd cronolog-1.6.2
1.2安装日志轮询工具cronolog
[root@localhost cronolog-1.6.2]# ./configure #配置
[root@localhost cronolog-1.6.2]# make #编译安装
[root@localhost cronolog-1.6.2]# make install
2.cronolog日志轮询配置说明。
编辑apache配置文件
[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf
利用vim命令定位CustomLog 如下图所示
错误写法:
CustomLog“|/usr/local/sbin/cronolog logs/access_www_%w.log”combined
提示:cronolog轮询日志的正确写法,被轮询的日志路径要写全路径。
正确写法:
新建日志保存路径:
[root@localhost ~]# mkdir -p /website/logs #日志的存储路径
[root@localhost ~]# tree /website #检查新建日志文件结果
/website
`-- logs
按天轮询(生产环境常见用法,推荐使用):
CustomLog“|/usr/local/sbin/cronolog /website/logs/access_www_%Y%m%d.log”combined
提示:这是大多数网站的常规配置方法(按天记录日志,日志不会自动覆盖)
按小时轮询(生产环境较常见用法)
CustomLog“|/usr/local/sbin/cronolog /website/logs/access_www_%Y%m%d%H.log”combined
提示:如果需要及时详细分析apache日志,此配置可能比较适用。结尾_%Y%m%d%H为日期的格式写法。
按周轮询(生产环境常见用法)
CustomLog“|/usr/local/sbin/cronolog /website/logs/access_www_%w.log”combined
下面我们以按天轮询进行示例:
编辑配置文件/usr/local/apache/conf/httpd.conf
注释如下内容:
CustomLog "logs/access_log" common
增加如下内容:
CustomLog“|/usr/local/sbin/cronolog /website/logs/access_www_%Y%m%d.log”combined
具体如下图所示:
保存修改;
3.检查日志生成情况
1)打开浏览器:输入http://x.x.x.x (x.x.x.x为apache服务器IP地址);
2)[root@localhost ~]# cd /website/logs/ #进入日志保存文件夹
[root@localhost logs]# ll #检查访问日志生成情况
total 8
-rw-r--r--. 1 root root 405 Jun 5 01:35 access_www_20160605.log
-rw-r--r--. 1 root root 186 Jun 6 16:43 access_www_20160606.log
经过测试检验,日志已按天轮询;
4.指定计划任务:每天打包前一天的日志,每天删除半月前的打包日志(利用crontab定时任务,具体操作如下)
[root@localhost ~]# crontab -e
0 1 * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1 #每天一点钟同步时间
30 1 * * * /bin/tar -zcf /website/logs/access_www_`date -d yesterday +%Y%m%d` .tar.gz /website/logs/access_www_`date -d yesterday +%Y%m%d`.log#每天1点30分打包前一天的日志文件
0 2 * * * /usr/bin/find /website/logs -name access_www_*.tar.gz -mtime +15 -exec rm -rf {} \; #每天2点删除15天前的打包日志文件
5.cronolog 总结
好了,到这里我们的cronolog工具就讲解完成了。有博友会问为什么不用apache自带的日志分割工具?apache自带的日志分割工具rotatelogs,据说在进行日志切割时容易丢日志,所以这里我们就用cronolog来做日志切割。最后,希望大家有所收获^_^……