[发明专利]第三方应用程序的日志收集方法、系统、装置及存储介质有效
申请号: | 201910286400.6 | 申请日: | 2019-04-10 |
公开(公告)号: | CN110008103B | 公开(公告)日: | 2020-11-10 |
发明(设计)人: | 刘清林 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 第三 应用程序 日志 收集 方法 系统 装置 存储 介质 | ||
本申请公开了一种第三方应用程序的日志收集方法,包括:调用修改系统内核后得到的sys_write()函数,复制每个进程的日志信息到缓冲区;读取所述缓冲区的所述日志信息,根据分发规则将所述日志信息写入对应的日志文件。本申请利用sys_write()函数复制日志信息,sys_write()函数通过修改系统内核调用实现,不需要修改第三方应用程序源代码,因此不关心第三方应用程序日志模块的实现方式,修改方式简单,效果便利,具有相当高的实用价值。相应的,本申请还公开了一种第三方应用程序的日志收集系统、装置及存储介质。
技术领域
本发明涉及系统运行维护领域,特别涉及一种第三方应用程序的日志收集方法、系统、装置及存储介质。
背景技术
一套合格的系统必须具有可维护性,日志管理作为支持可维护性的一部分,在监控运行环境中的系统和问题定位上起着十分重要的作用,是发现问题、分析问题、解决问题的重要手段。
Linux发行版(例如CentOS)一般都会集成一系列开源的第三方应用程序,这些应用程序的开发者各不相同,日志模块的实现方式也不相同,有的程序日志直接打印到标准输出,有的则会打印到某些文件,为了保证日志不丢失,保证能够通过梳理日志快速定位问题,必须对这些第三方应用程序的日志进行二次收集,统一管理。
现有的技术一般采用syslog收集日志,第三方应用程序调用syslog的接口函数syslog()来将日志发送给syslogd守护进程,syslogd再根据配置文件中的配置,来决定不同来源、不同级别的日志信息是否需要保存,如果需要保存,配置项决定日志信息的保存位置。如果某个第三方应用程序没有调用syslog()接口,直接使用printf()将日志打印到标准输出,则无法收集该应用程序的日志,日志丢失。
因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种第三方应用程序的日志收集方法、系统、装置及存储介质,以便能够及时可靠地记录所有的第三方应用程序的日志。其具体方案如下:
一种第三方应用程序的日志收集方法,包括:
调用修改系统内核后得到的sys_write()函数,复制每个进程的日志信息到缓冲区;
读取所述缓冲区的所述日志信息,根据分发规则将所述日志信息写入对应的日志文件。
优选的,所述分发规则包括消息级别和消息来源。
优选的,所述消息级别包括:
EMERG、ALERT、CRIT、ERR、WARNING、NOTICE、INFO、DEBUG中的任意多种。
优选的,所述消息来源包括:
程序名和进程号pid。
优选的,所述调用修改系统内核后得到的sys_write()函数,复制每个进程的日志信息到缓冲区的过程,还包括:
调用所述sys_write()函数,将通过过滤规则的所述日志信息复制到所述缓冲区。
优选的,所述过滤规则具体为:
将满足预设程序名或满足预设进程号或满足预设文件名的所述日志信息过滤掉。
优选的,所述读取所述缓冲区的所述日志信息,根据分发规则将所述日志信息写入对应的日志文件的过程,具体包括:
配合所述复制每个进程的日志信息到缓冲区的频率,读取所述缓冲区的所述日志信息,根据分发规则将所述日志信息写入对应的日志文件。
相应的,本发明还公开了一种第三方应用程序的日志收集系统,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910286400.6/2.html,转载请声明来源钻瓜专利网。