一种日志传输方法及系统与流程

文档序号:29437131发布日期:2022-03-30 09:08阅读:206来源:国知局
一种日志传输方法及系统与流程

1.本发明属于系统告警领域,尤其涉及一种日志传输方法及系统。


背景技术:

2.系统事件的日志消息既可以记录在本地文件中,也可以转换成特定格式后通过网络发送到接收服务器,以便服务器对多个设备的日志消息进行统一的存储,或者解析其中的内容做相应的处理。
3.现有技术将syslog类型的日志利用传输协议上传到服务器进行处理时,由于没有规范的标准来约束syslog格式,即syslog格式非常随意,甚至有些情况下没有任何格式,导致接收syslog日志的服务器无法对syslog日志进行解析,也就无法根据解析的内容进行异常事件排查。
4.因此,如何将系统日志的格式进行标准化处理,以提高日志传输的识别率,是业界亟需解决的重要课题。


技术实现要素:

5.本发明提供的一种日志传输方法及系统,用以解决现有技术将日志传输到服务器时,由于日志格式不规范导致服务器无法解析的缺陷,以提高日志传输的识别率。
6.本发明提供一种日志传输方法,所述方法包括:获取待传输的日志;将所述日志转换为目标elf日志,所述目标elf日志具有目标服务器可识别的标准格式;基于预设协议将所述目标elf日志传输至所述目标服务器。
7.根据本发明提供的一种日志传输方法,所述方法还包括:获取所述目标elf日志的字符串长度;若所述字符串长度大于或等于预设长度,则将所述目标elf日志拆分为至少两个分块结构,所述分块结构包括分块目标elf魔数、消息id、序列号以及序列计数中的至少两者。
8.判定所有所述分块结构均能够在预设时长内完成传输,则所述目标服务器接收所述分块结构对应的目标elf日志。
9.所述预设时长为小于或等于5秒。
10.在netty框架下利用tcp/udp协议将所述目标elf日志传输至所述目标服务器中。
11.将所述目标elf日志压缩成gzip格式的文件或者zlib格式的文件,并将压缩后的文件传输至所述目标服务器。
12.本发明还提供一种日志传输系统,所述系统包括:日志获取单元,用于获取待传输的日志;日志转换单元,用于将所述日志转换为目标elf日志,所述目标elf日志具有目标服务器可识别的标准格式;日志传输单元,用于基于预设协议将所述目标elf日志传输至所述目标服务器。
13.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述日志传输方法
(windows nt 10.0; win64;x64) applewebkit/537.36 (khtml,like gecko) chrome/69.0.3497.100 safari/537.36”,可根据上述日志显示内容获取访问者的ip、访问日期、请求方式、请求链接、请求参数、http协议、返回转态码、返回包长度、请求包的referer、以及访问者的浏览器信息等;本实施例获取从第三方应用服务或兼容目标elf格式的应用服务中产生普通日志作为待检测日志。
23.步骤102、将所述日志转换为目标elf日志,所述目标elf日志具有目标服务器可识别的标准格式。
24.可以理解的是,本实施先在目标elf日志采集器中定义一个转换函数,然后分别解析待检测日志的日志等级以及日志内容,再利用转换函数将每条日志的日志等级以及日志内容记录到目标elf日志中,以得到转换后的目标elf日志,例如,某个产品产生的一条完整的日志为:eventtype="zgv0zwn0b3i="date="1609987874"sensor=""device="192.168.1.163"interface=""plugin_id="500" '\'plugin_sid="66"priority=""protocol="dwrw" src_ip="10.157.10.185"src_port="3306" dst_ip="12.12.12.20" dst_port="800"''username=""password="" filename=""userdata1="5lit5pahwglhb01p"userdata2="ndcxndm="userdata3="" '\'userdata4="zxrooa== "userdata5="chvzac5icm93c2vylnfxlm-nvbq=="userdata6="qq==amazon"userdata7="" ' \ 'userdata8="" userdata9="" occurrences="" log="ak4xuo5w8gmrd/stxvvel4wk/5myc5k4qwn9v594wr2duir/al4j47hxd9gw3dmwrw2yea59w8vk95qw2ezct2exsz0xcbltyuknrntgujhv023jjiy12lzoyenw/pgswdby4iytgdslsyjnjkz9skud21cedrczwwchpja+13fm2nortapqn9oxuykbf6hwcdiyaafy42yebo8gzovihv/oabqmcpqebvrpoxynbkfzy0mgoutp44zmxkiufug4v+/bj/ov93oozcqmrhggjcghwpduqajppr9sbichnthbc4kiwdkrahppkelbvivpnkspkqjlkcnvptc2p85a/rpg5q7oip94devsidxawjqikxvotwp0lc1vxyukvdthxe4bmsrkiysk8vjpvt0puw=="snort_sid=""snort_cid="" fdate="mjayms0wms0wnyaw-mjo1mtoxna=="tzone="oc4w"ctx=""sensor_id="02469cb38b294914b0a59c8fec2f4ca6"event_id=""binary_data=""pulses=""event_id="509311eb-9245-0090-0b67-3ae535ed95d5"ver="1",分析该日志以及各项内容,并转化成json格式的目标elf日志为:{"date":"1609987874","occurrences":"","event_id":"509311eb-9245-0090-0b67-3ae535ed95d5","src_ip":"192.168.200.20","dst_port":"80","log":"{\"timestamp\":\"2021-01-07t10:51:14.642395+0800\",\"flow_id\":317891855699291,\"in_iface\":\"eth8\",\"event_type\":\"dns\",\"src_ip\":\"10.157.10.185\",\"src_port\":62843,\"dest_ip\":\"10.157.10.129\",\"dest_port\":53,\"proto\":\"udp\",\"dns\":{\"type\":\"
query\",\"id\":47143,\"rrname\":\"push.browser.qq.com\",\"rrtype\":\"a\",\"tx_id\":0}}","interface":"","protocol":"udp","password":"","userdata7":"","fdate":"2021-01-07 02:51:14",userdata8":"","userdata5":"push.browser.qq.com","dst_ip":"12.12.12.20","userdata6":"qq","plugin_sid":"100856","userdata9":"","ver":"1","snortsid":"","userdata3":"","userdata4":"eth8","plugin_id":"1001","ctx":"","binarydata":"","userdata1":"query","userdata2":"47143","priority":"","sensor_id":"02469cb38b294914b0a59c8fec2f4ca6","filename":"","snortcid":"","pulses":"","src_port":"62843","sevent_id":"","sensor":"","tzone":"8.0","device":"192.168.1.163","username":""};另外,由于转换后的目标elf日志是具有标准形式的文件,可通过预设传输协议将采集的目标elf日志传输到目标服务器。
25.步骤103、基于预设协议将所述目标elf日志传输至所述目标服务器。
26.具体的,本实施例利用预设的数据传输协议将获取具有标准格式的目标elf日志进行归一化处理后,传输到支持目标elf日志的服务器中进行后续日志解析和分析过程。
27.需要说明的是,本实施例采用用户数据报协议(user datagram protocol,udp)进行日志上传,udp协议是一种无链接的传输层协议,利用udp协议进行传输的延迟小,数据传输效率高,能够提高日志上传速率及效率。
28.本发明所述方法能够将普通日志的格式转换成具有标准格式的目标elf日志,提高了日志传输的识别率。
29.可选的,获取所述目标elf日志的字符串长度;若所述字符串长度大于或等于预设长度,则将所述目标elf日志拆分为至少两个分块结构,所述分块结构包括分块目标elf魔数、消息id、序列号以及序列计数中的至少两者。
30.可以理解的是,大部分日志利用udp协议进行上传时,日志包含内容的字符串长度不能超过1024字节,否则可能会导致接收该日志的服务器无法识别;例如,当前时间段内存在多条syslog日志的udp报文长度为2048个字节,所需传输的udp数据报总长度超过65536字节,则每条日志至少会被分成两条不超过1024字节的子日志,一般情况下,第一条子日志的开头部分对应了原日志开头部分,若第二条字日志没有正确的索引,会导致第二条字日志无法被原日志对应的接收服务器所识别,从而导致原始日志无法被对应的接收服务器所解析;本实施例将采集到的每条目标elf日志设置为若干个分块结构,每个分块结构包含了目标elf魔数、消息id、序列号以及序列计数中的至少两个内容,其中,目标elf魔数的长度为2字节,如“0x1e”、“0x0f”,消息id长度为8字节,并且在每条日志对应的所有分块结构共享一个消息id,该消息一般由毫秒时间戳和主机名构成,序列号长度为1字节,表示每个分块结构的序列号,序列计数长度为1字节,表示当前日志对应分块结构的总数,该分块结构的总数不超过128;这样,每条日志被单独分块后,每个分块结构都有明确的序列号、魔数以及共享的消息id,可确保超过1024字节的目标elf日志能够将其所有分块结构正确的向对应的目标服务器传输,以保证服务器对日志消息的正常接收。
31.本实施例提供了一种将目标elf日志设置为多个分块结构的方法,以解决目前每条日志传输到服务器进行解析的过程中,因其长度超过1024字节而导致服务器无法识别的
问题。
32.可选的,判定所有所述分块结构均能够在预设时长内完成传输,则所述目标服务器接收所述分块结构对应的目标elf日志。
33.可以理解的是,每条目标elf日志设置为多个分块结构后,每个分块结构都有一个明确的序列号、魔数以及共享的消息id,从而保证每个分块结构有着相同的索引被传输到对应的目标服务器中,但是不同的分块结构传输速度并不相同,只有在最大传输时间内每个目标elf日志的所有分块结构均能到达目标服务器,则该服务器可从分块结构中获取对应的目标elf日志内容,若存在一个分块结构不能在规定时间内达到,则该服务器就不能获取完整的目标elf日志内容。
34.本实施例提供了一种目标服务器接收目标elf日志的方法,用于保证目标服务器能从接收的分块结构中获取对应的目标elf日志。
35.可选的,所述预设时长为小于或等于5秒。
36.可以理解的是,理论上的预设时长最大值可以为5秒,但不仅限于5秒;本实施例规定了每条目标elf日志的所有分块结构必须在开始上传的5秒内达到目标服务器,否则服务器将丢弃所有已到达和未到达的数据块。
37.本实施例所述方法提供了目标elf日志的所有分块结构达到目标服务里的最大时间范围,当前需要分块的目标elf日志对应所有分块结构只有在该时间范围内到达服务器,才能使服务器接收到目标elf日志,提高了日志接收的时效性,避免长时间占据传输路径。
38.可选的,在netty框架下利用tcp/ udp协议将所述目标elf日志传输至所述目标服务器中。
39.可以理解的是,netty 是一款异步的事件驱动的网络应用程序框架,它提供了大量的类来支持udp应用程序的编写,其中,netty的datagrampacket是一个简单的消息容器,datagramchannel实现用它来和远程节点通信;本实施例扩展netty的messagetomessageencoder,每个目标elf日志可以通过上述datagrampacket进行传输,并由远程目标服务器的节点捕获。
40.本实施例提供了一种将目标elf日志利用udp协议传输到目标服务器的方法,能够减小传输过程的延迟,提高了日志上传速率及效率。
41.可选的,将所述目标elf日志压缩成gzip格式的文件或者zlib格式的文件,并将压缩后的文件传输至所述目标服务器。
42.可以理解的是,文件压缩可以打包多个彼此相关联的文件,提升了文件传输效率;若当前待传输的日志数量庞大,则日志的传输效率会受到当前网络状态以及磁盘空间的影响较大,影响目标服务器正常接收包含多个结构分块的目标elf日志;本实施例在目标elf日志上传到目标服务器前将其压缩为gzip格式,然后将压缩文件上传至支持接收目标elf日志的服务器进行后续的日志解析过程。
43.本实施例提供了一种将目标elf日志压缩后上传至目标服务器的方法,能够提升日志传输效率,同时将多个相关联的日志压缩打包后能够缩短服务器对接收日志的校验过程。
44.基于上述实施例,结合图2对本发明提供方法的实施过程进行具体说明。
45.在本实施例中,先将第三方服务应用产生的时间日志读写到硬盘中存储,并对日
志进行监控;然后利用目标elf日志采集器对监控的日志进行解析,并基于采集器的转换函数将日志解析内容存入目标elf日志中,已将输入的日志转化为目标elf格式的日志,其中,目标elf日志包含的字符串类型为json格式;接着对多个目标elf日志采集器生成的目标elf日志进行归一化处理,并在netty框架下利用tcp/ udp协议将所述目标elf日志传输至支持接收目标elf日志的服务器进行后续的日志解析过程。
46.这样,本实施例提供的一种日志传输方法,先获取待传输的日志,然后将所述日志转换为目标elf日志,目标elf日志具有目标服务器可识别的标准格式,最后基于预设的信息传输协议将目标elf日志传输至目标服务器;本实施例所述方法能够将普通日志的格式转换成具有标准格式的目标elf日志,提高了日志传输的识别率。
47.结合图3对本发明实施例提供的一种日志传输系统进行描述,下文描述的一种日志传输系统与上文描述的一种日志传输方法可相互对应参照。
48.本发明提供的一种日志传输系统,包括:日志获取单元301,用于获取待传输的日志;日志转换单元302,用于将所述日志转换为目标elf日志,所述目标elf日志具有目标服务器可识别的标准格式;日志传输单元303,用于基于预设协议将所述目标elf日志传输至所述目标服务器。
49.本实施例提供的一种日志传输系统,先通过日志获取单元301获取待传输的日志,然后通过日志转换单元302将所述日志转换为目标elf日志,目标elf日志具有目标服务器可识别的标准格式,最后通过日志传输单元303基于预设的信息传输协议将目标elf日志传输至目标服务器;本实施例所述系统能够将普通日志的格式转换成具有标准格式的目标elf日志,提高了日志传输的识别率。
50.图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(communications interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行一种日志传输方法,该方法包括:获取待传输的日志;将所述日志转换为目标elf日志,所述目标elf日志具有目标服务器可识别的标准格式;基于预设协议将所述目标elf日志传输至所述目标服务器。
51.此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
52.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的一种日志传输方法,该方法包括:获取待传输的日志;将所述日志转换为目标elf日志,所述目标elf日志具有目标服务器可识别的标准格式;基于预设协议将所述目标elf日志传输至所述目标服务器。
53.本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算
机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的一种日志传输方法,该方法包括:获取待传输的日志;将所述日志转换为目标elf日志,所述目标elf日志具有目标服务器可识别的标准格式;基于预设协议将所述目标elf日志传输至所述目标服务器。
54.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
55.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
56.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1