一种面向Xen虚拟化环境的系统日志监控方法及装置与流程

文档序号:11180615阅读:409来源:国知局
一种面向Xen虚拟化环境的系统日志监控方法及装置与流程

本发明涉及系统日志监控领域,特别是涉及一种面向xen虚拟化环境的系统日志监控方法及装置。



背景技术:

在虚拟化系统中,时有发生一些虚拟机被入侵者侵入,一旦侵入系统后,便会在系统窃取关键数据、安装木马等危险行为,同时为了掩盖其踪迹,入侵者会在离开系统前对系统日志进行修改或者损坏,因此对于系统日志的实时备份存储并监控是至关重要的。

为了实现以上目的,现有技术中,通常的做法是通过数据网络将系统日志备份,并将备份存储到远程服务器上,然后在远程服务器上进行监控。由于上述过程是通过数据网络实现的,而数据网络对于网络带宽的要求较高,如果系统日志过多时,则无疑占用大量的网络带宽,导致数据网络的传输速度下降且存在延迟,同时,数据网络的安全性不够高,容易被入侵者侵入。

由此可见,在实现对系统日志的监控过程中,如何降低对数据网络的占用率,并提高系统日志的安全性是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种面向xen虚拟化环境的系统日志监控方法及装置,用于在实现对系统日志的监控过程中,降低对数据网络的占用率,并提高系统日志的安全性。

为解决上述技术问题,本发明提供一种面向xen虚拟化环境的系统日志监控方法,包括:

用户端虚拟机和控制端虚拟机建立信息传输通道,以及所述控制端虚拟机和监控端虚拟机建立信息传输通道;

所述用户端虚拟机读取应用程序产生的系统日志,并将所述系统日志写入共享内存中;

所述控制端虚拟机从所述共享内存中读取所述系统日志,并将所述系统日志保存在与所述用户端虚拟机相对应的控制端日志文件中;

所述监控端虚拟机从所述控制端虚拟机上获取所述系统日志,并依据预先设置的告警规则判断所述系统日志是否出现异常,如果是,则输出告警提示信息;

其中,所述用户端虚拟机为多个,分别面向当前系统中各用户端,所述控制端虚拟机面向各所述用户端虚拟机。

优选地,所述用户端虚拟机和控制端虚拟机建立信息传输通道具体包括:

所述用户端虚拟机将所述共享内存的地址、用户端端口id、虚拟机id发送到所述控制端虚拟机;

所述控制端虚拟机根据所述共享内存的地址映射至对应的空间,将空闲的控制端端口与所述用户端端口id对应的用户端端口绑定,并根据所述虚拟机id在相应目录下为所述用户端虚拟机创建所述控制端日志文件,向所述用户端虚拟机发送初始化就绪通知。

优选地,所述控制端虚拟机和监控端虚拟机建立信息传输通道具体包括:

所述监控端虚拟机在初始化时配置与所述监控端虚拟机的连接信息,并预先设置所述告警规则。

优选地,所述读取应用程序产生的系统日志具体包括:

在接收到所述初始化就绪通知后,实时监控syslog文件,并从所述syslog文件中读取所述系统日志。

优选地,所述从所述共享内存中读取所述系统日志具体包括:

实时接收所述用户端虚拟机发送的同步消息,当接收到所述同步消息时,从所述共享内存中读取所述系统日志。

优选地,还包括:

所述控制端虚拟机在读取完所述系统日志后,向所述用户端虚拟机发送读取完毕信息;

所述用户端虚拟机在接收到所述读取完毕信息后,继续监控新的系统日志。

优选地,所述用户端虚拟机具体通过xenbus将所述共享内存的地址、所述用户端端口id、所述虚拟机id发送到所述控制端虚拟机的xenstore。

优选地,从所述控制端虚拟机上获取所述系统日志具体包括:

实时监控所述控制端虚拟机的vmu文件;

当若所述vmu文件有新的日志写入,则从所述控制端虚拟机上获取所述系统日志。

为解决上述技术问题,本发明还提供一种面向xen虚拟化环境的系统日志监控装置,包括:用户端虚拟机、控制端虚拟机和监控端虚拟机;

所述用户端虚拟机,用于读取应用程序产生的系统日志,并将所述系统日志写入共享内存中;

