计算;推算;计数设备的制造及其应用技术基于paas云的日志运维方法及装置技术领域1.本发明涉及云计算技术领域,尤其涉及一种基于paas云的日志运维方法及装置。背景技术:2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。3.近年来计算机网络、分布式、虚拟化等技术飞速发展,云计算已经成为计算机的重要领域,并且到每个领域。各大企业纷纷推出了自己的云平台,凭借云平台的动态扩展性,和完备的监控,分析能力,越来越多的项目迁移到云平台上。4.paas云平台为程序提供了可运行的环境,动态划分服务器,简化的应用部署步骤,同时提供了连接大数据的日志处理功能,使得应用的运行更加透明。paas云平台提供了监测服务状态,分析客户行为等功能,应用将日志接入paas云平台,经过一系列处理之后,可以实现在paas云平台分析、展示、监控、统计等个性化的功能。5.paas云一般通过flume和kafka将应用日志按照约定的格式传送到hdfs等大数据处理平台,利用日志中的相关字段进行解析,统计,以达到监控和分析的目的。由于互联网应用产生的日志往往是海量的,因此还需要增加对日志的压缩处理模块,尽量减小日志规模。目前在对日志的压缩处理上往往使用的是哈夫曼编码,gzip,rar等常规编码方式,压缩效率有限,导致日志占用比较多的资源;同时由于没有对日志进行分流处理,不同功用的日志之间互相影响,耦合度较高。技术实现要素:6.本发明实施例提供一种基于paas云的日志运维方法,用以提升日志的压缩效率,降低日志所占用的存储资源,同时降低日志之间的耦合度,利于后续的日志分析过程,该方法包括:7.接收应用服务器上传的日志数据;8.利用bwt变换算法和lz77编码对日志数据进行压缩,得到压缩数据;9.读取flume参数,根据flume参数对压缩数据按照预设主题划分为多组主题数据;10.根据flume参数中定义的主题数据对应的存储地址,将不同主题数据分别传送至相应存储地址进行存储。11.本发明实施例还提供一种基于paas云的日志运维装置,用以提升日志的压缩效率,降低日志所占用的存储资源,同时降低日志之间的耦合度,利于后续的日志分析过程,该装置包括:12.通信模块,用于接收应用服务器上传的日志数据;13.压缩模块,用于利用bwt变换算法和lz77编码对日志数据进行压缩,得到压缩数据;14.划分模块,用于读取flume参数,根据flume参数对压缩数据按照预设主题划分为多组主题数据;15.存储模块,用于根据flume参数中定义的主题数据对应的存储地址,将不同主题数据分别传送至相应存储地址进行存储。16.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于paas云的日志运维方法。17.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于paas云的日志运维方法。18.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述基于paas云的日志运维方法。19.本发明实施例中,当接收到应用服务器上送的日志数据,利用burrows-wheeler变换(burrows-wheeler transform,bwt)算法和lz77编码相结合的方案,进一步提高日志数据的压缩率,节省更多的空间;之后,利用flume参数中定义的不同主题对压缩数据进行分组,分别传送至各自的存储地址进行存储,从而实现日志数据分流,对不同用途的日志采取不同的处理方式,降低数据处理之间的影响,尽可能使完成不同用途的日志数据之间解耦,为数据分析,监测等带来更大的可靠性。附图说明20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:21.图1为本发明实施例中一种基于paas云的日志运维方法的流程图;22.图2为本发明实施例中另一种基于paas云的日志运维方法的流程图;23.图3为本发明实施例中一种日志分流的示意图;24.图4为本发明实施例中一种基于paas云的日志运维装置的结构示意图;25.图5为本发明实施例中一种计算机设备的结构示意图。具体实施方式26.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。27.本发明实施例提供了一种基于paas云的日志运维方法,如图1所示,该方法包括步骤101至步骤104:28.步骤101、接收应用服务器上传的日志数据。29.步骤102、利用bwt变换算法和lz77编码对日志数据进行压缩,得到压缩数据。30.本发明实施例中,先对日志数据进行bwt变换,之后对bwt变换后的日志数据进行lz77编码,实现日志数据的压缩。31.bwt变换是通过对字符串循环移位得到一个字符矩阵,然后通过排序和变换得到一个新的字符串,它只改变原始字符串中字符的顺序,而并未改变其中字符本身。由于bwt能将数据内部相同的字符聚集到一起,因此可以为改善无损压缩算法的性能奠定良好基础。32.bwt变换是通过构造一个矩阵m,该矩阵是由源数据t通过位移变换得到,例如:t=[setye$],m可以表示为6×6的矩阵,m的第一行等于t,从第二行开始,每一行都是将上一行循环左移一位所得,直到第6行。可以看到该矩阵m是由t轮转得到的,当对矩阵m按照特定的字典顺序进行排序时,就会得到特定性能的矩阵,例如,按照第一列的排序首字母最小,其次第二列,第三列,直至最后一列,得到矩阵m’。这样一来,m’把首字母相同的字符串集中放在连续的位置上了,此时输出矩阵m’的最后一列,就得到了源数据进过变换后的数据t’,而数据t’很好的将相同的字母聚集在了一起,此时利用lz77编码压缩算法对数据进行压缩可以提高数据的压缩率。[0033]lz77编码是一种无损数据压缩算法,采用字典的方式进行压缩,是一个简单但十分高效的数据压缩算法。其方式就是把数据中一些可以组织成短语(最长字符)的字符加入字典,然后再有相同字符出现采用标记来代替字典中的短语,如此通过标记代替多数重复出现的字符以进行压缩。该算法利用前向缓冲区和滑动窗口,来维护数据字典,在前向缓冲区中不断寻找能够与字典中短语匹配的最长短语。[0034]可以看到,当字符串中的重复数据越多,利用lz77算法进行编码的效率就越高,因此将bwt算法和lz77算法结合起来运用在paas云平台中,可以很好的提高日志压缩效率,将压缩好的数据分流到不同的模块中,做相应的数据解析,可以提高paas云平台的日志处理效率。[0035]步骤103、读取flume参数,根据flume参数对压缩数据按照预设主题划分为多组主题数据。[0036]其中,不同主题的数据具有不同的用途,比如说,分别可以用于日志分析、日志归档存储或日志查询等用途,则可以设定相应的分析、存储和查询主题。[0037]flume一般由source、channel和sink模块构成,source模块和sink模块都支持自定义的模式,其中source模块用于接收日志流,可以按照官方说明自定义source模块来读取压缩之后的gz数据流;sink模块用于解析不同的文件流,将文件写入数据库或者分发到其他地址,依据不同的主题报文头,分发到不同的地址。[0038]示例性的,可以按照如下代码对source模块监控的数据流所属的目录文件进行配置:[0039]#监控的目录文件[0040]a1.sources.r1.filegroups=f1 f2[0041]a1.sources.r1.filegroups.f1=/home/jboss/logs/clickeventdata/click_event.log[0042]a1.sources.r1.filegroups.f2=/home/jboss/logs/clickeventdata/click.log[0043]本发明实施例中,执行步骤103在读取flume参数,根据flume参数对压缩数据按照预设主题划分为多组主题数据之前,还需要对flume参数进行配置。如图2所示,对flume参数进行配置的的过程可以执行为如下步骤201至步骤205。下面将结合不同步骤的代码实现对步骤进行解释说明。[0044]步骤201、开发多个sink模块。[0045]其代码实现具体如下:[0046][0047]步骤202、按照不同的预设主题对每个sink模块进行自定义,其中,每个sink模块对应一个预设主题,不同sink模块对应不同的存储地址。[0048]其代码实现具体如下所示:[0049][0050][0051][0052]步骤203、将自定义的解析不同预设主题的sink模块打成jar包放置到flume的lib目录下。[0053]例如将自定义开发的下发到hbase和kafka的sink模块,打成jar包放到lib目录下。打成的jar包可以为:flume-ng-hbase-sink-1.7.0.jar,或者为,flume-ng-kafka-sink-1.7.0.jar。[0054]步骤204、配置flume配置文件,在flume配置文件中加入自定义的sink模块对应的预设主题。[0055]示例性的,如下为在flume配置文件中加入自定的kafka主题的代码实现:a1.sinks.k1.type=org.apache.flume.sink.kafka.kafkasink。[0056]本步骤中的具体代码实现如下所示:[0057][0058][0059]步骤205、根据flume配置文件,在应用服务器上进行flume参数配置,指定使用的sink模块。[0060]#agent的名称为a1[0061]a1.sources=source1[0062]a1.channels=channel1[0063]a1.sinks=sink1[0064]#set source[0065]a1.sources.source1.type=taildir[0066]a1.sources.source1.filegroups=f1[0067]a1.sources.source1.filegroups.f1=/home/zh123/pycharmprojects/rs_httpserver/test/logtest/.*log[0068]a1sources.source1.fileheader=flase[0069]#set sink[0070]a1.sinks.sink1.type=breaklogtokafka[0071]#set channel[0072]a1.channels.channel1.type=memory[0073]a1.channels.channel1.capacity=1000[0074]a1.channels.channel1.transactioncapacity=1000[0075]#bind[0076]a1.sources.source1.channels=channel1[0077]a1.sinks.sink1.channel=channel1[0078]也就是说,通过配置flume.conf文件中的不同的sink,可配置不同主题数据的存储地址,从而实现不同主题数据的分类存储。[0079]步骤104、根据flume参数中定义的主题数据对应的存储地址,将不同主题数据分别传送至相应存储地址进行存储。[0080]举例来说,部分日志数据具有存储的用途,则其可以通过flume参数配置,将存储用途对应的主题数据的存储地址设置为hdfs文件存储系统中,以便于日后进行工单处理以及历史日志查询等。在这种场景下,当hdfs文件存储系统接收到主题数据后,采用gzip-deflate算法对主题数据进行再次压缩;存储再次压缩后的主题数据及主题数据的接收时间。[0081]在存储再次压缩后的主题数据及主题数据的接收时间之后,还可以定期扫描存储的主题数据,判断主题数据的保存时间是否超过预设的日志保存期限,保存时间为当前时间与主题数据的接收时间的差值;如果保存时间超过日志保存期限,则调用自动化脚本清理超期的主题数据。比如,可以编写sh脚本,定期清理超期的主题数据。[0082]再如,部分日志数据具有进行日志分析的用途,则其可以进入kafka,存储至hbase分布式数据库中;部分日志数据具有日志在线查询的功能,则其存储地址可以设置为es,使用flume+elasticsearch的配置,实现日志的在线实时搜索,以满足在线查询日志的需求。[0083]以日志分析、日志归档存储和日志在线查询三种用途为例,日志数据流向如图3所示。[0084]对于不同用途的日志,其存储需求不同,则相应设置的存储时间也不同,比如说,对于hdfs文件存储系统而言,其中的主题数据的用途为日志存储,则可以相应设置较长的存储事件,比如7天;对于es中为实现日志实时在线查询的主题数据,其存储事件可以设置为较短时间,如1天;对于hbase分布式数据库中进行日志分析的主题数据,其存储时间依照得到日志分析结果的时间来设置,比如说,1个小时得到日志分析结果,则可以将其存储事件设置为1小时。[0085]需要说明的是,不同主题数据可以存在交集,也就是说,部分日志数据可以同时具有一项或多项用途。[0086]本发明实施例中,当接收到应用服务器上送的日志数据,利用burrows-wheeler变换(burrows-wheeler transform,bwt)算法和lz77编码相结合的方案,进一步提高日志数据的压缩率,节省更多的空间;之后,利用flume参数中定义的不同主题对压缩数据进行分组,分别传送至各自的存储地址进行存储,从而实现日志数据分流,对不同用途的日志采取不同的处理方式,降低数据处理之间的影响,尽可能使完成不同用途的日志数据之间解耦,为数据分析,监测等带来更大的可靠性。[0087]本发明实施例中还提供了一种基于paas云的日志运维装置,如下面的实施例所述。由于该装置解决问题的原理与基于paas云的日志运维方法相似,因此该装置的实施可以参见基于paas云的日志运维方法的实施,重复之处不再赘述。[0088]如图4所示,该装置400包括通信模块401、压缩模块402、划分模块403和存储模块404。[0089]其中,通信模块401,用于接收应用服务器上传的日志数据;[0090]压缩模块402,用于利用bwt变换算法和lz77编码对日志数据进行压缩,得到压缩数据;[0091]划分模块403,用于读取flume参数,根据flume参数对压缩数据按照预设主题划分为多组主题数据;[0092]存储模块404,用于根据flume参数中定义的主题数据对应的存储地址,将不同主题数据分别传送至相应存储地址进行存储。[0093]在本发明实施例的一种实现方式中,装置还包括配置模块,用于:[0094]开发多个sink模块;[0095]按照不同的预设主题对每个sink模块进行自定义,其中,每个sink模块对应一个预设主题,不同sink模块对应不同的存储地址;[0096]将自定义的解析不同预设主题的sink模块打成jar包放置到flume的lib目录下;[0097]配置flume配置文件,在flume配置文件中加入自定义的sink模块对应的预设主题;[0098]根据flume配置文件,在应用服务器上进行flume参数配置,指定使用的sink模块。[0099]在本发明实施例的一种实现方式中,存储地址包括hdfs文件存储系统,当存储地址为hdfs文件存储系统时,存储模块,用于:[0100]当hdfs文件存储系统接收到主题数据后,采用gzip-deflate算法对主题数据进行再次压缩,[0101]存储再次压缩后的主题数据及主题数据的接收时间。[0102]在本发明实施例的一种实现方式中,装置还包括:[0103]扫描模块,用于定期扫描存储的主题数据,判断主题数据的保存时间是否超过预设的日志保存期限,保存时间为当前时间与主题数据的接收时间的差值;[0104]清理模块,用于当保存时间超过日志保存期限时,调用自动化脚本清理超期的主题数据。[0105]本发明实施例中,当接收到应用服务器上送的日志数据,利用burrows-wheeler变换(burrows-wheeler transform,bwt)算法和lz77编码相结合的方案,进一步提高日志数据的压缩率,节省更多的空间;之后,利用flume参数中定义的不同主题对压缩数据进行分组,分别传送至各自的存储地址进行存储,从而实现日志数据分流,对不同用途的日志采取不同的处理方式,降低数据处理之间的影响,尽可能使完成不同用途的日志数据之间解耦,为数据分析,监测等带来更大的可靠性。[0106]本发明实施例还提供一种计算机设备,图5为本发明实施例中计算机设备的示意图,该计算机设备能够实现上述实施例中的基于paas云的日志运维方法中全部步骤,该计算机设备具体包括如下内容:[0107]处理器(processor)501、存储器(memory)502、通信接口(communications interface)503和通信总线504;[0108]其中,所述处理器501、存储器502、通信接口503通过所述通信总线504完成相互间的通信;所述通信接口503用于实现相关设备之间的信息传输;[0109]所述处理器501用于调用所述存储器502中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的基于paas云的日志运维方法。[0110]本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于paas云的日志运维方法。[0111]本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述基于paas云的日志运维方法。[0112]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。[0113]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0114]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0115]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0116]以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
基于PaaS云的日志运维方法及装置与流程
作者:admin
2022-08-31 09:18:36
743
关键词:
计算;推算;计数设备的制造及其应用技术
专利技术