CN114036181A - 基于Splunk的日志查询方法、装置、计算机设备及存储介质 - Google Patents

基于Splunk的日志查询方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN114036181A
CN114036181A CN202111353559.9A CN202111353559A CN114036181A CN 114036181 A CN114036181 A CN 114036181A CN 202111353559 A CN202111353559 A CN 202111353559A CN 114036181 A CN114036181 A CN 114036181A
Authority
CN
China
Prior art keywords
query
log query
log
splunk
statement
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
Application number
CN202111353559.9A
Other languages
English (en)
Inventor
路洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Pension Insurance Corp
Original Assignee
Ping An Pension Insurance Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Pension Insurance Corp filed Critical Ping An Pension Insurance Corp
Priority to CN202111353559.9A priority Critical patent/CN114036181A/zh
Publication of CN114036181A publication Critical patent/CN114036181A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique

Abstract

本发明实施例公开了一种基于Splunk的日志查询方法、装置、计算机设备及存储介质。本发明涉及人工智能技术领域,其包括:若接收到预设查询指令,则根据预设查询指令获取查询页面上录入的日志查询信息;通过Druid解析器对SQL日志查询条件及日志查询时间进行解析以生成日志查询语句;对日志查询语句进行适配以生成Splunk日志查询语句,并对Splunk日志查询语句及日志查询时间进行加密生成查询校验值;判断Redis缓存中是否存在查询校验值;若Redis缓存中不存在查询校验值,则将查询校验值保存至Redis缓存,并根据Splunk日志查询语句调用Splunk引擎进行日志查询以得到日志查询结果;将日志查询结果保存至Clickhouse数据库并进行展示。本申请实施例可提高日志查询效率及支持多页显示。

Description