所述控制端虚拟机,用于从所述共享内存中读取所述系统日志,并将所述系统日志保存在与所述用户端虚拟机相对应的控制端日志文件中;

所述监控端虚拟机,用于从所述控制端虚拟机上获取所述系统日志,并依据预先设置的告警规则判断所述系统日志是否出现异常,如果是,则输出告警提示信息;

其中,所述用户端虚拟机为多个,分别面向当前系统中各用户端,所述控制端虚拟机面向各所述用户端虚拟机,所述用户端虚拟机和控制端虚拟机建立信息传输通道,所述控制端虚拟机和监控端虚拟机建立信息传输通道。

本发明所提供的面向xen虚拟化环境的系统日志监控方法,在应用程序产生系统日志后,用户端虚拟机就将该系统日志写入共享内存,从而使得系统日志在管理网络上传输,并且控制端虚拟机也是从共享内存中读取该系统日志,因此提高了系统日志的安全性。最后通过监控端虚拟机结合预先设置的告警规则将得到的系统日志进行分析从而判断出系统日志是否出现异常,并将结果呈现给监控人员,实现对系统日志的全程监控。综上所述,本方法中,系统日志传输在管理网络,因此不需要占用数据网络,节约了数据网络的网络带宽,且管理网络的安全性更高,因此能够更有效的防止恶意侵入,提高了系统的安全性和可靠性。此外,本发明还提供一种面向xen虚拟化环境的系统日志监控装置,效果如上所述。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种面向xen虚拟化环境的系统日志监控方法的流程图;

图2为本发明实施例提供的一种用户端虚拟机和控制端虚拟机建立信息传输通道的流程图;

图3为本发明实施例提供的一种用户端虚拟机、控制端虚拟机和监控端虚拟机的工作原理图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

本发明的核心是提供一种面向xen虚拟化环境的系统日志监控方法及装置,用于在实现对系统日志的监控过程中,降低对数据网络的占用率,并提高系统日志的安全性。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

图1为本发明实施例提供的一种面向xen虚拟化环境的系统日志监控方法的流程图。如图1所示,该方法包括:

s10:用户端虚拟机和控制端虚拟机建立信息传输通道,以及控制端虚拟机和监控端虚拟机建立信息传输通道。

s11:用户端虚拟机读取应用程序产生的系统日志,并将系统日志写入共享内存中。

s12:控制端虚拟机从共享内存中读取系统日志,并将系统日志保存在与用户端虚拟机相对应的控制端日志文件中。

s13:监控端虚拟机从控制端虚拟机上获取系统日志,并依据预先设置的告警规则判断系统日志是否出现异常,如果是,则进入s14。

s14:输出告警提示信息。

其中,用户端虚拟机为多个,分别面向当前系统中各用户端,控制端虚拟机面向各用户端虚拟机。

在具体实施中,集群系统中的网络按照功能分为数据网络和管理网络两个大部分,数据网络对于网络带宽要求较高,并且安全性相对于管理网络较低,而管理网络具有防火墙,安全性会更高。因此,本发明中将系统日志通过管理网络进行传输,这样既能够避免占用数据网络的网络带宽,又可以提高安全性。

需要说明的是,上述方法均是在虚拟机上实现的,用户端虚拟机通常有多个,与用户一一对应,通常情况下,也可以用domu来表示,u为大于或等于1的正整数。控制端虚拟机为一个,可以用dom0来表示,与各用户端虚拟机通信,分别获取各用户端虚拟机得到的系统日志。监控端虚拟机与控制端虚拟机直接通信,通过监控端虚拟机获取各用户端对应的系统日志,从而实现对每个用户端的监控。另外,用户端虚拟机和控制端虚拟机的工作过程是不可见的,因此监控人员是无法实现监控的,而监控端虚拟机是直接呈现给监控人员的。

步骤s10是建立各虚拟机之间的信息传输通道,在建立好信息传输通道之后,各虚拟机之间就可以实现信息的传输。首先,用户端虚拟机读取自身系统中的应用程序产生的系统日志,然后将系统日志写入共享内存。可以理解的是,由于将系统日志写入共享内存,也就实现了系统日志在管理网路的传输。控制端虚拟机再从共享内存中读取上述系统日志,然后保存在对应的控制端日志文件中。可以理解的是,由于用户端虚拟机是多个,控制端虚拟机为1个,因此,为了便于区分,控制端虚拟机会为每个用户端虚拟机建立一个控制端日志文件,根据当前共享内存的地址判断出对应哪个控制端日志文件。

