多服务器的日志合并统计(3)
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-06
在apache的FAQ中,推荐了经过近2年发展已经比较成熟的一个工具cronolog:安装很简单: configure=>make=> make install 它的一个配置的例子会让你了解它有多么适合日志按天轮循:对httpd.conf做一个很小的修改就能实现: TransferLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/Access.log" ErrorLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/errors.log" 然后:日志将写入 /web/logs/2002/12/31/access.log /web/logs/2002/12/31/errors.log 午夜过后:日志将写入 /web/logs/2003/01/01/access.log /web/logs/2003/01/01/errors.log 而2003 2003/01 和 2003/01/01 如果不存在的话,将自动创建。 所以,只要你不在0点调整系统时间之类的话,日志应该是完全按天存放的(00:00:00-23:59:59),后面日志分析中:[31/Mar/2002:15:44:59这个字段就和日期无关了,只和时间有关。 测试:考虑到系统硬盘容量,决定按星期轮循日志。 apache配置中加入: #%w weekday TransferLog "|/usr/sbin/cronolog /path/to/apache/logs/%w/access_log" 重启apache后,除了原来的CustomLog /path/to/apche/logs/access_log继续增长外,系统log目录下新建立了 3/目录(测试是在周3),过了一会儿,我忽然发现2个日志的增长速度居然不一样! 分别tail了2个日志才发现: 我设置CustomLog使用的是combined格式,就是包含(扩展信息的),而TransferLog使用的是缺省日志格式,看了apache的手册才知道,TransferLog是用配置文件中离它自己最近的一个格式作为日志格式的。我的httpd.conf里写的是: LogFormat ..... combined LogFormat ... common ... CustomLog ... combined TransferLog ... 所以TrasferLog日志用的是缺省格式,手册里说要让TRANSFER日志使用指定的格式需要: LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" TransferLog "|/usr/local/sbin/cronolog /path/to/apache/logs/%w/access_log" 重启,OK,日志格式一样了。 这样的设置结果其实是同时在logs目录下分别记录2个日志access_log和%w/access_log,能不能只记录%w/下的日志那? 查apache手册,更简单的方法:直接让CustomLog输出到cronolog归档日志,并且还能指定格式。 CustomLog "|/usr/local/sbin/cronolog /path/to/apache/logs/%w/access_log" combined 最后是一个日志同步的问题。 任务:每天凌晨找到前1天的日志,另存一个文件准备发送到服务器上。 关键词:统计 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 实现Web中的@虚拟域名系统(原理篇)(1)下一篇: 用反向代理技术保护Web服务器(1)
关于多服务器的日志合并统计(3)的所有评论