多服务器的日志合并统计
多服务器的日志合并统计
——apache日志cronolog轮循和webalizer的合并统计
作者: 车东 [email protected]
你完全不必耐心地看完下面的所有内容,因为结论无非以下2点:
1 用 cronolog 干净,安全地轮循apache日志
2 用 sort -m 合并排序多个日志
这篇文章主要根据个人的使用经历:
1 先介绍apache日志的合并方法;
2 然后根据由此引出的问题说明日志轮循的必要性和解决方法,介绍如何通过cronolog 对apache日志进行轮循;
中间有很多在设计日志合并过程中一些相关工具的使用技巧和一些尝试的失败经历…… 我相信解决以上问题的路径不止这一条途径,以下方案肯定不是最简便或者说成本最低 的,希望能和大家有更多的交流。
{0} 多服务器日志合并统计的必要性:
越来越多大型的WEB服务使用DNS轮循来实现负载均衡:使用多个同样角色的服务器做前 台的WEB服务,这大大方便了服务的分布规划和扩展性,但多个服务器的分布使得日志 的分析统计也变得有些麻烦。如果使用webalizer等日志分析工具对每台机器分别做日
志统计:
1 会对数据的汇总带来很多麻烦,比如:统计的总访问量需要将SERVER1 SERVER2...上 指定月份的数字相加。
2 会大大影响统计结果中唯一访客数unique visits,唯一站点数unique sites的等指 标的统计,因为这几个指标并非几台机器的代数相加。
统一日志统计所带来的好处是显而易见的,但如何把所有机器的统计合并到一个统计结 果里呢?
首先也许会想:多个服务器能不能将日志记录到同一个远程文件里呢?我们不考虑使用 远程文件系统记录日志的问题,因为带来的麻烦远比你获得的方便多的多……
因此,要统计的多个服务器的日志还是:分别记录=>并通过一定方式定期同步到后台=> 合并=>后用日志分析工具来进行分析。
首先,要说明为什么要合并日志:因为webalizer没有将同一天的多个日志合并的功能 先后运行
webalizer log1
webalizer log2
webalizer log3
这样最后的结果是:只有log3的结果。
能不能将log1< <
因为一个日志的分析工具不是将日志一次全部读取后进行分析,而且流式的读取日志并 按一定时间间隔,保存阶段性的统计结果。因此时间跨度过大(比如2条日志间隔超过5 分钟),一些日志统计工具的算法就会将前面的结果“忘掉”。因此, log1< <
{1} 日志合并问题:多个服务的合并统计就是要把日志按时间排序后合并成一个文件 典型的多个日志文件的时间字段是这样的:
log1 log2 log3
00:15:00 00:14:00 00:11:00
00:16:00 00:15:00 00:12:00
00:17:00 00:18:00 00:13:00
00:18:00 00:19:00 00:14:00
14:18:00 11:19:00 10:14:00
15:18:00 17:19:00 11:14:00
23:18:00 23:19:00 23:14:00
日志合并必须是按时间将多个日志的交叉合并。合并后的日志应该是:
00:15:00 来自log1
00:15:00 来自log2
00:16:00 来自log1
00:17:00 来自log3
00:18:00 来自log2
00:19:00 来自log1
.....
如何合并多个日志文件?
下面以标准的clf格式日志(apache)为例:
apche的日志格式是这样的:
%h %l %u %t \"%r\" %>s %b
——apache日志cronolog轮循和webalizer的合并统计
作者: 车东 [email protected]
你完全不必耐心地看完下面的所有内容,因为结论无非以下2点:
1 用 cronolog 干净,安全地轮循apache日志
2 用 sort -m 合并排序多个日志
这篇文章主要根据个人的使用经历:
1 先介绍apache日志的合并方法;
2 然后根据由此引出的问题说明日志轮循的必要性和解决方法,介绍如何通过cronolog 对apache日志进行轮循;
中间有很多在设计日志合并过程中一些相关工具的使用技巧和一些尝试的失败经历…… 我相信解决以上问题的路径不止这一条途径,以下方案肯定不是最简便或者说成本最低 的,希望能和大家有更多的交流。
{0} 多服务器日志合并统计的必要性:
越来越多大型的WEB服务使用DNS轮循来实现负载均衡:使用多个同样角色的服务器做前 台的WEB服务,这大大方便了服务的分布规划和扩展性,但多个服务器的分布使得日志 的分析统计也变得有些麻烦。如果使用webalizer等日志分析工具对每台机器分别做日
志统计:
1 会对数据的汇总带来很多麻烦,比如:统计的总访问量需要将SERVER1 SERVER2...上 指定月份的数字相加。
2 会大大影响统计结果中唯一访客数unique visits,唯一站点数unique sites的等指 标的统计,因为这几个指标并非几台机器的代数相加。
统一日志统计所带来的好处是显而易见的,但如何把所有机器的统计合并到一个统计结 果里呢?
首先也许会想:多个服务器能不能将日志记录到同一个远程文件里呢?我们不考虑使用 远程文件系统记录日志的问题,因为带来的麻烦远比你获得的方便多的多……
因此,要统计的多个服务器的日志还是:分别记录=>并通过一定方式定期同步到后台=> 合并=>后用日志分析工具来进行分析。
首先,要说明为什么要合并日志:因为webalizer没有将同一天的多个日志合并的功能 先后运行
webalizer log1
webalizer log2
webalizer log3
这样最后的结果是:只有log3的结果。
能不能将log1< <
因为一个日志的分析工具不是将日志一次全部读取后进行分析,而且流式的读取日志并 按一定时间间隔,保存阶段性的统计结果。因此时间跨度过大(比如2条日志间隔超过5 分钟),一些日志统计工具的算法就会将前面的结果“忘掉”。因此, log1< <
{1} 日志合并问题:多个服务的合并统计就是要把日志按时间排序后合并成一个文件 典型的多个日志文件的时间字段是这样的:
log1 log2 log3
00:15:00 00:14:00 00:11:00
00:16:00 00:15:00 00:12:00
00:17:00 00:18:00 00:13:00
00:18:00 00:19:00 00:14:00
14:18:00 11:19:00 10:14:00
15:18:00 17:19:00 11:14:00
23:18:00 23:19:00 23:14:00
日志合并必须是按时间将多个日志的交叉合并。合并后的日志应该是:
00:15:00 来自log1
00:15:00 来自log2
00:16:00 来自log1
00:17:00 来自log3
00:18:00 来自log2
00:19:00 来自log1
.....
如何合并多个日志文件?
下面以标准的clf格式日志(apache)为例:
apche的日志格式是这样的:
%h %l %u %t \"%r\" %>s %b
顶(0)
踩(0)
上一篇:Linux操作系统的高级电源管理
- 最新评论