例如当前集群中有10个用户端虚拟机,分别是dom1-dom10,当dom1获取到系统日志时,将系统日志保存在共享内存中(由于共享内存是公共的,因此,需要事先将共享内存的地址进行划分,这样能够保证每个用户端虚拟机对应一段地址)。dom0从共享内存中读取该系统日志,根据在共享内存中的地址判断出是dom1对应的系统日志,则将该系统日志存储至dom1对应的控制端日志文件。同理,如果从共享内存中读取的是dom2的系统日志文件,则将该系统日志文件保存在dom2对应的控制端日志文件中。由上可知,dom0中的控制端日志文件的个数与domu的个数是相同的。

当控制端虚拟机上获取到系统日志后,监控端虚拟机再从控制端虚拟机上获取,然后依据预先设置的告警规则判断当前获取到的系统日志是否出现异常,如果是,则输出告警提示信息。

作为优选地实施方式,监控端虚拟机从控制端虚拟机上获取系统日志具体包括:实时监控控制端虚拟机的vmu文件;

当若vmu文件有新的日志写入,则从控制端虚拟机上获取系统日志。

本实施例提供的面向xen虚拟化环境的系统日志监控方法,在应用程序产生系统日志后,用户端虚拟机就将该系统日志写入共享内存,从而使得系统日志在管理网络上传输,并且控制端虚拟机也是从共享内存中读取该系统日志,因此提高了系统日志的安全性。最后通过监控端虚拟机结合预先设置的告警规则将得到的系统日志进行分析从而判断出系统日志是否出现异常,并将结果呈现给监控人员,实现对系统日志的全程监控。综上所述,本方法中,系统日志传输在管理网络,因此不需要占用数据网络,节约了数据网络的网络带宽,且管理网络的安全性更高,因此能够更有效的防止恶意侵入,提高了系统的安全性和可靠性。

图2为本发明实施例提供的一种用户端虚拟机和控制端虚拟机建立信息传输通道的流程图。如图2所示,作为优选地实施方式,用户端虚拟机和控制端虚拟机建立信息传输通道具体包括:

s20:用户端虚拟机将共享内存的地址、用户端端口id、虚拟机id发送到控制端虚拟机;

s21:控制端虚拟机根据共享内存的地址映射至对应的空间,将空闲的控制端端口与用户端端口id对应的用户端端口绑定,并根据虚拟机id在相应目录下为用户端虚拟机创建控制端日志文件,向用户端虚拟机发送初始化就绪通知。

需要说明的是,步骤s21中的控制端端口必须是空闲的,且不同的控制端端口对应不同的用户端端口,必须是一一对应,否则容易出现同一个端口的数据传输量过大造成拥堵,并且容易将同一个用户端的系统日志存储在不同的控制端日志文件,也有可能将不同的用户端的日志存储在同一个控制端日志文件,从而发生混乱。

作为优选地实施方式,用户端虚拟机具体通过xenbus将共享内存的地址、用户端端口id、虚拟机id发送到控制端虚拟机的xenstore。

本实施例中,控制端虚拟机可以通过端口来判断当前系统日志对应哪个用户端,应该存储在哪个控制端日志文件。

在上述实施例的基础上,控制端虚拟机和监控端虚拟机建立信息传输通道具体包括:

监控端虚拟机在初始化时配置与监控端虚拟机的连接信息,并预先设置告警规则。

可以理解的是,告警规则如何设置,可以根据集群的实际参数确定,另外,可以为全部系统日志设定同样的告警规则,也可以根据不同类型的用户端虚拟机设定不同的告警规则,本发明不再赘述。

在上述实施例的基础上,读取应用程序产生的系统日志具体包括:

在接收到初始化就绪通知后,实时监控syslog文件,并从syslog文件中读取系统日志。

