一种云平台日志管理方法及系统与流程

文档序号:20700450发布日期:2020-05-12 15:36阅读:560来源:国知局
一种云平台日志管理方法及系统与流程

本发明涉及日志文件管理技术领域,尤其涉及一种云平台日志管理方法及系统。



背景技术:

随着软件系统及云平台的规模日趋扩大和由此带来的复杂性,会产生大量的日志信息,这些日志需要存储以备查询和分析,而传统的关系数据库(例如mysql)对日志存储、查询、分析的能力存在一定的限制。例如,日志信息通常按照时间顺序进行存储,一个请求在响应处理过程中会形成多条日志信息,不同请求的日志信息在数据库中混杂存储,在日志信息量非常庞大的情况下,对日志文件进行分析时,很难分离出某个特定请求产生的日志信息。

目前,云平台中通常采用微服务的软件架构。微服务是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。基于微服务软件架构的云平台中会产生海量的操作及请求事件所产生的日志。由此导致云平台中的日志文件呈现离散且无序的逻辑状态。因此,对基于微服务软件架构的云平台中的日志进行管理就显得尤为重要。



技术实现要素:

本发明的目的在于揭示一种云平台日志管理方法及基于云平台日志管理方法的一种云平台日志管理系统,用以实现云平台日志的可视化管理,以适应日益增加的日志文件的分析与管理能力,并能够为业务请求配置合理的资源提供参考。

为实现上述第一个发明目的,本发明提供了一种云平台日志管理方法,应用于电子设备中,包括以下步骤:

s1、业务微服务单元处理自可视化界面输入的业务请求,并为业务请求绑定requestid;

s2、收集与业务请求相关联的调用信息及用户信息,并与requestid共同形成与业务请求所对应的日志,以写入日志文件;

s3、通过轻量级日志采集器监听日志文件的变动情况,并按照配置文件所对应的数据模板将已采集的日志转化为轻量级文本后发送至搜索服务器;

s4、日志微服务单元自搜索服务器所配置的查询接口查询轻量级文本,并在可视化界面中对外展示。

作为本发明的进一步改进,所述轻量级文本包括json文件、xml文件、txt文件或者binlog文件。

作为本发明的进一步改进,所述步骤s1中的业务请求由多个业务微服务单元分别处理,以形成多个日志文件,并对所述多个日志文件进行关联,以形成日志详情。

作为本发明的进一步改进,所述日志文件包括业务请求时间戳、业务请求调用信息、业务请求处理结果及requestid。

作为本发明的进一步改进,所述步骤s2中还包括:以requestid及时间戳为输入计算业务请求的处理时长,并将所述处理时长写入日志文件。

作为本发明的进一步改进,所述步骤s3还包括:对搜索服务器的请求压力进行检测,所述轻量级日志采集器根据搜索服务器的请求压力调节轻量级文本与搜索服务器之间的收发速度;

其中,对搜索服务器的请求压力进行检测具体为:

通过轻量级日志采集器判断发送至搜索服务器的轻量级文本的事件数是否超过搜索服务器所设定的批量处理最大事件数;

若是,则降低轻量级文本与搜索服务器之间的收发速度;

若否,则增加轻量级文本与搜索服务器之间的收发速度,并增加至搜索服务器所设定的批量处理最大事件数。

作为本发明的进一步改进,所述步骤s3中当轻量级文本后发送至搜索服务器之后,还包括:

将轻量级文本写入搜索服务器响应体。

基于相同发明思想,本申请还揭示了一种云平台日志管理系统,应用于电子设备中,包括:

业务微服务单元,处理自可视化界面输入的业务请求,并为业务请求绑定requestid,收集与业务请求相关联的调用信息及用户信息,并与requestid共同形成与业务请求所对应的日志,以写入日志文件;

转换模块,将已采集的日志转化为轻量级文本;

轻量级日志采集器,监听日志文件的变动情况,并按照配置文件所对应的数据模板将已采集的日志转化为轻量级文本后发送至搜索服务器;

日志微服务单元,自搜索服务器所配置的查询接口查询轻量级文本,并在可视化界面中对外展示;

搜索服务器,接收并保存已转换为轻量级文本的日志,并向日志微服务单元进行响应。

