本发明涉及计算机,尤其涉及一种基于openbmc服务器管理系统的事件日志存储方法。
背景技术:
1、bmc(基板管理控制器)是服务器上的管理模块,包含独立的soc以及soc上运行的系统,完成对服务器的管理和监控,对于服务器来说bmc是不可或缺的重要组成部分。
2、openbmc是一个开源的软件架构,用于为bmc构建一个完整的linux镜像。openbmc的所有代码和配置都是开源的,可以非常灵活地进行扩展,用户可以根据所选用的硬件芯片平台,构建自己特有的bmc固件。openbmc对系统的传感器采集的数据进行监控,当发生告警时,则将告警信息作为事件日志记录下来。
3、现有的openbmc的日志管理模块采用的方案是:将事件日志以文件的方式序列化到磁盘上,每条日志记录对应一个文件;系统启动时,需要读取磁盘的所有日志记录文件,将其反序列化到内存中;前端页面显示时,页面后端通过dbus向日志管理模块请求,dbus不能对请求的数据进行排序和过滤,会将所有日志记录返回给请求端,前端页面会加载所有数据并且进行排序,最后进行分页显示。openbmc采用的这种日志管理,严重影响了系统的性能,当前openbmc默认最多支持256条事件日志记录。
技术实现思路
1、本发明提供了一种基于openbmc服务器管理系统的事件日志存储方法,以解决现有的日志管理方式严重影响系统性能的问题。
2、第一方面,提供了一种基于openbmc服务器管理系统的事件日志存储方法,包括:
3、s1:系统启动时日志管理模块打开用于存储事件日志记录的嵌入式关系数据库,并将所有事件日志记录的记录编号加载到内存中,构成记录编号列表;
4、s2:若监控到事件发生,日志管理模块将新的事件日志记录插入到关系数据库中,并在记录编号列表中添加新的事件日志记录的记录编号;
5、s3:通过浏览器对web后端模块发送请求,web后端模块通过日志管理模块对关系数据库中的事件日志记录进行删除和一定数量的查询、更新;其中删除包括一定数量的删除和所有事件日志记录的删除;
6、s4:通过浏览器请求导出所有事件日志记录时,通过web后端模块直接对关系数据库进行查询,将查询的数据返回给浏览器;
7、s5:通过ipmi协议接口删除或查询事件日志记录时,对于删除事件日志记录,ipmi主机后端模块通过调用日志管理模块实现,对于查询事件日志记录,ipmi主机后端模块直接对关系数据库进行查询,将查询的数据通过ipmi协议返回查询端。
8、进一步地,在步骤s1中,在系统启动时,若日志管理模块发现关系数据库不存在,则在文件系统中创建用于存储事件日志记录的嵌入式关系数据库。
9、进一步地,步骤s2具体包括:
10、若监控到事件发生,则调用日志管理模块的dbus服务接口,日志管理模块通过内存中记录编号判断当前日志记录是否已经达到上限值;
11、若已经达到,则首先删除记录编号列表中最先的记录编号,然后删除关系数据库中相应的事件日志记录,再将新的事件日志记录的记录编号添加到记录编号列表中,并在关系数据库中插入新的事件日志记录;
12、若未达到,则直接将新的事件日志记录的记录编号添加到记录编号列表中,并在关系数据库中插入新的事件日志记录。
13、进一步地,步骤s3中,通过浏览器查询事件日志记录采用懒加载的方式,日志管理模块根据查询的起始记录编号和记录数,按照记录编号的排序返回指定数目的事件日志记录供浏览器页面展示,只有当切换页面时,才会触发下一次查询操作,将切换后的页面对应的事件日志记录返回。
14、进一步地,步骤s2中的插入操作,以及步骤s3中的删除、查询、更新均通过日志管理模块提供的dbus服务接口实现。
15、进一步地,步骤s5中,通过ipmi协议接口删除或查询事件日志记录时,是删除或查询所有事件日志记录;对于删除所有事件日志记录,ipmi主机后端模块通过调用日志管理模块提供的dbus服务接口实现;对于查询所有事件日志记录,ipmi主机后端模块直接对关系数据库进行查询实现。
16、第二方面,提供了一种基于openbmc服务器管理系统的事件日志存储系统,用于实现如上所述的基于openbmc服务器管理系统的事件日志存储方法,系统包括:web后端模块、日志管理模块、传感器事件监控模块、数据库、ipmi主机后端模块;所述web后端模块、传感器事件监控模块、数据库、ipmi主机后端模块均与日志管理模块交互,所述web后端模块、ipmi主机后端模块还均与数据库交互。
17、第三方面,提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被执行时实现如上所述的基于openbmc服务器管理系统的事件日志存储方法。
18、本发明提出了一种基于openbmc服务器管理系统的事件日志存储方法、系统,在保持原来openbmc的整体框架不变的基础之上,改变事件日志记录的存储方式,事件日志记录被存储在文件系统中构建的关系数据库中。日志管理模块能够快速地对前端请求的数据进行过滤查询和排序,并且前端页面采用懒加载的方式,只有当触发请求时,才会去查询满足条件的一定数量的日志记录,而不是通过dbus将所有的日志记录返回给前端。如果前端或者ipmi协议接口需要请求所有的事件日志记录,则直接通过对应的后端模块对关系数据库中的记录进行查询,而不是通过dbus去请求事件日志。在尽量减少研发人员开发工作量的前提下,将日志记录的操作达到最优化,解决了原有日志记录操作的性能瓶颈问题,增加了用户的体验感。
1.一种基于openbmc服务器管理系统的事件日志存储方法,其特征在于,包括:
2.根据权利要求1所述的基于openbmc服务器管理系统的事件日志存储方法,其特征在于,在步骤s1中,在系统启动时,若日志管理模块发现关系数据库不存在,则在文件系统中创建用于存储事件日志记录的嵌入式关系数据库。
3.根据权利要求1所述的基于openbmc服务器管理系统的事件日志存储方法,其特征在于,步骤s2具体包括:
4.根据权利要求1所述的基于openbmc服务器管理系统的事件日志存储方法,其特征在于,步骤s3中,通过浏览器查询事件日志记录采用懒加载的方式,日志管理模块根据查询的起始记录编号和记录数,按照记录编号的排序返回指定数目的事件日志记录供浏览器页面展示,只有当切换页面时,才会触发下一次查询操作,将切换后的页面对应的事件日志记录返回。
5.根据权利要求1所述的基于openbmc服务器管理系统的事件日志存储方法,其特征在于,步骤s2中的插入操作,以及步骤s3中的删除、查询、更新均通过日志管理模块提供的dbus服务接口实现。
6.根据权利要求1所述的基于openbmc服务器管理系统的事件日志存储方法,其特征在于,步骤s5中,通过ipmi协议接口删除或查询事件日志记录时,是删除或查询所有事件日志记录;对于删除所有事件日志记录,ipmi主机后端模块通过调用日志管理模块提供的dbus服务接口实现;对于查询所有事件日志记录,ipmi主机后端模块直接对关系数据库进行查询实现。
7.一种基于openbmc服务器管理系统的事件日志存储系统,其特征在于,用于实现如权利要求1至6任一项所述的方法,系统包括:web后端模块、日志管理模块、传感器事件监控模块、数据库、ipmi主机后端模块;所述web后端模块、传感器事件监控模块、数据库、ipmi主机后端模块均与日志管理模块交互,所述web后端模块、ipmi主机后端模块还均与数据库交互。
8.一种计算机可读存储介质,其存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1至6任一项所述的方法。