基于Splunk的日志查询方法、装置、计算机设备及存储介质
技术领域
本发明涉及人工智能技术领域,尤其涉及一种基于Splunk的日志查询方法、装置、计算机设备及存储介质。
背景技术
日志,特指程序日志或系统日志,一般包含时间、运行代码、业务信息、错误信息等内容。开发、测试、运维、安全对日志都有非常硬性的需求,问题的核查、信息的统计,异常的发现,用户行为的分析等,都需要对日志进行查询。而在日志查询领域,经常会使用到Splunk所提供的搜索引擎,但Splunk的语法对于普通的开发人员、测试人员亦或是代码经验较少的运维同事来说门槛比较高,需要额外学习,费时费力,查询效率较低,且Splunk返回的结果相对单一且不支持翻页。
发明内容
本发明实施例提供了一种基于Splunk的日志查询方法、装置、计算机设备及存储介质,旨在解决现有日志查询效率较低及不支持翻页的问题。
第一方面,本发明实施例提供了一种基于Splunk的日志查询方法,其包括:
若接收到预设查询指令,则根据所述预设查询指令获取查询页面上录入的日志查询信息,其中,所述日志查询信息包括SQL日志查询条件及日志查询时间;
通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句;
对所述日志查询语句进行适配以生成Splunk日志查询语句,并对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值;
判断Redis缓存中是否存在所述查询校验值;
若所述Redis缓存中不存在所述查询校验值,则将所述查询校验值保存至所述Redis缓存,并根据所述Splunk日志查询语句调用Splunk引擎进行日志查询以得到日志查询结果;
将所述日志查询结果保存至Clickhouse数据库并进行展示。
第二方面,本发明实施例还提供了一种基于Splunk的日志查询装置,其包括:
获取单元,用于若接收到预设查询指令,则根据所述预设查询指令获取查询页面上录入的日志查询信息,其中,所述日志查询信息包括SQL日志查询条件及日志查询时间;
第一生成单元,用于通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句;
第二生成单元,用于对所述日志查询语句进行适配以生成Splunk日志查询语句,并对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值;
判断单元,用于判断Redis缓存中是否存在所述查询校验值;
查询单元,用于若所述Redis缓存中不存在所述查询校验值,则将所述查询校验值保存至所述Redis缓存,并根据所述Splunk日志查询语句调用Splunk引擎进行日志查询以得到日志查询结果;
保存单元,用于将所述日志查询结果保存至Clickhouse数据库并进行展示。
第三方面,本发明实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
本发明实施例提供了一种基于Splunk的日志查询方法、装置、计算机设备及存储介质。其中,所述方法包括:若接收到预设查询指令,则根据所述预设查询指令获取查询页面上录入的日志查询信息,其中,所述日志查询信息包括SQL日志查询条件及日志查询时间;通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句;对所述日志查询语句进行适配以生成Splunk日志查询语句,并对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值;判断Redis缓存中是否存在所述查询校验值;若所述Redis缓存中不存在所述查询校验值,则将所述查询校验值保存至所述Redis缓存,并根据所述Splunk日志查询语句调用Splunk引擎进行日志查询以得到日志查询结果;将所述日志查询结果保存至Clickhouse数据库并进行展示。本发明实施例的技术方案,通过Druid解析器及适配操作将SQL日志查询条件及日志查询时间生成Splunk日志查询语句,无需相关人员额外学习Splunk语法,从而省时省力,提高查询效率;将Splunk返回的查询结果保存至Clickhouse数据库,可支持多页显示。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于Splunk的日志查询方法的流程示意图;
图2为本发明实施例提供的一种基于Splunk的日志查询方法的子流程示意图;
图3为本发明实施例提供的一种基于Splunk的日志查询方法的子流程示意图;
图4为本发明实施例提供的一种基于Splunk的日志查询方法的子流程示意图;
图5为本发明实施例提供的一种基于Splunk的日志查询装置的示意性框图;以及
图6为本发明实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
请参阅图1,图1是本发明实施例提供的一种基于Splunk的日志查询方法的流程示意图。本发明实施例的基于Splunk的日志查询方法可应用于终端,例如笔记本电脑、手提电脑、平板电脑等通信终端,通过安装于所述终端上的应用程序来实现所述基于Splunk的日志查询方法,从而无需相关人员额外学习Splunk语法,从而省时省力,提高查询效率且支持多页显示。如图1所示,该方法包括以下步骤S100-S150。
S100、若接收到预设查询指令,则根据所述预设查询指令获取查询页面上录入的日志查询信息,其中,所述日志查询信息包括SQL日志查询条件及日志查询时间。
在本发明实施例中,普通的开发人员、测试人员亦或是代码经验较少的运维同事在日志查询工具的查询页面录入日志查询信息之后,会点击查询页面上的查询按钮,此时会触发预设查询指令的发送,日志查询工具接收到所述预设查询指令,并根据所述预设查询指令获取查询页面上录入的日志信息,其中,所述日志查询信息包括SQL日志查询条件及日志查询时间,例如SQL日志查询条件为Accesslog表中请求次数大于5次的请求的平均响应时间、最大响应时间以及最快响应时间;日志查询时间为2021年9月21日7时26分至2021年9月21日8时26分。
需要说明的是,本发明实施例可以基于人工智能技术对查询页面上录入的日志查询信息进行获取。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
请参阅图2,在一实施例中,例如在本发明实施例中,所述步骤S100包括如下步骤S101-S103。
S101、根据所述预设查询指令识别日志查询录入类型;
S102、若所述日志查询录入类型为编辑框录入,则获取查询页面上编辑框中录入的日志查询信息;
S103、若所述日志查询录入类型为模板录入,则获取所述查询页面上选中的模板对应的所述日志查询信息。
在本发明实施例中,普通的开发人员、测试人员亦或是代码经验较少的运维同事在日志查询工具的查询页面点击查询按钮之前,会选择录入日志查询信息的方式,若选择编辑框录入,表明需要手动输入SQL日志查询条件,反之若选择模板输入,则需勾选查询页面上的模板语句,可理解地,在点击查询按钮之前,还可点击查询页面上的保存按钮,以对SQL日志查询条件进行保存。日志信息录入完成之后,点击查询按钮,触发预设查询指令的发送,日志查询工具根据所述预设查询指令识别日志查询录入类型;若所述日志查询录入类型为编辑框录入,则获取查询页面上编辑框中录入的日志查询信息;若所述日志查询录入类型为模板录入,则获取所述查询页面上选中的模板对应的所述日志查询信息,例如,count(),max(time_cost)以及min(time_cost)等。需要说明的是,在本发明实施例中,录入日志查询信息的方式只能选择编辑框输入或模板输入中的一种。
S110、通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句。
在本发明实施例中,根据所述预设查询指令获取查询页面上录入的SQL日志查询条件及日志查询时间之后,通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句,其中,Druid解析器包括三大功能,分别为解析、生成抽象树,遍历抽象树,其中,解析又可分为语法解析和词法解析。可理解地,日志查询语句例如为qry_hav[{value:“count()”,min:5,max:null}],qry_sl[{“count()”,“max(time_cost)”,“min(time_cost)”,“avg(time_cost)”}]。
请参阅图3,在一实施例中,例如在本发明实施例中,所述步骤S110包括如下步骤S111-S113。
S111、通过Druid解析器对所述SQL日志查询条件进行句法和词法解析以获取表名、字段名以及查询条件;
S112、通过所述Druid解析器对所述日志查询时间进行句法和词法解析以获取查询时间;
S113、根据所述表名、所述字段名、所述查询条件以及所述查询时间通过所述Druid解析器中预设生成接口生成日志查询语句。
在本发明实施例中,通过Druid解析器对所述SQL日志查询条件进行句法和词法解析以获取表名、字段名以及查询条件,其中,查询条件包括多条日志查询语句,例如qry_hav,qry_sl等查询语句;通过所述Druid解析器对所述日志查询时间进行句法和词法解析以获取查询时间,其中,查询时间为qry_time。根据所述表名、所述字段名、所述查询条件以及所述查询时间通过所述Druid解析器中生成日志查询语句,即生成一串以qry开头的语句。
S120、对所述日志查询语句进行适配以生成Splunk日志查询语句,并对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值。
在本发明实施例中,生成日志查询语句之后,对所述日志查询语句进行适配以生成Splunk日志查询语句,具体地根据所述日志查询语句中的查询条件、分桶及分位函数进行适配以生成Splunk日志查询语句,并对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值。
请参阅图4,在一实施例中,例如在本发明实施例中,所述步骤S120包括如下步骤S121-S124。
S121、根据所述日志查询语句中的查询条件通过预设适配规则进行第一次适配以生成初始Splunk日志查询语句;
S122、根据所述日志查询语句中的分桶及分位函数通过所述预设适配规则对初始Splunk日志查询语句进行第二次适配以得到Splunk日志查询语句;
S123、将所述Splunk日志查询语句及所述日志查询时间进行拼接以生成待加密明文;
S124、通过MD5算法对所述待加密明文进行加密生成查询校验值。
在本发明实施例中,对所述日志查询语句进行适配以生成Splunk日志查询语句,具体地,根据所述日志查询语句中的查询条件通过预设适配规则进行第一次适配以生成初始Splunk日志查询语句,其中,所述预设适配规则为预先设置并保存至日志查询工具对应的数据库中,可理解地,初始Splunk日志查询语句中还包括很多不必要的日志查询语句,因此,还需根据所述日志查询语句中的分桶及分位函数通过预设适配规则对初始Splunk日志查询语句进行第二次适配以得到Splunk日志查询语句,Splunk日志查询语句例如为*|stats count()as total_count,max(time_cost_dble)as max_time_cost,min(time_cost_dble)as min_time_cost等。对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值。具体地,将所述Splunk日志查询语句及所述日志查询时间进行拼接以生成待加密明文;通过MD5算法对所述待加密明文进行加密生成查询校验值,其中,MD5算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue)。
S130、判断Redis缓存中是否存在所述查询校验值。
S140、若所述Redis缓存中不存在所述查询校验值,则将所述查询校验值保存至所述Redis缓存,并根据所述Splunk日志查询语句调用Splunk引擎进行日志查询以得到日志查询结果。
在本发明实施例中,生成查询校验值之后,之所以先判断Redis缓存中是否存在所述查询校验值,是为了避免重复查询,若所述Redis缓存中不存在所述查询校验值,表明与所述查询校验值对应的日志查询信息未被查询过,则将所述查询校验保存至所述Redis缓存,以节省存储空间,并根据所述Splunk日志查询语句调用Splunk引擎进行日志查询以得到日志查询结果;若所述Redis缓存中存在所述查询校验值,表明与所述查询校验值对应的日志查询信息已被查询过,则从Clickhous数据库中直接获取与所述查询校验值相对应的日志查询结果,并进行展示。
S150、将所述日志查询结果保存至Clickhouse数据库并进行展示。
在本发明实施例中,将所述日志查询结果保存至Clickhouse数据库及进行展示,具体地,通过Clickhouse数据库中的StripeLog表引擎对所述日志查询结果进行存储,以使所述日志查询结果进行分页展示,例如通过可展示第50条至第100条的日志;将所述日志查询结果按照所述日志查询信息中设置的格式进行展示,其中,可设置表格或文本的方式进行展示。
图5是本发明实施例提供的一种基于Splunk的日志查询装置200的示意性框图。如图5所示,对应于以上基于Splunk的日志查询方法,本发明还提供一种基于Splunk的日志查询装置200。该基于Splunk的日志查询装置200包括用于执行上述基于Splunk的日志查询方法的单元,该装置可以被配置于终端中。具体地,请参阅图5,该基于Splunk的日志查询装置200包括获取单元201、第一生成单元202、第二生成单元203、判断单元204、查询单元205以及保存单元206。
其中,所述获取单元201用于若接收到预设查询指令,则根据所述预设查询指令获取查询页面上录入的日志查询信息,其中,所述日志查询信息包括SQL日志查询条件及日志查询时间;所述第一生成单元202用于通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句;所述第二生成单元203用于对所述日志查询语句进行适配以生成Splunk日志查询语句,并对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值;所述判断单元204用于判断Redis缓存中是否存在所述查询校验值;所述查询单元205用于若所述Redis缓存中不存在所述查询校验值,则将所述查询校验值保存至所述Redis缓存,并根据所述Splunk日志查询语句调用Splunk引擎进行日志查询以得到日志查询结果;所述保存单元206用于将所述日志查询结果保存至Clickhouse数据库并进行展示。
在某些实施例,例如本实施例中,所述获取单元201包括识别单元2011、第一获取子单元2012以及第二获取子单元2013。
其中,所述识别单元2011用于根据所述预设查询指令识别日志查询录入类型;所述第一获取子单元2012用于若所述日志查询录入类型为编辑框录入,则获取查询页面上编辑框中录入的日志查询信息;所述第二获取子单元2013用于若所述日志查询录入类型为模板录入,则获取所述查询页面上选中的模板对应的所述日志查询信息。。
在某些实施例,例如本实施例中,所述第一生成单元202包括第三获取子单元2021、第四获取子单元2022以及第一生成子单元2023。
其中,所述第三获取子单元2021用于通过Druid解析器对所述SQL日志查询条件进行句法和词法解析以获取表名、字段名以及查询条件;所述第四获取子单元2022用于通过所述Druid解析器对所述日志查询时间进行句法和词法解析以获取查询时间;所述第一生成子单元2023用于根据所述表名、所述字段名、所述查询条件以及所述查询时间通过所述Druid解析器中预设生成接口生成日志查询语句。
在某些实施例,例如本实施例中,所述第二生成单元203包括第一适配单元2031、第二适配单元2032、拼接单元2033以及加密单元2034。
其中,所述第一适配单元2031用于根据所述日志查询语句中的查询条件通过预设适配规则进行第一次适配以生成初始Splunk日志查询语句;所述第二适配单元2032用于根据所述日志查询语句中的分桶及分位函数通过所述预设适配规则对初始Splunk日志查询语句进行第二次适配以得到Splunk日志查询语句;所述拼接单元2033用于将所述Splunk日志查询语句及所述日志查询时间进行拼接以生成待加密明文;所述加密单元2034用于通过MD5算法对所述待加密明文进行加密生成查询校验值。
本发明实施例的基于Splunk的日志查询装置200的具体实现方式与上述基于Splunk的日志查询方法相对应,在此不再赘述。
上述基于Splunk的日志查询装置可以实现为一种计算机程序的形式,该计算机程序可以在如图6所示的计算机设备上运行。
请参阅图6,图6是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备300为终端,例如笔记本电脑、手提电脑、平板电脑等通信终端。
参阅图6,该计算机设备300包括通过系统总线301连接的处理器302、存储器和网络接口305,其中,存储器可以包括存储介质303和内存储器304。
该存储介质303可存储操作系统3031和计算机程序3032。该计算机程序3032被执行时,可使得处理器302执行一种基于Splunk的日志查询方法。
该处理器302用于提供计算和控制能力,以支撑整个计算机设备300的运行。
该内存储器304为存储介质303中的计算机程序3032的运行提供环境,该计算机程序3032被处理器302执行时,可使得处理器302执行一种基于Splunk的日志查询方法。
该网络接口305用于与其它设备进行网络通信。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备300的限定,具体的计算机设备300可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器302用于运行存储在存储器中的计算机程序3032,以实现如下步骤:若接收到预设查询指令,则根据所述预设查询指令获取查询页面上录入的日志查询信息,其中,所述日志查询信息包括SQL日志查询条件及日志查询时间;通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句;对所述日志查询语句进行适配以生成Splunk日志查询语句,并对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值;判断Redis缓存中是否存在所述查询校验值;若所述Redis缓存中不存在所述查询校验值,则将所述查询校验值保存至所述Redis缓存,并根据所述Splunk日志查询语句调用Splunk引擎进行日志查询以得到日志查询结果;将所述日志查询结果保存至Clickhouse数据库并进行展示。
在某些实施例,例如本实施例中,处理器302在实现所述根据所述预设查询指令获取查询页面上录入的日志查询信息步骤时,具体实现如下步骤:根据所述预设查询指令识别日志查询录入类型;若所述日志查询录入类型为编辑框录入,则获取查询页面上编辑框中录入的日志查询信息;若所述日志查询录入类型为模板录入,则获取所述查询页面上选中的模板对应的所述日志查询信息。
在某些实施例,例如本实施例中,处理器302在实现所述通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句步骤时,具体实现如下步骤:通过Druid解析器对所述SQL日志查询条件进行句法和词法解析以获取表名、字段名以及查询条件;通过所述Druid解析器对所述日志查询时间进行句法和词法解析以获取查询时间;根据所述表名、所述字段名、所述查询条件以及所述查询时间通过所述Druid解析器中预设生成接口生成日志查询语句。
在某些实施例,例如本实施例中,处理器302在实现所述对所述日志查询语句进行适配以生成Splunk日志查询语句,并对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值步骤时,具体实现如下步骤:根据所述日志查询语句中的查询条件通过预设适配规则进行第一次适配以生成初始Splunk日志查询语句;根据所述日志查询语句中的分桶及分位函数通过所述预设适配规则对初始Splunk日志查询语句进行第二次适配以得到Splunk日志查询语句;将所述Splunk日志查询语句及所述日志查询时间进行拼接以生成待加密明文;通过MD5算法对所述待加密明文进行加密生成查询校验值。
在某些实施例,例如本实施例中,处理器302在实现所述将所述日志查询结果保存至Clickhouse数据库并进行展示步骤时,具体实现如下步骤:通过Clickhouse数据库中的StripeLog表引擎对所述日志查询结果进行存储;将所述日志查询结果按照所述日志查询信息中设置的格式进行展示。
在某些实施例,例如本实施例中,处理器302在实现所述判断Redis缓存中是否存在所述查询校验值的步骤之后,具体实现还包括如下步骤:若所述Redis缓存中存在所述查询校验值;则从Clickhous数据库中直接获取与所述查询校验值相对应的日志查询结果,并进行展示。
应当理解,在本申请实施例中,处理器302可以是中央处理单元(CentralProcessing Unit,CPU),该处理器302还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序。该计算机程序被处理器执行时使处理器执行上述基于Splunk的日志查询方法的任意实施例。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,尚且本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种基于Splunk的日志查询方法,其特征在于,包括:
若接收到预设查询指令,则根据所述预设查询指令获取查询页面上录入的日志查询信息,其中,所述日志查询信息包括SQL日志查询条件及日志查询时间;
通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句;
对所述日志查询语句进行适配以生成Splunk日志查询语句,并对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值;
判断Redis缓存中是否存在所述查询校验值;
若所述Redis缓存中不存在所述查询校验值,则将所述查询校验值保存至所述Redis缓存,并根据所述Splunk日志查询语句调用Splunk引擎进行日志查询以得到日志查询结果;
将所述日志查询结果保存至Clickhouse数据库并进行展示。
2.根据权利要求1所述的方法,其特征在于,所述根据所述预设查询指令获取查询页面上录入的日志查询信息,包括:
根据所述预设查询指令识别日志查询录入类型;
若所述日志查询录入类型为编辑框录入,则获取查询页面上编辑框中录入的日志查询信息;
若所述日志查询录入类型为模板录入,则获取所述查询页面上选中的模板对应的所述日志查询信息。
3.根据权利要求1所述的方法,其特征在于,所述通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句,包括:
通过Druid解析器对所述SQL日志查询条件进行句法和词法解析以获取表名、字段名以及查询条件;
通过所述Druid解析器对所述日志查询时间进行句法和词法解析以获取查询时间;
根据所述表名、所述字段名、所述查询条件以及所述查询时间通过所述Druid解析器中预设生成接口生成日志查询语句。
4.根据权利要求1所述的方法,其特征在于,所述对所述日志查询语句进行适配以生成Splunk日志查询语句,包括:
根据所述日志查询语句中的查询条件通过预设适配规则进行第一次适配以生成初始Splunk日志查询语句;
根据所述日志查询语句中的分桶及分位函数通过所述预设适配规则对初始Splunk日志查询语句进行第二次适配以得到Splunk日志查询语句。
5.根据权利要求4所述的方法,其特征在于,所述对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值,包括:
将所述Splunk日志查询语句及所述日志查询时间进行拼接以生成待加密明文;
通过MD5算法对所述待加密明文进行加密生成查询校验值。
6.根据权利要求1所述的方法,其特征在于,所述判断Redis缓存中是否存在所述查询校验值之后,还包括:
若所述Redis缓存中存在所述查询校验值;
则从Clickhous数据库中直接获取与所述查询校验值相对应的日志查询结果,并进行展示。
7.根据权利要求1所述的方法,其特征在于,所述将所述日志查询结果保存至Clickhouse数据库并进行展示,包括:
通过Clickhouse数据库中的StripeLog表引擎对所述日志查询结果进行存储;
将所述日志查询结果按照所述日志查询信息中设置的格式进行展示。
8.一种基于Splunk的日志查询装置,其特征在于,包括:
获取单元,用于若接收到预设查询指令,则根据所述预设查询指令获取查询页面上录入的日志查询信息,其中,所述日志查询信息包括SQL日志查询条件及日志查询时间;
第一生成单元,用于通过Druid解析器对所述SQL日志查询条件及所述日志查询时间进行解析以生成日志查询语句;
第二生成单元,用于对所述日志查询语句进行适配以生成Splunk日志查询语句,并对所述Splunk日志查询语句及所述日志查询时间进行加密生成查询校验值;
判断单元,用于判断Redis缓存中是否存在所述查询校验值;
查询单元,用于若所述Redis缓存中不存在所述查询校验值,则将所述查询校验值保存至所述Redis缓存,并根据所述Splunk日志查询语句调用Splunk引擎进行日志查询以得到日志查询结果;
保存单元,用于将所述日志查询结果保存至Clickhouse数据库并进行展示。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
CN202111353559.9A 2021-11-16 2021-11-16 基于Splunk的日志查询方法、装置、计算机设备及存储介质 Pending CN114036181A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111353559.9A CN114036181A (zh) 2021-11-16 2021-11-16 基于Splunk的日志查询方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111353559.9A CN114036181A (zh) 2021-11-16 2021-11-16 基于Splunk的日志查询方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN114036181A true CN114036181A (zh) 2022-02-11