作为本发明的进一步改进,所述轻量级文本包括json文件、xml文件、txt文件或者binlog文件;所述日志文件包括业务请求时间戳、业务请求调用信息、业务请求处理结果及requestid。

作为本发明的进一步改进,所述搜索服务器设置批量处理最大事件数;

轻量级日志采集器判断发送至搜索服务器的轻量级文本的事件数是否超过搜索服务器所设定的批量处理最大事件数;

若是,则降低轻量级文本与搜索服务器之间的收发速度;

若否,则增加轻量级文本与搜索服务器之间的收发速度,并增加至搜索服务器所设定的批量处理最大事件数。

作为本发明的进一步改进,所述轻量级日志采集器选自filebeat、flume、fluentd、logagent、rsyslog或者syslog-ng;所述搜索服务器选自elasticsearch。

作为本发明的进一步改进,所述轻量级日志采集器与搜索服务器部署于elasticsearch集群中;

作为本发明的进一步改进,所述业务微服务单元以requestid及时间戳为输入计算业务请求的处理时长,并将所述处理时长写入日志文件。

与现有技术相比,本发明的有益效果是:

通过本发明所揭示的云平台日志管理方法及系统,能够高效地整合基于用户和/或管理员所发起的业务请求所产生的日志文件的高效管理,实现了云平台日志的可视化管理,从而更好地适应了对日益增加的日志文件执行统计、审计、定位、分析与管理能力,并能够为业务请求配置合理的资源提供参考。

附图说明

图1为本发明一种云平台日志管理方法的整体流程图;

图2为运行该云平台日志管理方法的一种云平台日志管理系统的拓扑图;

图3为运行该云平台日志管理方法的一种云平台日志管理系统在一种变形例中的拓扑图;

图4为云平台日志管理方法嵌布于可视化界面中对日志文件进行可视化操作的界面;

图5为运行该云平台日志管理方法的一种电子设备的拓扑图。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

实施例一:

本实施例首先揭示了一种云平台日志管理方法的一种具体实施方式。

该云平台日志管理方法运行于并应用于电子设备100中。该电子设备100不仅可被配置为数据中心、云计算平台(或简称为“云平台10”)或者基于超融合架构的服务器,还可被视为具有独立计算存储通信功能的其他设备,例如,个人电脑、平板电脑或者可穿戴智能设备。尤其的,在本实施例中所揭示的“服务器”包括但不限于文件服务器、代理服务器或应用服务器。云平台日志管理方法中所涉及的日志文件是指:基于电子设备100接收用户和/或管理员发起的访问请求、应答及执行事务过程中所产生的事件的记录文件或者其集合,且本申请所揭示的各个实施例中所揭示的方法及系统尤其适合分布式场景中。

同时,电子设备100的各个应用服务器(例如tomcat、jboss)配置轻量级日志采集器13,应用服务器根据用户发起的访问请求(例如:创建云主机、注销云主机、迁移云主机、购买应用软件、支付商品价款、修改商品订单等),基于云平台10中所配置的一个或者多个业务微服务单元14根据访问请求生成唯一的requestid,并将基于访问请求所生成的调用信息、用户名、鉴权信息,输出至日志中。requestid可将各个日志形成日志调用链。携带requestid的日志便于后期的故障排查、查询用户请求的内容或者统计等需求。

在本申请中所揭示的云平台日志管理方法及系统中,通过轻量级日志采集13与搜索服务器12,将多个业务微服务单元14生成的携带有requestid的日志调用链,在搜索服务器12中配置用于查询轻量级文本的查询接口,从而最终通过日志微服务单元11所配置的可视化界面17中对外展示,且用户或者管理员可通过该可视化界面17中对日志进行查询、统计、分析、定位、审计,其在电子商务、电子支付的应用场景中具有重大的技术应用价值。可视化界面17可加载于显示器、浏览器等介质中;其中,“对外展示”的含义是指:以ui方式接收用户和/或管理员输入的指令,或者向用户和/或管理员展示基于前述输入的指令所展现的可视化结果,并且展现的可视化结果的形式包括但不限于图形、表格、交互式文件、音频文件、flash文件等。

下文中,对该云平台日志管理方法予以进一步详述。

参图1与图2所示,本实施例揭示了一种云平台日志管理方法的一种具体实施例。

在本实施例中,该云平台日志管理方法(以下简称“方法”),应用于电子设备100中。该电子设备100在本实施例中选用云平台10为范例予以详细阐述。该方法包括以下步骤:

首先,执行步骤s1、业务微服务单元14处理自可视化界面17输入的业务请求(参图2中箭头111所示),并为业务请求绑定requestid。该步骤s1中的业务请求由多个业务微服务单元14分别处理,以形成多个日志文件15,并对所述多个日志文件15进行关联,以形成日志详情。

用户/管理员以双向箭头110所示出的逻辑,通过可视化界面17向云平台10发起访问请求,并通过该可视化界面17向用户/管理员展示可视化结果。云平台10中将业务请求以箭头101所示出的方向传入业务微服务单元14,以分别根据业务类型进行处理,并按箭头102所示出的方向将一个或者多个日志文件15写入存储介质200中,以保存该日志文件15。该存储介质200包括但不限于san存储设备、nas存储设备、ceph存储设备、nand存储设备、nvdimm存储设备或者缓存队列。

然后,执行步骤s2、收集与业务请求相关联的调用信息及用户信息,并与requestid共同形成与业务请求所对应的日志,以写入日志文件15。

该日志文件15包括业务请求时间戳、业务请求调用信息、业务请求处理结果及requestid。优选的,在本实施例中,该步骤s2中还包括:以requestid及时间戳为输入计算业务请求的处理时长,并将所述处理时长写入日志文件15。通过计算业务请求的处理时长,可便于用户/管理员以透明方式实时知悉具体的访问请求被业务微服务单元14的处理进程与处理结果;当响应访问请求被业务微服务单元14的业务处理能力不足以支撑用户/管理员的访问请求时,可向云平台10汇报,并对该业务微服务单元14予以扩容;当然,为了提高业务微服务单元14的资源使用效率,还可在业务微服务单元14的业务处理能力超过用户/管理员的访问请求时,对该业务微服务单元14予以缩容。通过上述扩容与缩容操作,显著地提高了运行在云平台中的业务微服务单元14对云平台10中虚拟资源的使用效率,避免了虚拟资源的浪费,从而能够为业务请求配置合理的资源提供参考。

然后,执行步骤s3、通过轻量级日志采集器13监听日志文件15的变动情况,并按照配置文件所对应的数据模板将已采集的日志转化为轻量级文本后发送至搜索服务器12(参箭头104所示)。日志文件15以箭头105所示出的方向被转换模块16所调用,并转为轻量级文本,例如json文件、xml文件、txt文件或者binlog文件,并以箭头106所示出的方向发送至搜索服务器12中。

具体的,轻量级日志采集13器选自filebeat、flume、fluentd、logagent、rsyslog或者syslog-ng;搜索服务器12选自elasticsearch。在本实施例中,该轻量级日志采集器13不选用logstash,而采用filebeat、flume、fluentd、logagent、rsyslog或者syslog-ng具有更为优异的技术优势。选用logstash形式的轻量级日志采集器13对云平台10中的物理服务器的性能要求较为苛刻,且不支持缓存,因此在基于微服务架构的云平台中并不适用。因此,在本实施例中,该轻量级日志采集13器选自filebeat、flume、fluentd、logagent、rsyslog或者syslog-ng,并最优选为filebeat。filebeat可将已采集并已转换为轻量级文本沿箭头106所示出的方向发送至搜索服务器12,并让搜索服务器12执行解析和/或存储,且不需要使用缓存。需要说明的是,由图2中的转换模块16所执行的转换操作也可由内置于搜索服务器12中的类似于转换模块16的单元予以执行转换操作。filebeat可对迅速采集日志文件15的增量内容,且能够在程序中断或者服务崩溃所处节点的位置继续采集增量部分的日志文件15,从而确保日志文件15的完整性,防止数据与进程的丢失。

filebeat内置多种模块(auditd、apache、nginx、system、mysql等等),可针对常见格式的日志大大简化收集、解析和可视化过程,只需一条命令即可实现对日志的收集、解析和可视化。数个filebeat还包括预配置的machinelearning任务。

