本发明涉及计算机,特别指一种基于syslog协议的内核日志获取方法及系统。
背景技术:
1、在计算机技术领域中,作为系统的可靠性保障,各类计算机系统通常都设有完备的日志系统,用于记录系统运行时产生的重要信息。但linux系统的日志系统往往严格区分用户态的用户日志和内核态的内核日志,暴露给普通用户的只有用户日志。一般来讲,用户日志往往易于用户的观察和管理,而内核日志一般会被隐藏起来,不通过超级权限或其他特殊手段无法快速便捷的获取。
2、目前主流的日志协议是syslog协议,syslog协议下的用户日志和内核日志交由不同的逻辑模块进行处理,也就是用户日志(应用程序的日志)与内核日志(进程管理、文件系统、内存管理、网络管理以及驱动的日志)实际上是相互隔离的。
3、计算机系统运行过程中难免会出现故障,此时需要结合用户日志和内核日志进行故障定位;针对内核日志的获取,主流的方法是读取内核态日志的缓存文件,若想要实时获取内核日志就需要实时监听缓存文件的变化,这会浪费大量的系统资源,若不实时监听,很可能因为系统故障而丢失对应时间的内核日志;若开放内核日志的权限给普通用户,则普通用户可以获取所有的内核日志,这将导致严重的安全隐患。
4、因此,如何提供一种基于syslog协议的内核日志获取方法及系统,实现提升内核日志获取的针对性以及实时性,进而提升计算机系统的安全性以及运维便捷性,成为一个亟待解决的技术问题。
技术实现思路
1、本发明要解决的技术问题,在于提供一种基于syslog协议的内核日志获取方法及系统,实现提升内核日志获取的针对性以及实时性,进而提升计算机系统的安全性以及运维便捷性。
2、第一方面,本发明提供了一种基于syslog协议的内核日志获取方法,包括如下步骤:
3、步骤s10、获取内核态进程产生的第一内核日志;
4、步骤s20、设定一内核日志选择规则,基于所述内核日志选择规则对各第一内核日志进行选择,得到若干个第二内核日志;
5、步骤s30、对选择的各所述第二内核日志进行重新封装,得到用户日志;
6、步骤s40、将各所述用户日志基于syslog协议发送给用户日志系统,将所有的所述第一内核日志基于syslog协议写入内核日志缓存文件。
7、进一步地,所述步骤s10具体为:
8、内核态进程基于预设的内核日志生成规则实时生成第一内核日志,实时获取各所述第一内核日志;
9、所述第一内核日志至少携带内核日志id以及内核日志等级。
10、进一步地,所述步骤s20中,所述内核日志选择规则具体包括用于内核日志选择的内核日志id或者内核日志等级。
11、进一步地,所述步骤s30具体为:
12、将各所述第二内核日志的内核日志id通过预设的id转换表转换为用户日志id,将内核日志等级通过预设的等级转换表转换为用户日志等级,对日志内容进行格式转换,进而重新封装成用户日志。
13、进一步地,所述步骤s40具体为:
14、将各所述用户日志基于syslog协议实时发送给用户日志系统,用户日志系统将接收的所述用户日志显示于用户界面;将所有的所述第一内核日志基于syslog协议实时写入内核日志缓存文件。
15、第二方面,本发明提供了一种基于syslog协议的内核日志获取系统,包括如下模块:
16、第一内核日志获取模块,用于获取内核态进程产生的第一内核日志;
17、第二内核日志选择模块,用于设定一内核日志选择规则,基于所述内核日志选择规则对各第一内核日志进行选择,得到若干个第二内核日志;
18、第二内核日志转换模块,用于对选择的各所述第二内核日志进行重新封装,得到用户日志;
19、日志发送模块,用于将各所述用户日志基于syslog协议发送给用户日志系统,将所有的所述第一内核日志基于syslog协议写入内核日志缓存文件。
20、进一步地,所述第一内核日志获取模块具体用于:
21、内核态进程基于预设的内核日志生成规则实时生成第一内核日志,实时获取各所述第一内核日志;
22、所述第一内核日志至少携带内核日志id以及内核日志等级。
23、进一步地,所述第二内核日志选择模块中,所述内核日志选择规则具体包括用于内核日志选择的内核日志id或者内核日志等级。
24、进一步地,所述第二内核日志转换模块具体用于:
25、将各所述第二内核日志的内核日志id通过预设的id转换表转换为用户日志id,将内核日志等级通过预设的等级转换表转换为用户日志等级,对日志内容进行格式转换,进而重新封装成用户日志。
26、进一步地,所述日志发送模块具体用于:
27、将各所述用户日志基于syslog协议实时发送给用户日志系统,用户日志系统将接收的所述用户日志显示于用户界面;将所有的所述第一内核日志基于syslog协议实时写入内核日志缓存文件。
28、本发明的优点在于:
29、通过设定的内核日志选择规则对内核态进程产生的第一内核日志进行选择,得到若干个第二内核日志,再对选择的各第二内核日志进行重新封装得到用户日志,并将各用户日志基于syslog协议实时发送给用户日志系统进行显示,即基于内核日志选择规则将特定的第一内核日志转换为用户日志,无需实时监听内核日志缓存文件的变化,无需开放内核日志的权限给普通用户,基于用户日志即可获取指定的第一内核日志进行运维,不仅节约了系统资源,还极大的提升了内核日志获取的针对性以及实时性,进而极大的提升了计算机系统的安全性以及运维便捷性。
1.一种基于syslog协议的内核日志获取方法,其特征在于:包括如下步骤:
2.如权利要求1所述的一种基于syslog协议的内核日志获取方法,其特征在于:所述步骤s10具体为:
3.如权利要求1所述的一种基于syslog协议的内核日志获取方法,其特征在于:所述步骤s20中,所述内核日志选择规则具体包括用于内核日志选择的内核日志id或者内核日志等级。
4.如权利要求1所述的一种基于syslog协议的内核日志获取方法,其特征在于:所述步骤s30具体为:
5.如权利要求1所述的一种基于syslog协议的内核日志获取方法,其特征在于:所述步骤s40具体为:
6.一种基于syslog协议的内核日志获取系统,其特征在于:包括如下模块:
7.如权利要求6所述的一种基于syslog协议的内核日志获取系统,其特征在于:所述第一内核日志获取模块具体用于:
8.如权利要求6所述的一种基于syslog协议的内核日志获取系统,其特征在于:所述第二内核日志选择模块中,所述内核日志选择规则具体包括用于内核日志选择的内核日志id或者内核日志等级。
9.如权利要求6所述的一种基于syslog协议的内核日志获取系统,其特征在于:所述第二内核日志转换模块具体用于:
10.如权利要求6所述的一种基于syslog协议的内核日志获取系统,其特征在于:所述日志发送模块具体用于: