发明内容
本申请实施例提供了一种日志分析方法、装置、电子设备及计算机可读存储介质,可以解决上述问题。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种日志分析方法,该方法包括:
采集并读取日志,获得日志信息;
根据预先确定的问题类型,提取出日志信息中对应于各个问题类型的关键信息;
将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告。
在一个可能的实现方式中,采集并读取待处理的日志,获得日志信息,包括:
根据预先设置的日志采集脚本采集获得日志;
根据预先设置日志读取进程读取日志,获得日志信息。
在另一个可能的实现方式中,根据预先确定的问题类型,提取出日志信息中对应于各个问题类型的关键信息,包括:
确定日志的日志类型,根据日志类型构建存储关键信息的日志对象;
将日志对象添加至预设的日志集合中,根据预先确定的问题类型确定日志集合中对应的各个问题类型的关键信息。
在又一个可能的实现方式中,根据预先确定的问题类型确定日志集合中对应的各个问题类型的关键信息之后还包括:
根据问题类型以及对应于各个问题类型的关键信息,构建用于存储关键信息的问题类型对象。
在又一个可能的实现方式中,将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告,之前还包括:
根据问题类型,确定并获取对应于各个问题类型的辅助分析信息。
在又一个可能的实现方式中,将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告,包括:
将问题类型集合输入日志分析神经网络中,并结合辅助分析信息对问题类型集合进行分析,获得日志分析神经网络模型输出的问题报告。
在又一个可能的实现方式中,方法还包括日志分析神经网络的训练过程,包括:
获取训练样本和训练标签,训练样本为样本日志信息,训练标签用于表征相应的训练样本中的问题类型;
以训练样本和训练标签对预设的初始神经网络进行训练,获得日志分析神经网络模型。
根据本申请实施例的另一个方面,提供了一种日志分析装置,该装置包括:
采集模块,用于采集并读取日志,获得日志信息;
确定模块,用于根据预先确定的问题类型,提取出日志信息中对应于各个问题类型的关键信息;
分析模块,用于将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行计算机程序以实现上述的日志分析方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的日志分析方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例通过根据预先确定的问题类型,提取出采集并读取日志获得的日志信息中对应于各个问题类型的关键信息,可以快速筛选出涉及问题分析的有效内容,确保提取出的关键信息是便于分析问题的,避免遗漏;通过将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告,可以方便快捷的确定出问题根因,解放了人工分析,可以自动分析出问题。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
Android操作系统,是由美国谷歌公司开发的移动操作系统,是一种基于Linux内核的自由即开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑等,系统架构包括应用程序层、应用程序框架层、系统运行库层和Linux内核层,目前已开发至Android 12版本。
神经网络,是由大量的、简单的处理单元(称为神经元)广泛地相互连接而形成的复杂网络系统,它反映了人脑功能的许多特征,是一个高度复杂的非线性动力学习系统。神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。
现有技术中对于日志的分析,存在如下可能的问题:
日志的量较大,具体地,在例如10*24H Monkey跑测这种特定测试环境下,产生的日志的量非常大,可达百G,对于日志的采集和筛选造成很大困难。
对应于特定的问题类型如定屏问题,所需要分析的日志的量可能不足,筛选出的有效内容有限,不足以支撑问题分析。
需开发人员人工逐一分析日志,效率较低且容易出现遗漏。
本申请提供的日志分析方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的实现日志分析方法的实施环境的示意图,其中,实施环境1000可以包括终端设备1100、1200、1300中的一种或多种,网络1400和服务器1500。网络1400用以在终端设备1100、1200、1300和服务器1500之间提供通信链路的介质。网络1400可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器150可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统等。
终端,本申请实施例中终端设备是一种具有无线收发功能的设备,可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)、接入终端设备、车载终端设备、工业控制终端设备、UE单元、UE站、移动站、远方站、远程终端设备、移动设备、UE终端设备、无线通信设备、UE代理或UE装置等。终端设备可以是固定的或者移动的,例如,终端设备可以是手机(mobile phone)、平板电脑(pad)、台式机、笔记本电脑、一体机、车载终端、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(session initiation protocol,SIP)电话、无线本地环路(wirelesslocal loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、可穿戴设备、未来移动通信网络中的终端设备或者未来演进的公共移动陆地网络(public landmobile network,PLMN)中的终端设备等,本申请实施例不作限定。
用户可以使用终端设备1100、1200、1300通过网络140与服务器150交互,以完成日志的分析。终端设备110、120、130可以是支持资源推送的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机、台式计算机、可穿戴设备、虚拟现实设备等等。
服务器1500可以是提供各种服务的服务器,特别是日志分析服务的服务器。
本申请实施例中提供了一种日志分析方法,如图2所示,该方法包括:
S101、采集并读取日志,获得日志信息。
应当理解的是,对日志进行分析首先当然需要对日志进行采集,在本申请实施例中以对于Android操作系统中产生的日志为例进行描述,在Android操作系统中会产生例如Main、System、Sysinfo、Crash、Anr等类型的日志,其中常见的如Main日志是指Android操作系统中的代码层的日志;System日志是指Android操作系统中的系统组件的日志,Crash是指Android操作系统中因系统的库文件、API、三方库文件、系统资源等短缺或配置错误时产生的崩溃日志等,本申请实施例不作具体限定。
在本申请实施例中对Android操作系统中产生的所有日志进行采集和读取,采集日志的方式可以是基于预先编写设置的脚本进行采集,读取日志中的日志信息的方式可以是通过日志分析工具进行日志的读取,具体可以调用进程间的Socket通信唤醒日志读取进程,逐一对采集到的日志进行读取,获得日志信息。
S102、根据预先确定的问题类型,提取出日志信息中对应于各个问题类型的关键信息。
预先确定的问题类型是指Android操作系统中出现的异常或问题,例如anr、crash、watchdog、memory leak、assert等,会以日志的形式进行展示,因此,在本申请实施例中可以根据预先确定的问题类型,提取出日志信息中对应于各个问题类型的关键信息,用于后续分析。
S103、将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告。
在确定出关键信息后,可以对关键信息进行分析,获得对应于各个问题的问题报告,在本申请实施例中可以将关键信息输入预先确定的日志分析神经网络模型中,利用日志分析神经网络模型进行分析,也可以通过随机森林、贝叶斯、神经网络等其他具备同样功能的机器算法模型进行分析,本申请实施例不作具体限定。
本申请实施例通过根据预先确定的问题类型,提取出采集并读取日志获得的日志信息中对应于各个问题类型的关键信息,可以快速筛选出涉及问题分析的有效内容,确保提取出的关键信息是便于分析问题的,避免遗漏;通过将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告,可以方便快捷的确定出问题根因,解放了人工分析,可以自动分析出问题。
本申请实施例中提供了一种可能的实现方式,采集并读取待处理的日志,获得日志信息,包括:
根据预先设置的日志采集脚本采集获得日志;
根据预先设置日志读取进程读取日志,获得日志信息。
预先设置的日志采集脚本可以采用shell脚本,shell脚本可以将各类命令预先放入到一个文件中,构成一个批量处理程序文件,在本申请实施例中可以由开发人员编写相应代码命令,构建用于采集日志的日志采集脚本,来对Android操作系统中生成的日志进行采集,本申请实施例不作具体限定,可以是访问系统数据库中相应的日志文件目录,基于日志文件目录采集所有的日志,具体的日志例如包括Android log、Kernel log、Radio log、Crash、ANR以及Tombstones等。
在采集到的日志文件后,还需进一步读取出日志中记录的日志信息,可以通过预先设置一个日志读取进程,在日志采集完毕后唤醒日志读取进程,日志读取进程会自动的逐一的对采集的日志进行读取,日志读取进程同样是由开发人员预先编写相应的代码命令实现,本申请实施例不作具体限定。
本申请实施例通过根据预先设置的日志采集脚本采集获得日志;根据预先设置日志读取进程读取日志,获得日志信息,可以高效、完整的采集到的系统生成的所有的日志,避免遗漏,便于后续分析。
本申请实施例中提供了一种可能的实现方式,根据预先确定的问题类型,提取出日志信息中对应于各个问题类型的关键信息,包括:
确定日志的日志类型,根据日志类型构建存储关键信息的日志对象;
将日志对象添加至预设的日志集合中,根据预先确定的问题类型确定日志集合中对应的各个问题类型的关键信息。
应当理解的是,Android操作系统中生成的日志的量是非常大的,本申请实施例中采集所有的日志,其中,有很多日志中记录的日志信息是记录系统的基础运行内容,对于设计开发或测试问题相关的日志信息,需要进行进一步的处理获得与问题相关的关键信息。
首先,可以根据日志类型,构建对应于日志类型的日志对象,日志对象用于存储涉及各个问题类型的关键信息,即一个日志类型对应于一个日志对象,该日志对象存储属于该日志类型的日志信息中的对应于各个问题类型的关键信息。
其次,可以将各个日志对象添加至预设的日志集合中,在本申请实施例中构建一个日志集合,将所有的日志对象综合在一起,更便于分析,应当理解的是,此时每个日志对象中可能包括涉及多种问题类型的关键信息,需要进一步确定出每个问题类型对应的信息,也即根据预先确定的问题类型确定日志集合中对应的各个问题类型的关键信息。
本申请实施例中提供了一种可能的实现方式,根据预先确定的问题类型确定日志集合中对应的各个问题类型的关键信息之后还包括:
根据问题类型以及对应于各个问题类型的关键信息,构建用于存储关键信息的问题类型对象。
应当理解的是,确定出的关键信息是同样是多个的,在本申请实施例中将每个问题类型对应的关键信息作为一个整体,也即问题类型对象,便于后续分析。
本申请实施例通过基于日志的日志类型构建日志对象,基于问题类型构建问题类型对象,将需要进行分析的内容量化,作为一个对象来分析,提高了日志分析的性能。
本申请实施例中提供了一种可能的实现方式,将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告,之前包括:
根据问题类型,确定并获取对应于各个问题类型的辅助分析信息。
应当理解的是,日志所记录的日志信息具体来说也即Android操作系统的系统信息和运行状态信息,系统信息记录了Android操作系统中的各种软硬件资源,运行状态信息记录了Android操作系统中各种软硬件资源的运行时的状态,在这些系统公共的系统信息和运行状态信息中有一些信息可以用于辅助问题分析,在本申请实施例中根据各个问题类型,确定各个问题类型对应的可能的辅助分析信息,例如当前系统中某一进程的运行突然中断,日志信息中会出现该进程中断的记录,而辅助分析信息即是更为具体的导致该进程中断的原因。
在本申请实施例中通过预先设置的功能脚本采集辅助分析信息,例如可以使用Native Process进程、Python或Shell功能脚本,由开发人员编写相应的代码程序实现,本申请实施例不作具体限定。
本申请实施例中提供了一种可能的实现方式,将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告,包括:
将问题类型对象添加至预设的问题类型结合中,获得问题类型集合;
将问题类型集合输入日志分析神经网络中,并结合辅助分析信息对问题类型集合进行分析,获得日志分析神经网络模型输出的问题报告。
在本申请实施例中进行日志分析时,是针对于所有的问题类型进行分析的,因此在本实施例中将各个问题类型对象添加至预设的问题类型集合中,获得问题类型集合,问题类型集合中记录了所有的关于各个问题类型的关键信息,作为整体输入到日志分析神经网络模型中进行分析,日志分析神经网络模型的训练过程在后续的实施例中进行描述。
本申请实施例中提供了一种可能的实现方式,日志分析方法还包括日志分析神经网络的训练过程,包括:
获取训练样本和训练标签,训练样本为样本日志信息,训练标签用于表征相应的训练样本中的问题类型;
以训练样本和训练标签对预设的初始神经网络进行训练,获得日志分析神经网络模型。
本申请实施例提供的日志分析神经网络模型是一种机器学习模型,具体涉及随机森林、贝叶斯等机器学习算法,通过预先获取的训练样本和训练标签训练对初始的神经网络而成。
本申请实施例中的日志分析神经网络模型的训练样本可以是多个样本日志信息,训练标签可以是各个样本日志信息中对应的问题类型,具体地,输出的结果以特征值的方式表示,特征值用于表征该特征值对应的问题类型是否出现以及该问题类型所占的比例。
训练好的日志分析神经网络模型根据当前输入的问题类型集合,提取出问题类型集合中对应于各个问题类型的特征值,通过特征值可以确定当前的开发或测试的Android操作系统中出现了哪些问题,确定出问题根因。
本申请实施例通过日志分析网络模型对问题类型集合进行分析,利用了机器学习的特性,可以高效、准确的确定出系统出现的问题。
本申请实施例中提供了一种可能的实现方式,包括本申请实施例中进行日志分析的功能全流程,图3为本申请实施例提供的一种日志分析的功能全流程示意图,如图3所示,日志分析的功能全流程包括:
日志收集工具,也即上述实施例中涉及实现各种用于收集日志的脚本工具,本功能用于表征采集日志;
日志分析自动化工具,也即上述实施例中涉及实现各种用于读取日志的进程工具,本功能用于表征读取日志;
日志提取解析,本功能用于表征上述实施例中对日志信息的处理过程,包括构建日志对象、确定对应于各个问题类型的关键信息、构建问题类型对象等步骤;
问题类型集合,也即上述实施例中由各个问题类型对象构建而成的问题类型集合;
日志自动化分析,本功能用于表征根据预先确定的日志分析神经网络模型对问题类型集合进行自动化的分析;
日志分析结果,也即上述实施例中对各个问题类型对应的特征值进行分析,确定出现的问题类型和该问题类型的根因。
本申请实施例提供了一种日志分析装置,如图4所示,该日志分析装置可以包括:采集模块110、确定模块210以及分析模块310,其中,
采集模块110,用于采集并读取日志,获得日志信息;
确定模块210,用于根据预先确定的问题类型,提取出日志信息中对应于各个问题类型的关键信息;
分析模块310,用于将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告。
在一个可能的实现方式中,采集模块110包括:
脚本模块,用于根据预先设置的日志采集脚本采集获得日志;
根据预先设置日志读取进程读取日志,获得日志信息。
在另一个可能的实现方式中,确定模块210包括:
第一构建模块,用于确定日志的日志类型,根据日志类型构建存储关键信息的日志对象;
关键信息模块,用于将日志对象添加至预设的日志集合中,根据预先确定的问题类型确定日志集合中对应的各个问题类型的关键信息。
在又一个可能的实现方式中,关键信息模块包括:
第二构建模块,用于根据问题类型以及对应于各个问题类型的关键信息,构建用于存储关键信息的问题类型对象。
在又一个可能的实现方式中,分析模块310还包括:
辅助模块,用于根据问题类型,确定并获取对应于各个问题类型的辅助分析信息。
在又一个可能的实现方式中,分析模块310还包括:
报告模块,用于将问题类型对象添加至预设的问题类型结合中,获得问题类型集合;
将问题类型集合输入日志分析神经网络中,并结合辅助分析信息对问题类型集合进行分析,获得日志分析神经网络模型输出的问题报告。
在又一个可能的实现方式中,分析模块310还包括:
训练模块,用于获取训练样本和训练标签,训练样本为样本日志信息,训练标签用于表征相应的训练样本中的问题类型;
以训练样本和训练标签对预设的初始神经网络进行训练,获得日志分析神经网络模型。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现日志分析方法的步骤,与相关技术相比可实现:本申请实施例通过根据预先确定的问题类型,提取出采集并读取日志获得的日志信息中对应于各个问题类型的关键信息,可以快速筛选出涉及问题分析的有效内容,确保提取出的关键信息是便于分析问题的,避免遗漏;通过将关键信息输入预先确定的日志分析神经网络模型中,获得日志分析神经网络模型输出的问题报告,可以方便快捷的确定出问题根因,解放了人工分析,可以自动分析出问题。
在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。