同时,fluentd使用ruby语言开发,具有非常易于编写维护的优点,几乎所有的源和目标存储都有插件,从而使得可以用fluentd来串联所有的轻量级文件。此外,logagent占用机器cpu、内存资源最少,从而能够提高云平台10对访问请求的服务质量(qos)。

在本实施例中,当轻量级文本后发送至搜索服务器12之后,还包括:将轻量级文本写入搜索服务器响应体。

举例而言,索引(_index)为website,类型(_type)为blog,_id为123,版本号(_version)为1,状态为true,则该搜索服务器响应体的数据格式如下:

通过将轻量级文本写入搜索服务器响应体的技术手段,显著地降低了后续通过该搜索服务器响应体对轻量级文本的检索、统计、分析等工作的难度。

轻量级日志采集器13以箭头103所示出方向从存储介质200中调取日志文件15。轻量级日志采集器13根据时间轴创建搜索服务器响应体,以将日志信息保存至搜索服务器响应体。

尤其的,在本实施例中,该步骤s3还包括:对搜索服务器12的请求压力进行检测,所述轻量级日志采集器13根据搜索服务器12的请求压力调节轻量级文本与搜索服务器12之间的收发速度;

其中,对搜索服务器12的请求压力进行检测具体为:

通过轻量级日志采集器13判断发送至搜索服务器12的轻量级文本的事件数是否超过搜索服务器12所设定的批量处理最大事件数(bulk_max_size);

若是,则降低轻量级文本与搜索服务器12之间的收发速度;

若否,则增加轻量级文本与搜索服务器12之间的收发速度,并增加至搜索服务器12所设定的批量处理最大事件数。在本实施例中,该批量处理最大事件数(bulk_max_size)设置为50。通过上述技术方案,进一步提高了该云平台日志管理方法的可靠性与可用性,使得搜索服务器12在其所设定的批量处理最大事件数的范围内能够提高轻量级日期采集器13向搜索服务器12写入已经转换为轻量级文本后的日志文件15的效率,防止搜索服务器12在接收轻量级文本时出现拥塞,使得用户/管理员对日志文件15进行查询、定位时的可靠性得到提高。

最后,执行步骤s4、日志微服务单元11自搜索服务器12所配置的查询接口查询轻量级文本,并在可视化界面17中对外展示。具体而言,日志微服务单元11以箭头107所示出的方向从搜索服务器12所配置的查询接口查询轻量级文本,并以箭头109所示,将查询到的轻量级文本发送至可视化界面17中,以被用户/管理员所获悉。当用户/管理员在可视化界面17中搜索具体的日志文件15时,云平台10通过箭头108向日志微服务单元11发起调用请求,并根据requestid可将各个日志所形成日志调用链以箭头109所示出的方向,在可视化界面17中予以可视化展示。结合图2所示,逻辑上,该轻量级日期采集器13与搜索服务器12均同时部署于elasticsearch集群20中,且可由docker组建elasticsearch集群20。

结合图4所示,可视化界面17中嵌布形成域名输入栏201,搜索栏202,日志列表203,日志详情204,以及基于查询的日志详情204所对应的日志调用链205;其中,日志列表203中包含操作时间、操作动作、操作对象、操作时长、操作详情等字段,并且日志列表203中的字段可按照用户/管理员的实际需求进行任意地设定。点击日志列表203中的“查看”按钮控件206,调转显示日志详情204的对话框,该日志详情204中包含了日志调用链205。同时,在本实施例中,日志调用链205以“瀑布流”的形式展示基于某个访问请求所对应的操作所形成的日志调用链,并展示每条日志调用链的状态(例如:成功或者失败),并能够可视化显示日志文件调用错误的提示信息。搜索栏202中可手动键入操作对象、操作动作等搜索日志文件,以提高对日志文件进行搜索、定位、审计、统计效率。

实施例二:

参图2与图3所示,基于实施例一所揭示的一种云平台日志管理方法的发明思想,本实施例进一步揭示了一种云平台日志管理系统。

一种云平台日志管理系统,应用于电子设备100中,包括:业务微服务单元14、转换模块16、轻量级日志采集器13、搜索服务器12、日志微服务单元11以及可视化界面17。

