CN112087490A - 一种高性能移动端应用软件日志收集系统 - Google Patents
一种高性能移动端应用软件日志收集系统 Download PDFInfo
- Publication number
- CN112087490A CN112087490A CN202010789465.5A CN202010789465A CN112087490A CN 112087490 A CN112087490 A CN 112087490A CN 202010789465 A CN202010789465 A CN 202010789465A CN 112087490 A CN112087490 A CN 112087490A
- Authority
- CN
- China
- Prior art keywords
- log
- collection
- mobile terminal
- cache
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 17
- 238000004891 communication Methods 0.000 claims abstract description 14
- 239000000872 buffer Substances 0.000 claims description 47
- 238000007906 compression Methods 0.000 claims description 20
- 230000006835 compression Effects 0.000 claims description 20
- 230000003203 everyday effect Effects 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 6
- 101100007686 Mus musculus Creb3 gene Proteins 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 101001094649 Homo sapiens Popeye domain-containing protein 3 Proteins 0.000 description 1
- 101000608234 Homo sapiens Pyrin domain-containing protein 5 Proteins 0.000 description 1
- 101000578693 Homo sapiens Target of rapamycin complex subunit LST8 Proteins 0.000 description 1
- 102100027802 Target of rapamycin complex subunit LST8 Human genes 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种高性能移动端应用软件日志收集系统,上述日志收集系统收集大规模应用软件日志执行以下步骤:S1、移动终端获取通讯延迟最短的收集结点,并在之后的运行过程中向该收集结点上传日志;S2、移动终端产生标准格式的日志;S3、移动终端将日志压缩后缓存在本地文件;S4、移动终端根据上传策略上传日志;S5、收集中心接受移动终端上传日志,并将接受到的压缩后的日志拼接到内存缓存块;S6、收集中心根据缓存机制发送缓存块大小日志数据给存储节点;S7、存储中心接受收集中心发送的日志数据并封装成日志数据文件;S8、存储中心之间定时同步日志数据文件。有益效果是软硬件成本低、资源使用效率高、管理和运维简单。
Description
【技术领域】
本发明涉及互联网技术领域,具体涉及一种高性能移动端应用软件日志收集系统。
【背景技术】
随着手机等移动化设备的普及,广大移动应用软件(App)开发商普遍在App运行过程中采用收集日志的方式分析用户营销行为、识别安全攻击、分析软件故障等。App在运行过程中需要不断地向服务器推送日志,同时由于App的活跃用户量巨大,服务器需要持续承受高并发量的日志上传。
目前,移动软件开发商普遍采用HTTP协议向服务端的Web服务器(nginx/apache)直接推送日志,而Web服务器会继而将日志转发到分布式的消息队列系统(kafka,各种mq系统)或者日志系统(logstash,beats,elasticsearch),同时需要配备分布式存储系统(HDFS,Ceph,数据库等)用于存储不断增加的日志数据(CN105490854B)。随着用户量以及日志数据量的不断增加,整套系统需要持续进行扩容,投入软硬件成本增加结点以及存储容量。多个系统间需要对同一份数据进行多次传输、压缩、解压、复制、处理,造成大量的CPU和网络带宽资源浪费,整套收集系统涉及多个分布式系统、大量服务器结点以及硬件,导致需要较高的管理和维护成本。
现有日志收集专利方案主要针对服务器应用程序(CN107426023B,CN106130782A)这类并发量不高的日志收集情况。而针对App这类高并发的日志收集场景,通常做法是限定收集少量的特殊的App日志(例如低频的App奔溃日志,CN106844136A,CN104216811B)或者缩小收集的用户范围(CN105490841B)来降低服务器负载。
以下是本发明涉及的相关技术术语。Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。Kafka是一种高吞吐量的分布式发布订阅消息系统。logstash是一个数据分析软件,主要目的是分析log日志。Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed FileSystem)。Syslog常被称为系统日志或系统记录,是一种用来在互联网协议(TCP/IP)的网上中传递记录档消息的标准。JSON(JavaScript Object Notation,JS对象简谱))是一种轻量级的数据交换格式,简洁和清晰的层次结构使得JSON成为理想的数据交换语言。ISO/IEC21778-2017信息技术,JSON数据交换语法标准。Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的Gzip代表GNU zip。Snappy是一个C++的用来压缩和解压缩的开发包,其目标不是最大限度压缩或者兼容其他压缩格式,而是旨在提供高速压缩速度和合理的压缩率。slab是Linux操作系统的一种内存分配机制,slab分配算法采用cache存储内核对象。重复数据删除(Data deduplication)是一种数据缩减技术,通常用于基于磁盘的备份系统,旨在减少存储系统中使用的存储容量。rsync是linux系统下的数据镜像备份工具,使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。LZMA,(Lempel-Ziv-Markov chain-Algorithm的缩写),是一个Deflate和LZ77算法改良和优化后的压缩算法,它使用类似于LZ77的字典编码机制。
本发明对移动端应用软件日志收集方法和系统作了改进。
【发明内容】
本发明的目的是,提供一种软硬件成本低、资源使用效率高、管理和运维简单的大规模移动端应用软件日志收集系统。
为实现上述目的,本发明采取的技术方案是一种高性能移动端应用软件日志收集系统,上述日志收集系统包括若干移动终端、若干数据中心,上述移动终端和数据中心通过通讯链路进行通讯;上述移动终端上运行接入应用软件的收集SDK程序模块,用于接受应用软件日志并执行上传策略;上述数据中心包括多个收集结点,上述收集节点上运行定制的HTTP服务程序模块,用于接受应用软件上传的日志;上述数据中心还包括存储结点,上述存储节点上运行收集任务程序模块,用于存储收集节点发送的日志数据;上述日志收集系统收集大规模应用软件日志执行以下步骤:
S1、移动终端获取通讯延迟最短的收集结点,并在之后的运行过程中向该收集结点上传日志;
S2、移动终端产生标准格式的日志;
S3、移动终端将日志压缩后缓存在本地文件;
S4、移动终端根据上传策略上传日志;
S5、收集中心接受移动终端上传日志,并将接受到的压缩后的日志拼接到内存缓存块;
S6、收集中心根据缓存机制发送缓存块大小日志数据给存储节点;
S7、存储中心接受收集中心发送的日志数据并封装成日志数据文件;
S8、存储中心之间定时同步日志数据文件。
优选地,上述日志收集系统收集大规模应用软件日志还执行以下步骤:。
S9、存储中心在低峰期压缩归档日志。
优选地,步骤S1所述移动终端每天启动时通过ping的方式获取通讯延迟最短的收集结点。
优选地,步骤S2所述标准格式的日志为国际标准RFC5424的Syslog格式日志和/或国际标准ISO/IEC 21778-2017的JSON格式日志。
优选地,步骤S4所述上传策略为当本地缓存文件大小超过阈值或者根据日志实时性要求进行上传。
优选地,上述收集中心包括收集缓存区、发送缓存区和内存块分配器,上述收集缓存区、发送缓存区包括若干缓存块,单个缓存块的大小是固定的;上述收集缓存区用于写入步骤S5收集到的日志,上述发送缓存区用于向存储结点发送收齐的缓存块,上述收集缓存区、发送缓存区共享使用内存块分配器;步骤S6所述缓存机制是指当收集缓存区收齐一个缓存块时,上述收集缓存区会从内存块分配器获得一个新的缓存块,而填满的缓存块被发送到发送缓存区等待发送;同等地,发送缓存区的缓存块被发送后该缓存块会回收到内存块分配器,等待重新分配到收集缓存区。
优选地,上述数据中心还包括负载平衡云管理器,用于收集结点缓存了大量日志并且无法及时发送到存储结点时在同一个数据中心启动新的收集结点进行分流。
优选地,步骤S7所述日志数据文件是大小64MB的分布式对象存储。
优选地,步骤S8所述同步日志数据文件采用开启了deduplication的rsync协议进行。
优选地,步骤S3所述压缩日志数据以Gzip方式压缩;上述步骤S9选用LZMA族压缩算法压缩归档日志。
本发明有如下有益效果:不依赖于消息队列系统或者分布式存储系统的情况下,使用少量云服务器运行定制化的高性能HTTP服务,配合App端日志上传策略,达到收集大规模App日志的目的;节省云服务器的软硬件成本,提高云服务器的资源使用效率,降低整体收集系统的管理和运维复杂度。
【附图说明】
图1是一种高性能移动端应用软件日志收集系统架构示意图。
图2是一种高性能移动端应用软件日志收集系统收集大规模应用软件日志步骤图。
图3是一种高性能移动端应用软件日志收集系统实施例系统组成与工作流程图。
【具体实施方式】
下面结合实施例并参照附图对本发明作进一步描述。
在本发明中,服务器是在网络上提供、管理网络资源的一个计算机或设备,终端可指各种类型的装置,包括(但不限于)无线电话、蜂窝式电话、膝上型计算机、多媒体无线装置、无线通信个人计算机(PC)卡、个人数字助理(PDA)、外部或内部调制解调器等。客户端设备,即终端可为任何经由无线信道和/或经由有线信道(例如,光纤或同轴电缆)与服务器通信的数据装置。终端可具有多种名称,例如移动台、移动装置、移动单元,移动电话、远程站、远程终端机、远程单元、用户装置、用户设备、手持式装置等。不同终端可并入一个系统中。终端可为移动的或固定的,且可分散遍及一个通信网络。
实施例1
本实施例实现一种高性能移动端应用软件日志收集系统。
附图1是一种高性能移动端应用软件日志收集系统架构示意图。如附图1所示,本实施例一种高性能移动端应用软件日志收集系统,上述日志收集系统包括若干移动终端、若干数据中心,上述移动终端和数据中心通过通讯链路进行通讯;上述移动终端上运行接入应用软件的收集SDK程序模块,用于接受应用软件日志并执行上传策略;上述数据中心包括多个收集结点,上述收集节点上运行定制的HTTP服务程序模块,用于接受应用软件上传的日志;上述数据中心还包括存储结点,上述存储节点上运行收集任务程序模块,用于存储收集节点发送的日志数据;
附图2是一种高性能移动端应用软件日志收集系统收集大规模应用软件日志步骤图。如附图2所示,本实施例一种高性能移动端应用软件日志收集系统,上述日志收集系统收集大规模应用软件日志执行以下步骤:
S1、移动终端获取通讯延迟最短的收集结点,并在之后的运行过程中向该收集结点上传日志;
S2、移动终端产生标准格式的日志;
S3、移动终端将日志压缩后缓存在本地文件;
S4、移动终端根据上传策略上传日志;
S5、收集中心接受移动终端上传日志,并将接受到的压缩后的日志拼接到内存缓存块;
S6、收集中心根据缓存机制发送缓存块大小日志数据给存储节点;
S7、存储中心接受收集中心发送的日志数据并封装成日志数据文件;
S8、存储中心之间定时同步日志数据文件。
优选地,上述日志收集系统收集大规模应用软件日志还执行以下步骤:。
S9、存储中心在低峰期压缩归档日志。
优选地,步骤S1所述移动终端每天启动时通过ping的方式获取通讯延迟最短的收集结点。
优选地,步骤S2所述标准格式的日志为国际标准RFC5424的Syslog格式日志和/或国际标准ISO/IEC 21778-2017的JSON格式日志。
优选地,步骤S4所述上传策略为当本地缓存文件大小超过阈值或者根据日志实时性要求进行上传。
优选地,上述收集中心包括收集缓存区、发送缓存区和内存块分配器,上述收集缓存区、发送缓存区包括若干缓存块,单个缓存块的大小是固定的;上述收集缓存区用于写入步骤S5收集到的日志,上述发送缓存区用于向存储结点发送收齐的缓存块,上述收集缓存区、发送缓存区共享使用内存块分配器;步骤S6所述缓存机制是指当收集缓存区收齐一个缓存块时,上述收集缓存区会从内存块分配器获得一个新的缓存块,而填满的缓存块被发送到发送缓存区等待发送;同等地,发送缓存区的缓存块被发送后该缓存块会回收到内存块分配器,等待重新分配到收集缓存区。
优选地,上述数据中心还包括负载平衡云管理器,用于收集结点缓存了大量日志并且无法及时发送到存储结点时在同一个数据中心启动新的收集结点进行分流。
优选地,步骤S7所述日志数据文件是大小64MB的分布式对象存储。
优选地,步骤S8所述同步日志数据文件采用开启了deduplication的rsync协议进行。
优选地,步骤S3所述压缩日志数据以Gzip方式压缩;上述步骤S9选用LZMA族压缩算法压缩归档日志。
实施例2
本实施例实现一种高性能移动端应用软件日志收集系统。本实施例在实施例1的基础上具体实现。
附图3是一种高性能移动端应用软件日志收集系统实施例系统组成与工作流程图。如附图3所示,本实施例一种高性能移动端应用软件日志收集系统是通过以下技术方案实现的。
本实施例系统包括1、接入App的SDK(软件开发包),简称收集SDK,用于接受App日志并执行上传策略;2、位于多个数据中心(例如华东2上海,华北1北京)的云服务器的收集结点,每个数据中心可以有多个完全一样的收集结点,App可以向任意一个收集结点上传日志;3、位于多个数据中心的存储结点,存储结点可以是基本的文件服务器、分布式存储系统或者是云计算服务商提供的云存储服务。
App通过ping的方式获取通讯延迟最短的收集结点,并在之后的运行过程中向该结点上传日志。位于不同数据中心的对等收集结点保证了全国各地的用户可以向就近的云服务器上传日志,同时能保证日志收集服务的高可用性以及负载均衡。考虑到用户使用App的物理位置会变、收集结点会增减、网络链路会有变化,优选地,App每天首次启动时会重新ping各个收集结点,重新选取最优通讯的收集结点。
考虑到App模块众多,会使用到很多第三方模块,所以产生的日志种类繁多,优选地,本实施例系统为App提供的收集SDK支持国际标准的Syslog(RFC5424)格式以及JSON格式(ISO/IEC 21778-2017)的日志;App运行过程中产生的日志内容不限,即收集SDK可以接受任意合法的Syslog或者JSON日志,收集SDK以换行符号\n区分多条日志,单条日志中需要出现换行字符的需要字符串转义;日志上传时不保证多条日志顺序,App应当确保多条日志间的意义不受到其出现顺序影响,如果多条日志间有关联关系,应当采用在日志文本中嵌入一个统一ID的方式。
App运行过程中产生的日志,首先由收集SDK缓存在本地文件。当本地缓存文件大小超过一个阈值(优选地为1MB,保证单次上传HTTP请求效率最优)或者是日志需要满足实时性要求时,由收集SDK向优选的收集结点通过HTTP请求进行上传。收集SDK本地缓存日志机制非常重要,因为App在一些场景下日志产生频率很高,而每条日志直接上传的方案虽然简单,但是会造成网络带宽浪费(通常单次HTTP请求头大小会大于实际传输的日志内容)以及服务器压力(每个上传App需要与收集结点保持一个TCP连接,而收集结点的最大并发TCP连接数有限)。上传时优先使用HTTP/2协议(当HTTP/2不支持情况下可以降级为HTTP/1.1短连接)。App上传的日志数据必须以Gzip/snappy方式压缩(设置HTTP头Content-Encoding:gzip)。强制App端日志压缩并不会造成上传时间以及设备耗电量的上升,相反Gzip压缩普通文本日志的压缩率一般在3倍~5倍,数据压缩后可以减少发送的数据量,抵消压缩本身的CPU耗时和耗电。
优选地,SDK支持两种实时性要求的日志:高实时性日志(主要用于用户活跃度分析、商业分析等),收集SDK保证每隔10秒上传并清空本地缓存的日志。高实时日志特征为在短时间内产生数量多,单条日志大小比较小,缓存方案可以在保证近实时的情况下,优化上传带宽并且降低服务器并发压力;低实时日志(主要用于安全审查、App故障数据上传),收集SDK上传间隔为1小时,通常服务端只需要做统计分析即可不要求实时性。
云服务器上的收集结点运行定制的Nginx HTTP服务用于处理App的HTTP上传请求。常规的Nginx的HTTP服务器会对压缩的上传数据在服务端进行解压,然而在高并发情况下,服务器进行压缩或者解压会大量消耗服务器CPU资源(30%-50%不等),严重影响服务器对日志上传的吞吐量。所以本实施例通过定制Nginx服务,在收到日志推送请求后,不解压缩请求体,直接将Gzip压缩状态的请求体数据拼接到内存缓冲区。Gzip算法内容有具有可拼接的特性,即两段压缩后的Gzip数据直接拼接后解压缩结果为原始数据的直接拼接,因此收集结点可以保证多次上传的日志数据可以在不解压的情况下正确拼接存储。收集结点将预分配大量内存用于缓存收到的日志,在系统内存未用完前不会将日志写入磁盘,避免低速IO操作,同时保证了每条日志存入(内存)的写入时间是确定的。优选地,收集结点云服务器内存应至少超过32GB且只运行定制Nginx服务。
收集结点采用收集缓存区、发送缓存区双缓冲区设计管理内存,所有Nginxworker向收集缓存区写入收集到的日志(每个worker一个缓存块),发送缓存区(发送队列)用于向存储结点发送收齐的缓存块。两个缓存区共享使用slab分配器(固定大小内存块分配器),即单个缓存块的大小是固定的。当收集缓存收齐一个缓存块时,收集缓存区会从slab分配器获得一个新的缓存块,而填满的缓存块被发送到发送缓存区等待发送。同等地,发送缓存区的缓存块被发送后该缓存块会回到slab分配器,等待重新被分配到收集缓存区。优选地,缓存块大小为该云服务器CPU支持的大页(large memory page)的整数倍大小(x86体系CPU大内存页大小2MB,ARM服务器大内存页大小为1MB),收集结点的操作系统的ulimit中fd限制、socket等待时间等应调大。
收集结点配备主动负载均衡策略,定时向负载平衡云管理器报告收集结点的内存耗量以及缓存区情况。当收集结点可用内存低于30%时(即收集结点缓存了大量日志并且无法及时发送到存储结点,处于高负载状态),负载平衡云管理器在同数据中心会启动新的收集结点进行分流。当收集结点可用内存低于10%时,收集结点会启动Nginx主动限流配置,向App返回重发信号,App的收集SDK收到重发信号时会选取另一台收集结点重新上传日志。
每个存储结点服务若干个同数据中心的收集结点。每个收集结点将向存储结点推送一个完整的缓存块大小的Gzip日志数据(x86体系上为2MB),存储结点的收集任务负责接收这些压缩数据并按照一定大小封装成日志数据文件(.gz文件)。优选地,存储结点会选取单文件大小为分布式对象存储的单对象大小(64MB)。收集任务会为每个日志文件起唯一名字,优选地,名字中应当包含当前服务器时间,服务器所在数据中心(例如华东2上海,华北1北京),方便管理时搜索日志。
位于多个数据中心的存储结点会定时进行交叉同步,即互相传输自从上个同步点开始写入的日志数据文件。例如,定时同步为1小时,上海数据中心的存储结点A在1小时内收到d1...d10总计10个新的日志数据文件(来自于上海附近的用户),北京数据中心的存储结点B收到d11...d16总计6个新文件(来自于北京附近的用户),则同步时,A向B发送d1...d10,B向A发送d11...d16,确保同步完成后A和B均有所有用户在同步时间区间内产生的d1...d16文件。优选地,交叉同步可采用开启了deduplication的rsync协议进行。优选地,交叉同步任务会采取网络限流保证同步任务不会影响存储结点正常的收集任务,即统计自从上个同步点开始的平均空闲网络带宽(即总带宽减去收集任务占用的网络带宽),以1/2空闲网络带宽限制存储结点的网络带宽。
存储结点每天在写入低峰期(一般为凌晨2点-6点)启动归档任务,将昨天的所有日志文件(Gzip压缩状态)使用更高压缩率的归档压缩算法进行转压。优选地,应当选用LZMA族压缩算法例如开源的Lzip算法。归档转压的主要目的是减少存储结点存储的日志的大小,节省磁盘空间。通常,原始文本日志上传时Gzip压缩率为3倍-5倍,而归档Lzip压缩率一般在15倍到20倍。假设一天产生的原始日志数据为1TB(1000GB),则通过Gzip压缩存储需要200GB~333GB的存储空间,使用Lzip归档存储仅需要50GB~66GB的存储空间。Lzip转压任务为CPU密集型任务,优选地,归档任务被限制只能使用1/2的存储结点的CPU资源。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AcessMemory,RAM)等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。
Claims (10)
1.一种高性能移动端应用软件日志收集系统,所述日志收集系统包括若干移动终端、若干数据中心,所述移动终端和数据中心通过通讯链路进行通讯;其特征在于:所述移动终端上运行接入应用软件的收集SDK程序模块,用于接受应用软件日志并执行上传策略;所述数据中心包括多个收集结点,所述收集节点上运行定制的HTTP服务程序模块,用于接受应用软件上传的日志;所述数据中心还包括存储结点,所述存储节点上运行收集任务程序模块,用于存储收集节点发送的日志数据;所述日志收集系统收集大规模应用软件日志执行以下步骤:
S1、移动终端获取通讯延迟最短的收集结点,并在之后的运行过程中向该收集结点上传日志;
S2、移动终端产生标准格式的日志;
S3、移动终端将日志压缩后缓存在本地文件;
S4、移动终端根据上传策略上传日志;
S5、收集中心接受移动终端上传日志,并将接受到的压缩后的日志拼接到内存缓存块;
S6、收集中心根据缓存机制发送缓存块大小日志数据给存储节点;
S7、存储中心接受收集中心发送的日志数据并封装成日志数据文件;
S8、存储中心之间定时同步日志数据文件。
2.根据权利要求1所述的一种高性能移动端应用软件日志收集系统,其特征在于所述日志收集系统收集大规模应用软件日志还执行以下步骤:。
S9、存储中心在低峰期压缩归档日志。
3.根据权利要求1所述的一种高性能移动端应用软件日志收集系统,其特征在于:步骤S1所述移动终端每天启动时通过ping的方式获取通讯延迟最短的收集结点。
4.根据权利要求1所述的一种高性能移动端应用软件日志收集系统,其特征在于:步骤S2所述标准格式的日志为国际标准RFC5424的Syslog格式日志和/或国际标准ISO/IEC21778-2017的JSON格式日志。
5.根据权利要求1所述的一种高性能移动端应用软件日志收集系统,其特征在于:步骤S4所述上传策略为当本地缓存文件大小超过阈值或者根据日志实时性要求进行上传。
6.根据权利要求1所述的一种高性能移动端应用软件日志收集系统,其特征在于:所述收集中心包括收集缓存区、发送缓存区和内存块分配器,所述收集缓存区、发送缓存区包括若干缓存块,单个缓存块的大小是固定的;所述收集缓存区用于写入步骤S5收集到的日志,所述发送缓存区用于向存储结点发送收齐的缓存块,所述收集缓存区、发送缓存区共享使用内存块分配器;步骤S6所述缓存机制是指当收集缓存区收齐一个缓存块时,所述收集缓存区会从内存块分配器获得一个新的缓存块,而填满的缓存块被发送到发送缓存区等待发送;同等地,发送缓存区的缓存块被发送后该缓存块会回收到内存块分配器,等待重新分配到收集缓存区。
7.根据权利要求1所述的一种高性能移动端应用软件日志收集系统,其特征在于:所述数据中心还包括负载平衡云管理器,用于收集结点缓存了大量日志并且无法及时发送到存储结点时在同一个数据中心启动新的收集结点进行分流。
8.根据权利要求1所述的一种高性能移动端应用软件日志收集系统,其特征在于:步骤S7所述日志数据文件是大小64MB的分布式对象存储。
9.根据权利要求1所述的一种高性能移动端应用软件日志收集系统,其特征在于:步骤S8所述同步日志数据文件采用开启了deduplication的rsync协议进行。
10.根据权利要求2所述的一种高性能移动端应用软件日志收集系统,其特征在于:步骤S3所述压缩日志数据以Gzip方式压缩;所述步骤S9选用LZMA族压缩算法压缩归档日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010789465.5A CN112087490A (zh) | 2020-08-07 | 2020-08-07 | 一种高性能移动端应用软件日志收集系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010789465.5A CN112087490A (zh) | 2020-08-07 | 2020-08-07 | 一种高性能移动端应用软件日志收集系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112087490A true CN112087490A (zh) | 2020-12-15 |
Family
ID=73735680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010789465.5A Pending CN112087490A (zh) | 2020-08-07 | 2020-08-07 | 一种高性能移动端应用软件日志收集系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112087490A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860482A (zh) * | 2021-01-27 | 2021-05-28 | 西南林业大学 | 区块链共识性能优化方法 |
CN113722401A (zh) * | 2021-11-04 | 2021-11-30 | 树根互联股份有限公司 | 数据缓存方法、装置、计算机设备及可读存储介质 |
CN115017218A (zh) * | 2022-06-17 | 2022-09-06 | 中国电信股份有限公司 | 分布式调用链的处理方法及装置、存储介质、电子设备 |
CN115378802A (zh) * | 2022-08-24 | 2022-11-22 | 深圳市晨北科技有限公司 | 一种日志收集方法、装置、设备及计算机可读存储介质 |
CN115643166A (zh) * | 2022-12-08 | 2023-01-24 | 江苏云工场信息技术有限公司 | 一种高可靠回传cdn日志的方法及装置 |
CN115834575A (zh) * | 2023-02-28 | 2023-03-21 | 新云网科技集团股份有限公司 | 一种日志上报方法、系统、设备及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040032311A (ko) * | 2002-10-09 | 2004-04-17 | 에스케이 텔레콤주식회사 | 이동통신 단말기의 로그 파일 분석 방법 및 그 시스템 |
CN101087210A (zh) * | 2007-05-22 | 2007-12-12 | 网御神州科技(北京)有限公司 | 高性能的Syslog日志处理和存储方法 |
US20100070769A1 (en) * | 2007-03-28 | 2010-03-18 | Shigeyoshi Shima | Log acquisition system, log collection terminal, log acquisition terminal, and log acquisition method and program using the same system and terminals |
CN102970158A (zh) * | 2012-11-05 | 2013-03-13 | 广东睿江科技有限公司 | 日志存储与处理的方法及日志服务器 |
CN103412893A (zh) * | 2013-07-24 | 2013-11-27 | 广东电子工业研究院有限公司 | 一种日志收集系统及其收集方法 |
CN106201756A (zh) * | 2016-07-12 | 2016-12-07 | 努比亚技术有限公司 | 日志获取装置、移动终端及方法 |
CN108737549A (zh) * | 2018-05-25 | 2018-11-02 | 江苏联盟信息工程有限公司 | 一种大数据量的日志分析方法及装置 |
CN109542733A (zh) * | 2018-12-05 | 2019-03-29 | 焦点科技股份有限公司 | 一种高可靠的实时日志收集及可视化检索方法 |
-
2020
- 2020-08-07 CN CN202010789465.5A patent/CN112087490A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040032311A (ko) * | 2002-10-09 | 2004-04-17 | 에스케이 텔레콤주식회사 | 이동통신 단말기의 로그 파일 분석 방법 및 그 시스템 |
US20100070769A1 (en) * | 2007-03-28 | 2010-03-18 | Shigeyoshi Shima | Log acquisition system, log collection terminal, log acquisition terminal, and log acquisition method and program using the same system and terminals |
CN101087210A (zh) * | 2007-05-22 | 2007-12-12 | 网御神州科技(北京)有限公司 | 高性能的Syslog日志处理和存储方法 |
CN102970158A (zh) * | 2012-11-05 | 2013-03-13 | 广东睿江科技有限公司 | 日志存储与处理的方法及日志服务器 |
CN103412893A (zh) * | 2013-07-24 | 2013-11-27 | 广东电子工业研究院有限公司 | 一种日志收集系统及其收集方法 |
CN106201756A (zh) * | 2016-07-12 | 2016-12-07 | 努比亚技术有限公司 | 日志获取装置、移动终端及方法 |
CN108737549A (zh) * | 2018-05-25 | 2018-11-02 | 江苏联盟信息工程有限公司 | 一种大数据量的日志分析方法及装置 |
CN109542733A (zh) * | 2018-12-05 | 2019-03-29 | 焦点科技股份有限公司 | 一种高可靠的实时日志收集及可视化检索方法 |
Non-Patent Citations (1)
Title |
---|
刘荣辉: "网页采集与日志收集", pages: 41 - 42 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860482A (zh) * | 2021-01-27 | 2021-05-28 | 西南林业大学 | 区块链共识性能优化方法 |
CN113722401A (zh) * | 2021-11-04 | 2021-11-30 | 树根互联股份有限公司 | 数据缓存方法、装置、计算机设备及可读存储介质 |
CN115017218A (zh) * | 2022-06-17 | 2022-09-06 | 中国电信股份有限公司 | 分布式调用链的处理方法及装置、存储介质、电子设备 |
CN115017218B (zh) * | 2022-06-17 | 2024-01-30 | 中国电信股份有限公司 | 分布式调用链的处理方法及装置、存储介质、电子设备 |
CN115378802A (zh) * | 2022-08-24 | 2022-11-22 | 深圳市晨北科技有限公司 | 一种日志收集方法、装置、设备及计算机可读存储介质 |
CN115643166A (zh) * | 2022-12-08 | 2023-01-24 | 江苏云工场信息技术有限公司 | 一种高可靠回传cdn日志的方法及装置 |
CN115834575A (zh) * | 2023-02-28 | 2023-03-21 | 新云网科技集团股份有限公司 | 一种日志上报方法、系统、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112087490A (zh) | 一种高性能移动端应用软件日志收集系统 | |
US8832300B2 (en) | Systems and methods for identifying long matches of data in a compression history | |
US8786473B2 (en) | Systems and methods for sharing compression histories between multiple devices | |
US7865585B2 (en) | Systems and methods for providing dynamic ad hoc proxy-cache hierarchies | |
US8255570B2 (en) | Systems and methods of compression history expiration and synchronization | |
US7872597B2 (en) | Systems and methods of using application and protocol specific parsing for compression | |
US7916047B2 (en) | Systems and methods of clustered sharing of compression histories | |
EP2672670B1 (en) | Systems and methods for using compression histories to improve network performance | |
US20080224906A1 (en) | Systems and methods for identifying long matches of data in a compression history | |
EP3588914A1 (en) | Data storage method, encoding device and decoding device | |
CN108600053B (zh) | 一种基于零拷贝技术的无线网络数据包捕获方法 | |
US20040103215A1 (en) | Selective compression of web-based data transmissions | |
US11303737B2 (en) | Method and device for data transmission | |
CN112335203B (zh) | 处理局域网诊断数据 | |
CN115914409A (zh) | 一种waf安全防护日志实现高效传输、存储的方法及装置 | |
CN111478938B (zh) | 一种数据冗余消除方法及装置 | |
US11444882B2 (en) | Methods for dynamically controlling transmission control protocol push functionality and devices thereof | |
KR101634822B1 (ko) | 상이한 네트워크들을 통해 데이터를 동기화하기 위한 어댑터 | |
CN108234595B (zh) | 日志传输方法及系统 | |
CN115202573A (zh) | 数据存储系统以及方法 | |
CN113283999B (zh) | 电力监控系统网省两级数据同步方法、装置、计算机设备 | |
CN117194411A (zh) | 一种高并发数据采集与处理方法、装置及存储介质 | |
CN112398871B (zh) | 一种海量文件传输方法及系统 | |
CN112565326B (zh) | 面向分布式文件系统的rdma通信地址交换方法 | |
Cui et al. | QuickSync: Improving Synchronization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |