一种加速DNS解析软件日志记录的方法和系统与流程

文档序号:15567940发布日期:2018-09-29 03:47阅读:667来源:国知局

本发明属于信息技术、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这样点分格式的ip信息。

本发明的异步日志模块工作流程为:

1、信息采集模块采集查询报文日志信息,生成二进制日志信息流并存放到日志信息仓库中。

2、日志信息中转模块从日志信息仓库中取出二进制日志信息流,根据配置信息对二进制日志信息流做处理。

3、日志解析模块解析二进制日志信息流文件输出文本日志信息,或者接收unixdomainsocket信息再可视化输出日志信息。

图3为一个实施例的加速dns解析软件日志记录的方法的流程图,其具体步骤如下:

1)在原有的dns解析软件加入异步日志模块进行编译,编译通过后运行dns解析软件。

2)在客户机器上发送查询数据包到启动的dns解析软件。

3)dns解析软件接收到查询数据包(即查询报文)。

4)信息采集模块采集基本日志信息(客户端ip及其端口,查询域名,dns解析软件接收ip,及其端口信息等等),对其进行二进制编码并存入日志信息仓库。

5)日志信息中转模块从日志信息仓库中取出日志信息,按照中转策略进行日志输出。所述中转策略为:输出到日志文件、或者输送到unixdomainsocket。

6)如果在第5)步选择输送到unixdomainsocket,可以利用日志解析模块接收unixdomainsocket日志信息再输出。如果在第5)步选择输出到二进制日志文件,可以利用日志解析模块进行解析,然后输出可视化日志信息。

本发明的上述方法具有以下特点:

1)在原有的dns解析软件中插入异步日志模块,可以做到dns查询过程与日志输出彻底隔离。

2)通过dns日志信息的采集模块,能够高效的编码二进制日志信息流。

3)通过建立无锁的日志信息仓库,可以更高效解决日志信息的存储与输出。

4)通过日志信息的中转策略,提供更多选择的处理方式的日志信息。

5)通过日志解析模块可以更高效的进行二级制日志信息流的文本解析工作。可以做到类似tcpdump的处理二进制日志信息流。

通过实验验证得知,在没有采用本发明方法的情况下,查询日志约为3万条/秒,采用本发明的方法则可以达到60万条/秒,显著提高了记录日志的性能,进而增加了dns解析软件的解析性能。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1