具体而言,业务微服务单元14,处理自可视化界面17输入的业务请求,并为业务请求绑定requestid,收集与业务请求相关联的调用信息及用户信息,并与requestid共同形成与业务请求所对应的日志,以写入日志文件15。优选的,业务微服务单元14以requestid及时间戳为输入计算业务请求的处理时长,并将所述处理时长写入日志文件15。转换模块16,将已采集的日志转化为轻量级文本。轻量级日志采集器13,监听日志文件15的变动情况,并按照配置文件所对应的数据模板将已采集的日志转化为轻量级文本后发送至搜索服务器12。日志微服务单元11,自搜索服务器12所配置的查询接口查询轻量级文本,并在可视化界面17中对外展示。搜索服务器12,接收并保存已转换为轻量级文本的日志,并向日志微服务单元11进行响应。轻量级日志采集器13与搜索服务器12部署于elasticsearch集群20中。

轻量级文本包括json文件、xml文件、txt文件或者binlog文件;所述日志文件15包括业务请求时间戳、业务请求调用信息、业务请求处理结果及requestid。在本实施例中,该搜索服务器12设置批量处理最大事件数。

轻量级日志采集器13判断发送至搜索服务器12的轻量级文本的事件数是否超过搜索服务器12所设定的批量处理最大事件数;

若是,则降低轻量级文本与搜索服务器12之间的收发速度;

若否,则增加轻量级文本与搜索服务器12之间的收发速度,并增加至搜索服务器12所设定的批量处理最大事件数。

轻量级日志采集器13选自filebeat、flume、fluentd、logagent、rsyslog或者syslog-ng,搜索服务器12选自elasticsearch。在本实施例中,选用rsyslog。rsyslog对mysql、postgresql、oracle等具有良好的支持,并具有日志内容筛选、定义日志格式模板等功能。除了默认的udp协议外,rsyslog还支持tcp协议来接收日志,不仅可以yum安装,也可以源码安装,具有良好的部署通用性。

本实施例所揭示的一种云平台日志管理系统运行如实施例一所揭示的云平台日志管理方法。本实施例所揭示的云平台日志管理方法的具体技术方案请参实施例一所述,在此不再赘述。

实施例三:

参图4所揭示本发明一种云平台日志管理系统的一种变形实施例。

本实施例与实施例一和/或实施例二,尤其是与实施例二相比,其主要区别在于,在本实施例中,该云平台日志管理系统中,

将已经转换为轻量级文本的日志文件15,不发送至搜索服务器12中,而以箭头112所示出的方向发送至轻量级日志采集器13中,并最终由轻量级日志采集器13将已经转换为轻量级文本的日志文件15发送至搜索服务器12中;甚至可将转换模块16同时部署于elasticsearch集群20中。

本实施例所揭示的云平台日志管理系统与实施例一和/或实施例二中相同部分的技术方案,请参上文所述,在此不再赘述。

实施例四:

最后,参图5所示,本申请还揭示了一种电子设备100。该电子设备100不仅可被配置为数据中心、云计算平台(或简称为“云平台10”)或者基于超融合架构的服务器,还可被视为具有独立计算存储通信功能的其他设备,例如,个人电脑、平板电脑或者可穿戴智能设备。

电子设备100包括:处理器51,存储装置52,在处理器51与存储装置52之间建立通信连接的通信总线53以及输出设备54。处理器51用于执行存储装置52中存储的一个或者多个程序,以实现如实施例一所述的一种云平台日志管理方法。存储装置52中包含多个存储单元,即存储单元521至存储单元52i,其中,参数i取大于或者等于2的正整数。该输出设备54可为显示器、键盘及鼠标,或者可接收用户/管理员键入指令的交互式设备,例如触摸屏。

输出设备54具可视化界面17,用户/管理员通过该可视化界面17对用户和/或管理员发起的访问请求、应答及执行事务过程中所产生的事件的记录文件或者其集合(即日志文件)进行可视化管理。

本实施例所揭示的电子设备100与实施例一至实施例三中任意一项所揭示的实施例中相同部分的技术方案,请参上文所述,在此不再赘述。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

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