专利名称:一种syslog日志存储方法
技术领域:
本发明涉及网络管理技术领域,具体涉及一种syslog日志存储方法。
背景技术:
在比较大规模的网络应用或者对安全有一定要求的应用中,通常需要对系统的各个应用程序的日志进行记录分类并审核,通常情况下,每个系统会在本地硬盘上记录自己的日志。syslog被应用在很多系统中,作为默认的日志守护进程。在使用syslog的系统中,日志守护进程提供了访问系统的日志信息,因此,任何希望生成日志信息的程序都可以向syslog接口呼叫生成日志信息。目前,应用程序呼叫syslog接口,syslog生成日志信息,以监听本机的用户数据报协议(User Datagram Protocol,简称UDPMg 口的方式,将日志信息发至本地硬盘上所指定的日志缓存单元中,之后可以通过直接登录系统相应的服务器对日志信息进行分析,以便有效维护各个应用程序。进一步地,为了避免入侵者登录系统删除日志信息,在网络中安排一台专用的日志服务器来记录系统日志信息。而syslogd可以将存储在系统本地硬盘的日志缓存单元上的日志信息发送至网络日志服务器。实践中发现由于系统中有多个应用程序,如果各个应用程序都将日志信息发送到本地硬盘的同一个日志缓存单元中,由于日志信息过多而且杂乱,不便于后续的分析和维护。而如果syslog和syslogd版本不同,也不利于日志信息之间的移植,直接对将日志信息转发至网络日志服务器造成困扰。
发明内容
针对上述缺陷,本发明实施例提供了一种syslog日志存储方法,便于分析维护日志信息,且有利于日志信息的移植。本发明实施例第一方面提供了一种syslog日志存储方法,包括:根据应用程序的设置,连接到与设置的缓存路径相对应的用于存储所述日志信息的日志缓存单元;向所述日志缓存单元发送所述日志信息。本发明实施例第二方面还提供了一种syslog日志存储方法,包括:根据绑定的缓存路径,从所述缓存路径所指示的日志缓存单元读取日志信息。从以上技术方案可以看出,本发明实施例具有以下优点:本发明实施例syslog客户端根据应用程序的设置,将日志信息发送至与设置的缓存路径相对应的日志缓存单元中,以便用户方便地对日志缓存单元中的日志信息进行分析,从而对应用程序进行维护。而syslogd服务器端根据绑定的缓存路径,从日志缓存单元中读取日志信息发送至网络服务器。Syslog客户端通过简单的将日志信息存储到与设置的缓存路径相对应的日志缓存单元中,而非现有技术中将所有日志信息都存储到默认日志缓存单元中,同时,syslogd服务器端根据设置的缓存路径,从该缓存路径对应的日志缓存单元中读取日志信息,方便syslogd读取到日志信息。
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种syslog日志存储方法的流程图;图2为本发明实施例中syslog客户端配置缓存路径的流程图;图3为本发明实施例提供的一种syslog日志存储方法的另一流程图;图4为本发明实施例中syslogd服务器将socket与缓存路径绑定的流程图。
具体实施例方式下面将结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供了一种syslog日志存储方法,可对日志信息指定日志存储单元,方便对日志信息进行分析处理。该方法包括:根据应用程序的设置,连接与设置的缓存路径相对应的用于存储所述日志信息的日志缓存单元;向所述日志缓存单元发送所述日志信息。其中,在syslog客户端中,根据应用程序的设置,将日志信息发送到之前指定存储该日志信息的日志缓存单元中,而不是将所有日志信息发送至一个日志缓存单元中,可以减少单个日志缓存单元的存储压力,进一步地,有利于对日志信息进行分类分析和维护。本发明实施例另一方面还提供了一种syslog日志存储方法,包括:根据绑定的缓存路径,从所述缓存路径所指示的日志缓存单元读取日志信息。其中,在syslogd中,可以根据设置绑定的缓存路径,到缓存路径所指示的日志缓存单元中读取日志信息,提高日志信息的移植性,为维护带来便利。下面将详细地介绍本发明实施例,如图1所示,一种syslog日志存储方法,可包括:110、接收应用程序的呼叫,将日志生成标准的日志信息,加载syslog共享库获得设置的存储日志信息的缓存路径;其中,在一个系统中,需要对系统的各个应用程序的日志进行记录分类和管理,以便对该系统进行维护。应用程序需要生成日志信息时,可以向syslog接口呼叫,syslog客户端将程序的日志生成日志信息,同时,加载syslog共享库获得之前设置的缓存路径。120、创建socket,并连接到与该分类日志信息相对应的存储路径所指示的存储所述日志信息的日志缓存单元;其中,在系统本地硬盘中,可以根据应用程序的设置,为不同类型的日志信息动态设置日志缓存单元,从而将不同分类的日志信息存储到不同的日志缓存单元中,可以减少单个日志缓存单元的存储压力,分类存储,可以方便对日志信息的管理和维护,提高管理效率。可以理解的是,日志信息重要级别不一样,可以根据其重要级别进行分类,或者可以根据日志信息功能进行分类,在此不作限定。syslog客户端和syslogd服务器端之间通过socket方式通信。如果在系统本地硬盘中没有针对不同分类的日志信息设置的日志缓存单元,则将日志信息发送至默认的日志缓存单元中。但不管设置有指定的日志缓存单元,还是没有,syslog都需要创建socket,以socket通信方式连接到存储日志信息的日志缓存单元。130、通过socket通信方式向所述日志缓存单元发送所述日志信息。其中,在连接上日志缓存单元后,将日志信息存储到该日志缓存单元中。本发明实施例通过将日志信息分类存储到不同日志缓存单元中,以便有效地对日志信息进行管理。下面将进一步地对本发明的实施例进行详细地描述,如图2所示,syslog客户端设置具体的缓存路径具体包括:210、获取 uCl ibc 源码;可以理解的是,syslog客户端要设置缓存路径,需要调用相关syslog代码,其中,包括获取uCl ibc源码。220、从uClibc源码中获取syslog库相关的文件syslog.h和syslog.c ;其中,syslog.h和syslog.c文件是syslog相关配置的程序,可以从uClibc源码中获取syslog库相关的文件syslog.h和syslog.c进行缓存路径的设置。230、在文件syslog.h和syslog.c中修改接口 openlog,以支持动态设置缓存路径;其中,syslog客户端通过在syslog.h和syslog.c中将openlog接口修改,可以动态地设置缓存路径,满足不同日志信息的不同存储需要。当然,可以根据日志信息的分类,可以动态设置缓存路径,以便不同分类的日志信息可以发送至不同的缓存路径所在的日志缓存单元中,可以减轻单个日志缓存单元存储所有日志信息的压力,还能分类进行管理,方便对日志信息进行分析,进而提高管理效率。240、对修改后的文件syslog.h和syslog.c进行编译,并生成共享库。其中,syslog客户端在文件syslog.h和syslog.c中修改完相应的设置缓存路径的代码后,将文件syslog.h和syslog.c编译,生成共享库。下面将从syslogd服务器端出发,对本发明实施例进行描述,一种syslog日志存储方法,可包括:310、创建socket,并对所述socket绑定存储日志信息的日志缓存单元所在的缓存路径;其中,为了方便日志信息的移植,而且不用于依赖于c库和busybox, syslogd服务器端将syslog客户端存储日志信息的缓存路径与socket绑定。320、监听所述socket,确认是否有可读取的日志信息;其中,sysolgd服务器端和syslog客户端以socket通信方式通信,通过随时监听socket,随时获得是否有可读取的日志信息。330、若是,从所述缓存路径所指示的日志缓存单元读取日志信息;
其中,当有可读取的日志信息时,从日志缓存单元中读取日志信息。340、向网络日志服务器发送所述日志信息。其中,在网络中安排一台专用的日志服务器来记录系统日志信息,以防系统被入侵而丢失日志信息,无法维护系统。syslogd服务器端在读取到日志信息后,通过用户数据报协议(User Datagram Protocol,简称UDPMf^ 口的方式向网络日志服务器发送日志信息。本发明实施例中,通过将缓存路径与socket绑定,使得日志信息能够独立而不会依赖于c库和busybox,为维护带来便利,兼容性较好。如图4所示,syslogd服务器端将socket与缓存路径绑定具体包括:410、获取 busybox 源码;其中,busybox源码是一种源码架构,BusyBox利用Linux实用工具中代码大量重复的事实,将重复的代码重新整理,放到一个文件中,减少了多次包含。420、从 busybox 源码中获取 syslogd 相关文件 syslogd.c ;其中,syslogd服务器端从busybox源码中获取文件syslogd.C。文件syslogd.c是syslogd相关配置程序代码。430、在文件syslogd.c中修改接口 doSyslogd,以支持缓存路径的设置;其中,syslogd服务器端获取文件syslogd.c后,修改文件syslogd.c中接口doSyslogd,并设置缓存路径。440、对修改后 的文件syslogd.c进行编译生成应用程序syslogd ;其中,syslogd服务器端将修改后的文件syslogd.c进行编译,生成应用程序syslogdo450、并设置共享库的接口发送接收到的日志信息。其中,syslogd服务器端根据设置的缓存路径,从每一个缓存路径中获取日志信息,日志信息可以通过共享库的接口发送至网络服务器。在本发明实施例中,syslogd服务器创建socket,并将日志信息的缓存路径跟socket进行绑定,并对socket进行监听。应用程序需要生成日志信息时,syslog客户端加载共享库,创建syslog客户端的socket,根据应用程序的设置,连接到共享库中设置好的存储该日志信息的日志缓存单元中,并将日志信息发送至该日志缓存单元中。Syslogd服务器端监听到socket可读,从日志缓存单元读取日志信息并发送到网络日志服务器中做相应维护处理。本发明实施例syslog客户端可以根据日志信息的分类,为不同分类的日志信息不同的日志缓存单元,将日志信息分类存储到不同的日志缓存单元中,方便维护;而syslogd服务器端将日志缓存单元所在的缓存路径绑定好,根据缓存路径从日志缓存单元中读取日志信息,并发送至网络服务器上。本发明实施例通过将日志信息存储到不同日志缓存单元中,可以减轻单个日志缓存单元的存储压力,更能提高分析管理日志信息的效率。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上对本发明所提供的一种syslog日志存储方法进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种syslog日志存储方法,其特征在于,包括: 根据应用程序的设置,连接与设置的缓存路径相对应的用于存储所述日志信息的日志缓存单元; 向所述日志缓存单元发送所述日志信息。
2.根据权利要求1所述的方法,其特征在于,在所述根据应用程序的设置,连接与设置的缓存路径相对应的用于存储所述日志信息的日志缓存单元之前,还包括: 接收应用程序的呼叫,并将日志生成标准的日志信息。
3.根据权利要求1或2所述的方法,其特征在于,所述根据应用程序的设置,连接与设置的缓存路径相对应的用于存储该分类日志信息的日志缓存单元,包括: 创建socket,并连接到与设置的存储路径相对应的用于存储该分类日志信息的日志缓存单元。
4.根据权利要求3所述的方法,其特征在于,所述向所述日志缓存单元发送所述日志信息,包括: 通过socket通信方式向所述日志缓存单元发送所述日志信息。
5.—种syslog日志存储方法,其特征在于,包括: 根据绑定的缓存路径,从所述缓存路径所指示的日志缓存单元读取日志信息。
6.根据权利要求5所述的方法,其特征在于,所述根据绑定的缓存路径,从所述缓存路径所指示的日志缓存单元读取日志信息,包括: 创建socket,并对所述socket绑定存储日志信息的日志缓存单元所在的缓存路径; 监听所述socket,确认是否有可读取的日志信息; 若有,则从所述缓存路径所指示的日志缓存单元读取日志信息。
7.根据权利要求5或6所述的方法,其特征在于,还包括: 向网络日志服务器发送所述日志信息。
全文摘要
本发明实施例公开了一种syslog日志存储方法,可以提高分析维护日志信息的效率。本发明实施例方法包括根据应用程序的设置,连接与设置的缓存路径相对应的用于存储所述日志信息的日志缓存单元;向所述日志缓存单元发送所述日志信息。根据绑定的缓存路径,从所述缓存路径所指示的日志缓存单元读取日志信息。
文档编号H04L29/08GK103200037SQ20131012503
公开日2013年7月10日 申请日期2013年4月11日 优先权日2013年4月11日
发明者刘友盛, 沈时雨, 吴天威, 肖青平, 周文龙 申请人:深圳市共进电子股份有限公司