一种加速DNS解析软件日志记录的方法和系统技术方案

技术编号:19068142 阅读:130 留言:0更新日期:2018-09-29 14:58
本发明专利技术涉及一种加速DNS解析软件日志记录的方法和系统。该方法采集查询报文的日志信息,并生成二进制日志信息流;将生成二进制日志信息流存放到日志信息仓库中,然后从所述日志信息仓库中取出二进制日志信息流,将其输出到日志文件或者输送到UNIX DOMAIN SOCKET;然后解析所述日志文件并输出可视化日志信息,或者接收UNIX DOMAIN SOCKET中的二进制日志信息流后输出可视化日志信息。本发明专利技术可以在不修改DNS软件解析代码的情况,将DNS解析软件记录日志与DNS解析过程进行隔离,能够在保证DNS解析软件高性能输出日志文件的情况下,增加DNS解析软件的解析性能。

【技术实现步骤摘要】
一种加速DNS解析软件日志记录的方法和系统
本专利技术属于信息技术、DNS
,具体涉及一种加速DNS解析软件日志记录的方法和系统。
技术介绍
DNS(DomainNameSystem,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。域名解析是由DNS解析软件来完成,如图1所示。主流的DNS解析软件有bind、unbound等。随着当今互联网需要的迅猛增长,互联网访问的数据量急剧增加,DNS服务器的访问量也大幅激增,其QPS(每秒查询率)已达到百万甚至千万级别。高QPS的需求,意味着DNS服务器要提供高性能解析软件,可见提高解析软件的解析性能对满足当今高访问量的互联网需求至关重要。然而DNS解析软件的性能影响因素中最重要的一个影响因素就是日志系统的性能。传统的DNS解析软件记录日志的过程如图2所示,日志的记录存在如下问题:日志记录与DNS解析过程同步进行;日志系统需要实时解析DNS查询报文;日志系统缺少日志记录缓冲区等等。如果查询量增加,日志系统的压力增大,直接影响了DNS解析软件的解析性能。如果DNS解析软件不开启DNS解析软件的日志系统,会造成大量重要数据的丢失,其影响同样不可估量。提高DNS解析软件的性能,首先要解决DNS解析软件的日志系统的性能。
技术实现思路
本专利技术针对以上问题,提供一种加速DNS解析软件日志记录的方法和系统,能够提高DNS解析软件记录日志的性能,进而提高DNS解析软件的解析性能。本专利技术的主要原理是在原有的DNS解析软件中插入异步日志模块,以隔离DNS解析过程与DNS日志记录的过程。本专利技术采用的技术方案如下:一种加速DNS解析软件日志记录的方法,包括以下步骤:采集查询报文的日志信息,并生成二进制日志信息流;将所述二进制日志信息流输出到日志文件或者输送到UNIXDOMAINSOCKET;解析所述日志文件并输出可视化日志信息,或者接收UNIXDOMAINSOCKET中的二进制日志信息流后输出可视化日志信息。进一步地,将生成二进制日志信息流存放到日志信息仓库中,然后从所述日志信息仓库中取出二进制日志信息流,将其输出到日志文件或者输送到UNIXDOMAINSOCKET。进一步地,所述日志信息仓库利用Linux内存屏障实现无锁的循环的队列,支持多线程的日志信息入仓与多线程的日志信息出仓,以提升记录日志的性能。进一步地,所述采集查询报文的日志信息,包括采集客户端IP及其端口、查询域名、DNS解析软件接收IP及其端口信息,对其进行二进制编码以生成二进制日志信息流。一种加速DNS解析软件日志记录的系统,其包括:信息采集模块,负责采集查询报文的日志信息,并生成二进制日志信息流;日志信息中转模块,负责将所述二进制日志信息流输出到日志文件或者输送到UNIXDOMAINSOCKET;日志解析模块,负责解析所述日志文件并输出可视化日志信息,或者接收UNIXDOMAINSOCKET中的二进制日志信息流后输出可视化日志信息。进一步地,还包括日志信息仓库,负责存贮所述信息采集模块生成的二级制日志信息流;所述日志信息中转模块从所述日志信息仓库中取出二进制日志信息流,将其输出到日志文件或者输送到UNIXDOMAINSOCKET。进一步地,所述日志信息仓库利用Linux内存屏障实现无锁的循环的队列,支持多线程的日志信息入仓与多线程的日志信息出仓,以提升记录日志的性能。一种DNS服务器,其配置有DNS解析软件,所述DNS解析软件包含上面所述的加速DNS解析软件日志记录的系统。本专利技术的技术核心在于在原有的DNS解析软件中插入异步日志模块,可以做到DNS查询过程与日志输出彻底隔离。利用高性能的采集器采集日志数据,利用无锁的日志信息仓库存取日志信息,利用日志信息的中转策略提供更多选择的高效的处理方式的日志信息。传统的DNS解析软件日志模块的设计是接收查询报文,解析查询报文,组织输出信息,输出DNS查询日志文本信息到日志文件。在这个过程中解析查询报文并转换成一定格式的文本信息耗费时间较长,写入日志文件的时候会堵塞DNS解析的过程,如果存在大量的查询必然会很大程度的降低DNS解析软件的解析性能。本专利技术做到了异步记录DNS日志信息,完全与DNS解析过程隔离出来,通过二进制编码等策略提高了记录日志的性能,进而提高了DNS解析软件的解析性能。本专利技术可以在不修改DNS软件解析代码的情况,做到DNS解析软件记录日志与DNS解析过程进行隔离,通过二进制日志信息编码策略与增加日志输出的缓冲区等策略大大的提高DNS解析软件记录日志的性能,进一步的解决传统的DNS解析软件以牺牲记录日志来换取解析性能的问题,能够在保证DNS解析软件高性能输出日志文件的情况下,增加DNS解析软件的解析性能。附图说明图1是客户查询DNS过程示意图。图2是传统DNS解析软件记录日志示意图。图3是本专利技术的一种可加速DNS解析软件日志记录的方法的工作流程图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本专利技术做进一步说明。本专利技术在原有的DNS解析软件中插入可以编译的异步日志模块,以实现DNS解析软件记录日志的异步化。所述异步日志模块包含的功能模块分别为:信息采集模块、日志信息仓库、日志信息中转模块、日志解析模块。各模块间的连接关系如图3所示。信息采集模块负责在查询报文中采集日志信息,按照特定格式进行二进制编码后存放在日志信息仓库中。信息采集模块可以应用开源软件(protobuf)组织二进制日志信息流。日志信息的二进制编码的格式可以根据需求来定制,比如四字节表示头信息,十六字节表示时间戳,一字节表示DNS标志位,两字节表示客户端端口,两字节表示DNS服务器端口,另外还包括客户端IP地址、DNS服务器IP地址、查询信息二进制流等等。日志信息仓库负责存贮二级制日志信息流,等待日志信息中转模块取出日志信息。为了提高日志信息仓库的入仓与出仓的性能,利用LinuxMemoryBarries(Linux内存屏障)设计成无锁的循环的队列。这样能够支持多线程的日志信息入仓与多线程的日志信息出仓,提升记录日志的性能。日志信息中转模块负责从日志信息仓库中取出二进制日志信息流,然后按照配置信息处理二进制日志信息流。所述配置信息即处理的模式,主要有两个方面,一个是二进制日志信息流输出到日志文件,另一个是二进制日志信息流发送到UNIXDOMAINSOCKET(UNIX域套接字)。如果选择日志信息流输出为日志文件,可以利用系统日志输出的文件缓存,通过标准的库函数设置文件缓存大小,提高日志信息输出到日志文件的性能。日志解析模块负责将二进制日志信息解析成可视化文本信息。可以将存成二进制的日志文件解析成可视化的文本格式;或者接收UNIXDOMAINSOCKET中的信息流后,存成二进制日志文件,然后解析成可视化的文本格式;或者接收UNIXDOAINSOCKET中的信息流,解析成可视化文本日志并输出到显示屏上。比如在二进制流中客户端IP是四个字节,解析之后成为192.168.0.1这样点分格本文档来自技高网...

【技术保护点】
1.一种加速DNS解析软件日志记录的方法,其特征在于,包括以下步骤:采集查询报文的日志信息,并生成二进制日志信息流;将所述二进制日志信息流输出到日志文件或者输送到UNIX DOMAIN SOCKET;解析所述日志文件并输出可视化日志信息,或者接收UNIX DOMAIN SOCKET中的二进制日志信息流后输出可视化日志信息。

【技术特征摘要】
1.一种加速DNS解析软件日志记录的方法,其特征在于,包括以下步骤:采集查询报文的日志信息,并生成二进制日志信息流;将所述二进制日志信息流输出到日志文件或者输送到UNIXDOMAINSOCKET;解析所述日志文件并输出可视化日志信息,或者接收UNIXDOMAINSOCKET中的二进制日志信息流后输出可视化日志信息。2.根据权利要求1所述的方法,其特征在于,将生成二进制日志信息流存放到日志信息仓库中,然后从所述日志信息仓库中取出二进制日志信息流,将其输出到日志文件或者输送到UNIXDOMAINSOCKET。3.根据权利要求2所述的方法,其特征在于,所述日志信息仓库利用Linux内存屏障实现无锁的循环的队列,支持多线程的日志信息入仓与多线程的日志信息出仓,以提升记录日志的性能。4.根据权利要求1所述的方法,其特征在于,所述采集查询报文的日志信息,包括采集客户端IP及其端口、查询域名、DNS解析软件接收IP及其端口信息,对其进行二进制编码以生成二进制日志信息流。5.一种加速DNS解析软件日志记录的系统,其特征在于,包括:信息采集模块,负责采集查询报文的日志信息,并生成二进制日志信息流;日志信息中转模块,负责将所述二进制日志信息流输出到日志文件或者输送到UNIXDOMAINSOCKET;日志解析模块,负责解析所述日志...

【专利技术属性】
技术研发人员:吕万波张海阔叶崛宇贺明岳巧丽
申请(专利权)人:中国互联网络信息中心
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1