[发明专利]一种日志分布式收集及存储方法无效
申请号: | 201210524643.7 | 申请日: | 2012-12-07 |
公开(公告)号: | CN103036961A | 公开(公告)日: | 2013-04-10 |
发明(设计)人: | 柯宗贵;柯宗庆;杨育斌;张道磊 | 申请(专利权)人: | 蓝盾信息安全技术股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510665 广东省广州市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 日志 分布式 收集 存储 方法 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种日志分布式收集及存储方法。
背景技术
在分布式网络与高性能系统中,一定时间内,从多个节点收集并处理的数据是很多的,单个数据库系统的数据处理能力有限,怎样提高高流量数据收集、处理及存储能力,是一个亟待解决的问题。
目前,普遍采用syslog-ng日志收集服务器来收集处理日志。当多个客户端将日志发送给中央日志服务端时,由服务端统一写入数据库。但是syslog-ng将大量数据写入命名管道时,如果正好在读取管道的数据,这样写操作会阻塞。而且syslog-ng作为日志服务器集中往数据库写日志时,事务到达频繁,大量的数据库IO操作,会成为系统性能的瓶颈,影响系统的实时性和可用性。
发明内容
本发明的目的是为了克服现有技术的缺陷,提供一种日志分布式收集及存储方法,通过该方法改善客户端与日志服务器传输的效率,改善日志服务器与数据库操作的吞吐量。
一种日志分布式收集及存储方法,其具体流程为:各客户端节点收集的日志缓存在一个数组容器中,Protobuf序列化后通过回调函数发送给远程日志收集服务器,一次大量发送比通过管道多次少量发送要高效,采用tcp/ip协议进行数据交互,发送端对数据序列化,接收端对数据反序列化;为了维护长连接,客户端定期发送心跳包判断日志服务端是否在线,若在线则日志服务端对心跳包响应;调度器1对连接来的fd统一调度,并将处理好的数据放在数据缓存池中,调度器2从数据缓存池中取一定数量数据后,发送给远程终端,计算机远程终端收到数据后,将数据写入数据库。
本发明技术方案带来的有益效果:通过本发明将日志进行分布式收集及存储不仅改善了客户端与日志服务器传输的效率,还改善了日志服务器与数据库操作的吞吐量,提高了系统的实时性和可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明方法的整体流程图;
图2是本发明中调度器1对客户端发送来的数据进行处理的流程图;
图3是本发明中调度器2将调度器1处理好的数据发送给远程终端系统的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的一种日志分布式收集及存储方法,其所要解决的问题是将客户端日志能快速的发给远程日志收集服务器,日志收集服务器能有效的往数据库写日志。整个发明流程图如图1所示。
各客户端节点收集的日志缓存在一个数组容器中,Protobuf序列化后通过回调函数发送给远程日志收集服务器,在以下四种情况下,发送回调函数将被调用。
1)当缓存数量达到数据高水位级别时。
2)当缓存时间达到时间高水位级别时。
3)当缓存数量达到数据临界水位时。
4)当缓存时间达到时间临界水位时。
其中,数据高水位:发送数据操作,使得输出缓冲区的数据量在此级别或者更高时,发送回调函数将被调用。
数据临界水位:发送数据操作,使得输出缓冲区的数据量在此级别,并且时间间隔达到一定时,发送回调函数将被调用。
时间高水位:发送数据操作,时间间隔在此级别或者更高时,发送回调函数将被调用。
时间临界水位:发送数据操作,时间间隔在此级别,并且输出缓冲区的数据量达到一定时,发送回调函数将被调用。
发送数据先缓存在数组容量里,一次大量发送比通过管道多次少量发送要高效。采用tcp/ip协议进行数据交互,发送端对数据序列化,接收端对数据反序列化。为了维护长连接,客户端定期发送心跳包判断日志服务端是否在线,若在线则日志服务端对心跳包响应。调度器1对连接来的fd(file descriptor)统一调度,并将处理好的数据放在数据缓存池中,调度器2从数据缓存池中取一定数量数据后,发送给远程终端,计算机远程终端收到数据后,将数据写入数据库。
其中,调度器1对客户端发送来的数据进行处理,其处理流程如图2所示,具体为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于蓝盾信息安全技术股份有限公司,未经蓝盾信息安全技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210524643.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种液压机械双保护制动器
- 下一篇:一种车用电控气动离合器控制装置