当用户端虚拟机接收到初始化就绪通知后,就表明与控制端虚拟机建立好了信息传输通道,可以进行信息的传输。那么用户端虚拟机调用syslogd进程,从而监控syslog文件,并从syslog文件中读取系统日志。

在上述实施例的基础上,从共享内存中读取系统日志具体包括:

实时接收用户端虚拟机发送的同步消息,当接收到同步消息时,从共享内存中读取系统日志。

由于用户端虚拟机为多个,控制端虚拟机只有一个,因此控制端虚拟机的工作量较大,为了减小控制端虚拟机的工作量,本实施例中,控制端虚拟机从共享内存读取系统日志是由用户端虚拟机发送同步信息而触发,如果控制端虚拟机没有接收到同步信息,则也不需检测共享内存中是否有新的系统日志。

作为优选的实施方式,还包括:

控制端虚拟机在读取完系统日志后,向用户端虚拟机发送读取完毕信息。

用户端虚拟机在接收到读取完毕信息后,继续监控新的系统日志。

在上一实施例中,控制端虚拟机在接收到同步信息从共享内存中读取系统日志,不同系统日志读取的时间是不同的,为了确认控制端虚拟机是否成功读取到系统日志,本实施例中,当控制端虚拟机读取完系统日志后,会向用户端虚拟机发送读取完毕信息,之后,用户端虚拟机再继续监控新的系统日志。

可以理解的是,如果控制端虚拟机出现故障,无法读取系统日志,或者无法发送读取完毕信息,则用户端虚拟机就会一直处于等待状态,即使有新的系统日志,也无法及时读取。为了避免这个情况,在其他实施例中,也可以为用户端虚拟机设置一个预设值,如果等待时间超过预设值,则用户端虚拟机直接读取新的系统日志。

上文中对面向xen虚拟化环境的系统日志监控方法对应的实施例进行了详细的描述,本发明还提供一种与该方法对应的面向xen虚拟化环境的系统日志监控装置。由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

面向xen虚拟化环境的系统日志监控装置,包括:用户端虚拟机、控制端虚拟机和监控端虚拟机。

用户端虚拟机,用于读取应用程序产生的系统日志,并将系统日志写入共享内存中;

控制端虚拟机,用于从共享内存中读取系统日志,并将系统日志保存在与用户端虚拟机相对应的控制端日志文件中;

监控端虚拟机,用于从控制端虚拟机上获取系统日志,并依据预先设置的告警规则判断系统日志是否出现异常,如果是,则输出告警提示信息;

其中,用户端虚拟机为多个,分别面向当前系统中各用户端,控制端虚拟机面向各用户端虚拟机,用户端虚拟机和控制端虚拟机建立信息传输通道,控制端虚拟机和监控端虚拟机建立信息传输通道。

本实施例提供的面向xen虚拟化环境的系统日志监控装置,在应用程序产生系统日志后,用户端虚拟机就将该系统日志写入共享内存,从而使得系统日志在管理网络上传输,并且控制端虚拟机也是从共享内存中读取该系统日志,因此提高了系统日志的安全性。最后通过监控端虚拟机结合预先设置的告警规则将得到的系统日志进行分析从而判断出系统日志是否出现异常,并将结果呈现给监控人员,实现对系统日志的全程监控。综上所述,本装置中,系统日志传输在管理网络,因此不需要占用数据网络,节约了数据网络的网络带宽,且管理网络的安全性更高,因此能够更有效的防止恶意侵入,提高了系统的安全性和可靠性。

图3为本发明实施例提供的一种用户端虚拟机、控制端虚拟机和监控端虚拟机的工作原理图。如图3所示,domu包含有logmoniter和syslogd进程,syslogd进程将应用程序产生的系统日志存储在syslog文件中,logmoniter用来监控是否有系统日志产生,并负责将系统日志保存在共享内存和发送同步消息。dom0中包含有logmoniter和vmu文件,logmoniter用来接收同步消息以及从共享内存中读取系统日志,然后将系统日志存储在控制端日志文件中。此时,vmu文件就会产生日志,监控端虚拟机检测到vmu文件产生新的日志,则从控制端日志文件读取系统日志,进行解析和判断。监控端虚拟机具体包括监控模块、分析告警模块以及个性化策略设置模块。

以上对本发明所提供的面向xen虚拟化环境的系统日志监控方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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