[发明专利]一种虚拟化环境下的进程监控方法及系统有效
| 申请号: | 201310337411.5 | 申请日: | 2013-08-05 |
| 公开(公告)号: | CN103365758A | 公开(公告)日: | 2013-10-23 |
| 发明(设计)人: | 袁林思 | 申请(专利权)人: | 北京搜狐新媒体信息技术有限公司 |
| 主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F9/455 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
| 地址: | 100084 北京市海淀区中关*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 虚拟 环境 进程 监控 方法 系统 | ||
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种虚拟化环境下的进程监控方法及系统。
背景技术
随着虚拟化技术的发展与成熟,越来越多的企业选择在服务器上引入虚拟化技术从而达到最大化利用服务器硬件资源,减少硬件采购成本,降低能耗的目的。容器虚拟化作为一种轻量级的虚拟化技术,具有部署简洁,虚拟化开销低的特点,因而被越来越多的应用于服务器虚拟化。通过在服务器上引入容器虚拟化技术,我们可以实现在一台物理机上部署多个容器来跑一个应用的多个实例,亦可在不同的容器内进行多种不同的应用而保证他们彼此互不影响。因此,对服务器的运维也提出了更高的要求,当某一容器内的进程异常退出时,采用传统的检测方法,需要对被监控进程做适应性修改,使得被监控进程周期性地向监控系统主动上报心跳信息,或者是监控系统通过周期性地查询待监控进程的信息查询/proc文件系统下是否存在对应的进程ID的目录,这两种监控方法都需要将待监控进程和监控系统绑定在一起,需要对待监控进程做改动,同时,这两种方式都无法及时准确的监控到进程异常退出,因此也就无法及时准确地发出相应的告警信息;也就无法采取相应的措施来进行相应的异常恢复处理,无法保证产品和系统的高可靠性和自恢复性。
另外,目前常用的检测方法,只是适用于没有引入命名空间的Linux操作系统,对于在Linux操作系统中引入命名空间后,监控进程与被监控进程可能运行于不同的命名空间下,监控进程所需处理的场景更加复杂,传统的进程监控方法并未涉及这种情景下的处理,无法完成跨命名空间的进程监控。
基于存在的技术问题,现在迫切需要提供一种新的监控采集系统以支持进程运行于不同命名空间场景下的进程监控。
发明内容
为了解决上述技术问题,本发明实施例提供了一种虚拟化环境下的进程监控方法及系统,以支持进程运行于不同命名空间场景下的进程监控,提高监控结果反馈速率和和系统稳定性。
本申请实施例公开了如下技术方案:
一种虚拟化环境下的进程监控方法,包括:
获取待监控进程的进程描述符;
在操作系统处理待监控进程的信号队列之前,检测所述进程描述符中待监控进程的信号队列中是否包含将导致进程异常退出的信号;
如果有,收集被监控进程当前的运行信息,生成相应的告警信息并反馈至终端。
优选的,所述获取待监控进程的进程描述符,包括:
提取用户指定的待监控进程所在的容器名称以及待监控进程的PID;
通过所述容器名称查询该容器启动进程的子进程在宿主机端PID命名空间下的PID;
通过所述宿主机端命名空间下的PID查询与其对应的容器PID命名空间;
在所述容器PID命名空间下查找用户指定的待监控进程的PID,并获得与待监控进程对应的进程描述符。
优选的,包括:
预先在操作系统的信号处理函数执行路径上添加相应的HOOK函数;
在操作系统处理待监控进程的信号队列之前,所述HOOK函数检查待监控进程的信号队列中是否包含将导致进程异常退出的信号。
优选的,所述获取待监控进程的进程描述符,包括:
提取用户指定的待监控进程所在的容器名称以及待监控进程的PID;
根据所述容器名称获取虚拟机启动进程lxc-start的直接子进程/sbin/init在宿主机端PID命名空间下的PID;
通过所述宿主机端PID命名空间下的PID查询与其对应的容器PID命名空间;
在所述容器PID命名空间下查找用户指定的待监控进程的PID,获得与待监控进程对应的进程描述符。
本发明还提供了一种虚拟化环境下的进程监控系统,包括:
获取单元,用于获取待监控进程的进程描述符;
检测单元,用于在操作系统处理待监控进程的信号队列之前,检测所述进程描述符中待监控进程的信号队列中是否包含将导致进程异常退出的信号;
反馈单元,用于当所述检测模块的检测结果为是时,收集被监控进程当前的运行信息,生成相应的告警信息并反馈至终端。
优选的,所述获取单元,包括:
第一提取模块,用于提取用户指定的待监控进程所在的容器名称以及待监控进程的PID;
第一查询模块,用于通过所述容器名称查询该容器启动进程的子进程在宿主机端PID命名空间下的PID;
第二查询模块,用于通过所述宿主机端命名空间下的PID查询与其对应的容器PID命名空间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京搜狐新媒体信息技术有限公司,未经北京搜狐新媒体信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310337411.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:消防船
- 下一篇:一种撑杆可拆卸式婴儿床