Family

ID=80144538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111353559.9A Pending CN114036181A (zh) 2021-11-16 2021-11-16 基于Splunk的日志查询方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN114036181A (zh)

Similar Documents

Publication Publication Date Title
US10169337B2 (en) Converting data into natural language form
CN109376166B (zh) 脚本转换方法、装置、计算机设备及存储介质
US8387017B2 (en) Black box testing optimization using information from white box testing
US8549635B2 (en) Malware detection using external call characteristics
US7478367B2 (en) Dynamic source code analyzer
CN108647355A (zh) 测试用例的展示方法、装置、设备及存储介质
CN102402479B (zh) 用于静态分析的中间表示结构
US10360004B2 (en) Using dynamic information to refine control flow graphs
CN108776696B (zh) 节点配置方法及装置、存储介质和电子设备
CN114385763A (zh) 数据血缘分析方法、装置、系统及可读存储介质
CN111563257A (zh) 数据检测方法及装置、计算机可读介质及终端设备
US11481493B2 (en) Systems and methods for generating an inventory of software applications for optimized analysis
WO2019161618A1 (zh) 字符串解析方法、装置、设备及计算机可读存储介质
JP2016099857A (ja) 不正プログラム対策システムおよび不正プログラム対策方法
KR20180129623A (ko) 연관된 다중 파일 정적 분석 장치
CN108959454B (zh) 一种提示子句指定方法、装置、设备及存储介质
CN112540925A (zh) 新特性兼容性检测系统及方法、电子设备及可读存储介质
US20230236950A1 (en) Static source code analysis using explicit feedback and implicit feedback
CN114036181A (zh) 基于Splunk的日志查询方法、装置、计算机设备及存储介质
CN110874364A (zh) 一种查询语句处理方法、装置、设备及存储介质
CN110806969A (zh) 一种测试用例完整度评估方法、装置及电子设备
CN110716866A (zh) 代码质量扫描方法、装置、计算机设备及存储介质
CN114691197A (zh) 代码分析方法、装置、电子设备和存储介质
CN113495723B (zh) 一种调用功能组件的方法、装置及存储介质
US7318221B2 (en) Windows™ F-language interpreter

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